I've written about why the tech industry is full of chaos and dysfunction, so now I'd like to provide an antidote.

At this point in my career, I've certainly written my fair share of code, managed multiple dev teams, weathered numerous layoffs, and navigated organizational reshuffles. I've also experienced the thrill of working with amazing startups and ventured into launching my own businesses.

With all these peaks and troughs (as is common in tech), some developers I know are still perpetually negative despite having one of the most important skill sets of the 21st century. Or perhaps that's the problem — they view the world that way, so changing mindsets should be a first priority.

But if a mental reset isn't cutting it, let's explore a few fresh perspectives and practical strategies to help you stay positive despite the chaos and dysfunction of the tech industry.

Know When to Explore New Opportunities 

Be open to new opportunities that align better with your values and career goals. This could be a new company, freelance work, or even a career pivot. 

One option might be joining a startup, but be sure to vet how things are culturally to avoid teams that are obviously toxic. During interviews ask questions that help you make the decision. Remember it’s you choosing a fitting place to work at. That includes learning about the product and the people behind it. 

Realize that teams or companies often turn bad and there's nothing you can do about it. And when the negatives outweigh the positives, you simply have to walk away. Sometimes, the best option for your mental health and career growth is to do exactly that.

Gain developer insights - simple, fast, and easy!
Learn more

Focus On Continuous Learning 

Yes, you do need to keep learning as it’s a key aspect of staying relevant. However, this doesn’t mean you have to master every new technology as soon as it comes out. 

A practical approach is to develop a routine that incorporates micro learning early on in your career. This can be achieved by taking on side projects that challenge your current skill set and even writing about them to improve how you communicate your ideas to people. 

If possible, use Investment Time (pitch the idea if you don’t have such an initiative) at work to explore new technologies and topics within your field that are still unfamiliar to you. Make it so that it’s on your company's time, not yours. 

Often, the real challenge in overcoming professional stagnation, which can subtly set in over time, is to be updated and informed just enough to have a basic proficiency and be able to engage in discussions about these technologies.

Find a Mentor

The hard part of mentorship is actually finding a mentor who has gained trust and accountability from your teammates. You’ll know if this is the case if you immediately think of this person when you’re in need of advice, especially when you’re losing faith and humanity in your field. 

As a full-blown mentor they should be available to answer questions or help you develop a growth-oriented mindset based on good-faith feedback. But be sure to stay away from mentors who like to control their underlings and solve all their problems — a good mentor should give you high level advice on how to architect a wide variety of problems. They should always show you the way simply by expanding your awareness of the subject. It's not about giving you specific technical knowledge, but meta-knowledge, that is knowing how to know things.

For a complete perspective, be sure to read the companion piece to this blog post here:

Why Is the Tech Industry Full of Chaos and Dysfunction?
Discover why many developers leave the chaos and dysfunction of tech, exploring issues from burnout and ethical concerns to toxic workplaces.

Do Good Work 

You may not believe in the product, but be sure to care about your craft and what you're doing. If you’re writing code, write it to the best of your ability. Your commits should satisfy you. And remember, don’t let your quest for perfection stop you from delivering great software to your stakeholders. 

I'm all for leaving code better than I found it, and trust me, I've had my fair share of 'What was I thinking?' moments looking back at my past code. But hey, we can't always fix everything on the spot and maintain that pristine state forever. It's about striking a balance – choosing between refining code and rolling out features that keep the customers smiling and the lights on. Chasing perfection is a tricky business; don't let it be your downfall, turning into a classic tale of overambition.

And for those managing ICs, remember, wellbeing is key. Look out for them, it makes all the difference. Nurturing a supportive environment isn't just about having fair project deadlines; it's about recognizing their challenges, celebrating their successes, and providing a listening ear when they really need you.

Create Meaningful Relationships

In the tech world, it's all about the relationships you nurture. Every day is a chance to be that teammate everyone looks forward to collaborating with. Keep those business friendships thriving and spread some good vibes among your peers.  

The best times? They happen when you're crafting awesome software with folks you genuinely enjoy - the ones who either teach you heaps or make the ride a whole lot more fun. Fast forward a few years, and you'll see these colleagues turn into lifelong friends. 

Embrace Mindfulness and Stress-Relief Practices 

It's essential to have your own zen toolbox. What’s yours? Think meditation, yoga, or even those quick, refreshing breathing exercises you can do at your desk. These practices are not just about finding your inner peace; they're your secret weapons for mental clarity and calmness. It helps you be well-rounded and compartmentalized – to put work in its place, so it doesn't overrun your personal life. 

Don't Take Things Personally 

It’s important to remember, first and foremost, that your job is just that – a job. And like any profession, software engineering is filled with both triumphs and challenges. You'll have days where everything clicks, and then days filled with disasters, missed deadlines, and disappointments from layoffs. This doesn’t mean you should feel powerless; rather, it’s about focusing on how you respond to these changes. 

Remember, your career in software engineering is a marathon, not a sprint. By maintaining a balanced perspective, practicing resilience, and staying adaptable, you’re setting yourself up for a fulfilling and sustainable journey in the world of tech.

Focus On Small Wins 

In tech you often see big breakthroughs grabbing the spotlight — but there's immense value in acknowledging the small victories. Whether it's successfully dealing with a bug in your code, refining a feature that enhances user experience, or simply nailing a productive meeting, these mini triumphs are the building blocks of success. Celebrating these seemingly minor yet significant achievements can be a major morale booster. It keeps the team spirit high and fuels motivation.

So, make it a habit to pause, acknowledge, and cheer for these small wins. We often give a #kudos on our Slack channel. After all, they're what pave the path to those big, groundbreaking moments we all strive for!

Learn How to Give Constructive Feedback 

Let's face it, nobody thrives on criticism. It's all about offering insightful feedback that fuels growth instead of doling out harsh criticism that can deflate spirits. 

So, how do you dish out feedback that's genuinely constructive? It's not just about what you say, but how you say it. Look at delivering feedback that empowers, not discourages. Learn the skills to pinpoint areas for improvement while bolstering confidence, fostering a culture of open communication, and encouraging a growth mindset. 

Learn How to Communicate Your Needs

Effective communication is paramount to survive the chaos of tech. You have to be able to convey complex technical information clearly, listen actively to your developers, and facilitate open and transparent communication within the team. You also need to fight for your interests to cover your needs in your position. This is often not easy, but if you can make your case convincingly, you’ve got an advantage. 

Good and effective communication also goes beyond technical language and jargon; it's about connecting with people on the right ideas. In a workplace setting, where team members may come from diverse backgrounds, it's crucial to tailor your approach to ensure inclusivity. Recognizing those who need more clarity, I will simplify my communication to ensure it's accessible and comprehensible to everyone. This approach not only aids understanding but also fosters a more inclusive environment.

Communication is also different for extroverts and introverts. Extroverts should focus on listening more and embracing silence, allowing a pause of six to seven seconds after asking a question or making a point to give others a chance to respond. Introverts, on the other hand, should leverage written communication to thoughtfully articulate their points without interruption. They should practice patience in discussions, ensure they contribute to closing out topics, and assertively prevent others from talking over them. Both styles require adapting one's natural inclinations to foster better interaction and understanding in conversations.​​

Maintain a Work-Life Balance 

It's everything outside of work that really matters. So one thing you have to do is ramp down on the impulse to make work and coding your life. I’m not saying you can’t have a side project or two - I think for a lot of us we’ll always have the occasional itch to write a quick script to do this one thing. But if you’re not careful, then work and work adjacent things can become consuming, and will cut into your time for personal activities and relaxation. 

Know the Risks of Starting Your Own Venture 

Starting a company is a bold move. But if you go down that path, it would be wise to recognize the risks and prepare for failure. I’m talking about financial risks like bankruptcy but also the legalities and the challenges from competitive landscapes. Be aware of potential reputation damage and the shifting political and economic climates. Make sure you do thorough planning, especially in budgeting and crafting a realistic business plan that demonstrates risk awareness to potential investors. 

Gain developer insights - simple, fast, and easy!
Learn more

Don’t Be a Hero 

I've seen too many devs attach their entire identity and self-worth to being the rockstar genius developer, chasing some legendary status. Not sure why. Maybe it’s for an ego boost or that dream of striking it rich. 

In my time as a tech leader, I’ve noticed it's those who go for balance, who don’t live and breathe work 24/7, who truly thrive. You might not become a household name like Steve Jobs, Mark Zuckerberg, or Elon Musk, and that's totally fine. The real success in tech? It’s in the everyday wins, the challenges you conquer, the teams you uplift, and the little ways you make your part of the tech universe a better place.

Let Things Fail 

Getting worked up over management or others' questionable decisions is a one-way ticket to burnout city. While it's important to contribute your insights and advice, it's equally crucial to recognize that people sometimes need to experience their own setbacks to fully understand and evolve. This approach not only preserves your mental health but also offers a valuable learning opportunity. 

Report and Stand Against Toxic Behaviors 

If you witness some really dodgy stuff at your workplace or discrimination or abuse, report it through the proper channels. Standing up against toxic behaviors can sometimes lead to positive changes. 

If we’re talking about unrealistic deadlines, lack of recognition, or poor communication, acknowledge these factors and take a step towards addressing them. 

Establish Boundaries 

Having a good work-life balance is one safety mechanism against losing your mind. It's not just about setting limits; it's about actively upholding them, especially in a demanding work environment. This means having the courage to say no to unrealistic project timelines and excessive demands. If you continually accept unreasonable deadlines, work can easily bleed into your personal time, disrupting that delicate balance. 

It’s essential to communicate clearly with your team and management about what is feasible within given timeframes and resources. By doing so, you not only protect your personal time but also set a precedent for a more sustainable and respectful work culture. Remember, consistently working beyond reasonable hours can lead to burnout and reduced productivity in the long term. Establishing firm boundaries and sticking to them helps ensure that your work ends at a reasonable hour, allowing you to recharge and maintain your overall wellbeing.

Align Motivations 

You have to come to terms with the fact that everyone has different motivations — you, your team, your manager, and the company at large. The challenge and opportunity lie in harmonizing these varied incentives. Successfully aligning them can significantly enhance your job satisfaction.

Struggling with alignment? Engage in some introspection to assess if you can adjust your motivations. Alternatively, seek guidance from a senior colleague or a mentor to navigate this complexity. If these approaches don't yield results, consider seeking a new role that aligns more closely with your professional aspirations and values.

In Conclusion

Staying positive requires a combination of self-care, setting boundaries, continuous learning, and sometimes, the courage to seek new opportunities. Remember, your wellbeing and professional satisfaction are paramount. As an experienced developer, you have the skills and wisdom to navigate these challenges and emerge stronger.