Mental Health in Software Engineering

31 March 2024 · 47,642 views · Updated 23 April 2024

I want to talk about something we don't discuss enough in our field: the mental health of software engineers, especially those of us who've taken on the challenge of leadership. As a technical co-founder, I've had my struggles with anxiety. It's something that comes with the territory but isn't part of the job description.

If we rewind back to 2017, it was not a pleasant year for me — my days consisted of panic attacks, constant use of relaxing supplements, and trying to code while being severely under pressure with all the deadlines and new responsibilities. During that time, I inherited the position of Head of IT from my predecessor. I was now in charge of a small team of developers, and our startup has made many promises to many partners. It was my job to make it happen. I was either going to break or deliver. I did both.

Mental health issues still carry a bit of stigma with them. You cannot take a sick day by telling your team, “I have mental issues and need a day off.” Not many people understand what panic attacks feel like and why would you need to take a day off because of them? I understand those people completely. Right until the moment I had my burnout (or a mental breakdown), I didn’t have any idea why you need to take drugs to manage your anxiety. I thought it was all in your head; can’t you control your thoughts? Apparently, sometimes, you can’t.

Author: Sow Ay

When I was first diagnosed with anxiety, I didn’t understand it, so I went to Reddit to read similar stories of people all around the world dealing with the same symptoms, trying to survive the same way I did. It calmed me down during panic episodes. Imagine sitting at your workplace, coding, and then a wave of primal fear running through you, an all-enveloping sense of doom starts consuming you, and you turn to Reddit to read stories about people experiencing the same things. That was my coping mechanism. And it worked.

My story is, sadly, not unique. It’s a story that any software engineer can relate to. I was a perfectionist, a high-achiever who liked to have things under control and in a specific way to ensure everything was running as efficiently as possible. I have my keyboard bindings set up just as I need them, I have my dotfiles organized in a specific way, and I have my automation that makes my life easier. I think most software developers are like that. We strive to be efficient.

It’s easy to have things under control when coding is the only thing that you do, for example, at the junior level. You have a clearly defined task, which your senior colleague refined based on some vague description that your product owner brought them. You debug it, have fun building things, get your next task, and solve some bugs. You have zero worries; your only job now is to get better and learn. Life is good.

As you grow, you understand the realities of business. In business, there’s no place for perfection. There’s no space for having everything under control. In fact, not only can’t you influence most of the things around you, but most of the things are uncertain. Thinking about your next month becomes a math problem with probability variables.

🥸 An example of uncertainty in business is when your CEO tells you they promised a feature to your biggest client and it needs to be built ASAP as highest priority, so all hands on deck. Then a day later they tell you another feature, completely contradictory to the first one, needs to be built as well and is also highest priority. When you tell them they both can't be highest priority, the answer is: make it happen.

This was my perfect storm in 2017 — I was trying to control all of the uncertainty around me:

  • Trying to control the looming unrealistic deadlines.
  • Writing a lot of the code myself to ensure we uphold our promises to stakeholders and none of our developers burn out. Which led to me working more and sleeping less.
  • Worrying about next month’s payroll and trying to control our runway.
  • Maintaining developer velocity and tight budgets, juggling future growth and current issues.
  • Trying to control our developer turnover and making sure our juniors grow.
  • There were days I'd be coding non-stop or in a series of back-to-back meetings, forgetting meals, sleeping, and even what it felt like to relax.

There wasn’t one big thing that led to the burnout. It’s more of a combination of factors contributing to my perpetual state of stress. (Side note: I remember waking up on the weekends, feeling great the first few minutes in my bed, and then anxiety taking over).

Eventually, I saw a doctor and am doing much better now. It took me a long while, though.

Not all deadlines are equal

I’m not going to philosophize about how you need to maintain a good work-life balance and how not doing so may negatively impact your non-job-related aspects of life. But I can tell you for a fact I did not have a good work-life balance before. I think I’m getting better, but it’s only due to the fact that my company is doing better — we have better cash flow, more loyal clients, and a great team. Before that? I thought work-life balance was a myth. I thought every deadline was sacred, every project was critical, and if you’re not online 24/7, it all fell apart. Was that true? It was, sometimes.

💡 Some people asked me — why are you working so much? What’s the worst that can happen? People not getting their salaries and the company going bankrupt. I think that’s a big enough reason to risk burning out. At least, I thought it was. Now? Probably still is a good reason, but I would approach it differently. 

This kind of situation isn't rare. You're always on edge, thinking the whole company's fate rests on your next move. It's like being in a constant state of alert, where slowing down feels like you're letting everyone down. As a CTO or any other tech leadership position, you're making calls that could either make or break the whole operation. And yeah, it's thrilling, but it's also a breeding ground for anxiety.

This one time, for example, when our deployment crashed halfway through right before a major release. The CEO emphasized how important this project was, so we were all hands on deck, trying to get it back up, fearing the worst, that the client would go ballistic if he found out we were delaying the release. I was stressing big time, thinking we had to pull off a miracle, and of course we did.

But you know what? After all that chaos, it turned out the relevant stakeholders were away on vacation that week, and the release wasn't even checked for many days after that. All that stress, the mad rush, and for what? We often stress ourselves over deadlines as if they're set in stone. But are they really? We push ourselves to the limit, thinking we're doing what's best for the business. What if we just… didn't? Not all deadlines are equal. That release could've waited. That deadline was one we could’ve let slip. Our health, our sanity, can't always take a backseat.

Deadlines aren't created equal. Source: Monkeyuser.com

In tech, there's this unspoken rule that you've gotta be all in, all the time. But that's just not sustainable. I've learned the hard way that not every deadline is do-or-die. Sometimes, pushing a release back a week is the best call you can make—for you and your team.

What worked for me

So, as you might guess, I’ve picked up a few tricks along the way that have seriously helped me out. I’m not going to tell you I’m an expert on mental health, and I’m not going to be giving out advice. I just thought I'd share the things that have helped me, just in case you find yourself in a similar boat.

First off, anxiety and burnout are real, and they don't just go away on their own. I learned this the hard way. So, recognizing when you're starting to burn out or get anxious is crucial. For me, it was about noticing when I started to dread work I usually enjoyed and the random sense of apocalyptic doom or when my sleep went sideways. I mean, I don’t think anyone can miss those signs, but it took me half a year to recognize them and go to a psychotherapist. I thought I had the winter blues. Go figure…

Saying “No” to anything non-critical in your off time, as well as setting boundaries between work and the rest of your life. I’m not very good at this yet, but I am learning to shut off after work hours. No reading emails, no "quick checks" on projects, no MacBook even. It's still challenging, but it’s getting better. Also, sometimes my partners call me on the weekends to do something; unless it’s something critical, I tell them I will handle it on Monday. Trust me, the world won't end if you tell someone you’ll do it 24 or 48 hours later.

I hope this doesn't become the norm. Source: Todoist

I swapped my coffee for decaf and cut out alcohol. It wasn't easy, but it helped me feel less jittery and sleep better. I also got into walking. I aim for 12,500 steps a day, usually with a podcast in my ears. It's my new (old) obsession. The steps clear my head and get me out of the work mindset. Plus, hitting my step goal feels like a win every day.

Putting things in perspective has been another big one for me. I always ask myself, "Will this matter in two years?" You'd be surprised how often the answer is no. It takes the edge off the pressure. I allow myself to miss a deadline every now and then. As I mentioned above, not every deadline is do-or-die. Sometimes, it’s entirely reasonable to push things back to worry less.


Notifications on my phone? Almost all gone. If something's truly urgent, it'll find its way to me. This alone has cut down on a lot of unnecessary stress. It's like I've reclaimed my attention span. I don’t get constant DING! DING!

But here's something I didn't expect to have such a big impact: educating myself on mental health and emotional intelligence. Understanding that someone might be fighting a battle I know nothing about made me a more empathetic leader and colleague. It's changed how I interact with my team. I've learned to listen more, assume less, and approach every situation with a bit more kindness and understanding. You never know when a little compassion during those stressful times will help someone avoid burnout.

When I felt overwhelmed, I didn’t immediately seek professional help. I thought I could handle it myself; I was ashamed of going to a psychotherapist, as if my seeking help was admitting that I was broken. Since then, I’ve understood many things. First of all, it’s totally fine to be vulnerable. If you're feeling overwhelmed, don't hesitate to seek professional help. We’re all human. There's no shame in it. In fact, it's one of the bravest things you can do. We go to the doctor for a physical ailment; why should our mental health be any different?

In short, for me, it's been about making small, sustainable changes and being kinder to myself. It's not always easy, and I'm still learning, but these steps have helped me find a healthier balance.

Our greatest asset

You've heard it before, but let me repeat it — our greatest asset isn't the code we write. It's us. Our health, our minds, our ability to be present and enjoy life outside of the terminal window. Software Engineers and Tech co-founders, like us, are more prone to hitting the lows. Depression doesn't care about your GitHub stars or how scalable you managed to build your Kubernetes Cluster.

I've learned the hard way that not every problem at work is mine to solve. I used to take every customer issue personally, letting my stress levels hit the roof. But I've gotten better at recognizing what's within my control and what's not. Can't help a customer because of a time difference or because it's outside my expertise? That's okay. There's a team for that, and it's not all on me.

I’ve been burnt out and stressed out, and it took a toll on my work, my relationships, everything. Only after I finally started prioritizing my well-being did things change for the better. I won’t say it’s all rainbows and ponies now, but things have changed. I became a better engineer, a better leader, a better friend, and a happier person than I was.

If you’ve read this far — know that you’re not alone. Things do get better. If you're overwhelmed, ask for help; there’s no shame. Find what makes you tick outside of work — be it with your family, a new hobby, or just chilling with your pets — and give it the time it deserves.

Any company that measures your worth by how quickly you burn out isn't worth your time or talent. So, I will repeat it again: our greatest asset isn't the code we write. It’s us, alive, and living the life.

UPDATE April 2024: If you prefer watching videos rather than reading, or if you just want to see my face — I recorded a video about burnout, watch until the end for my personal story. Here's the link.

Other Newsletter Issues:

  • Anonymous

    Thank you for sharing your story and the things that you started and stopped doing.

  • Karolina

    Thank you Vadim for this meaningful content which although accurately but sadly represents the perspective of how mental health was ignored in working environment through years.
    For unrealistic deadlines, demanding above the norm projects, rushing world-wide business, focused on how to support absolutely everyone else except of us..
    Working almost 10 years as HRBP in IT sector I have seen those burnouts (actually experienced one myself) and it was always unbalanced tough struggle: is it me? them? how can I do better? should I be the one who is responsible?
    Each person is different and what helps us does not necessarily serve others but one thing that I actually found supportive to many of us was asking yourself a question: how can I take care of myself?
    Though question seems simple, obvious, for some of us even unrealistic to ask, it may bring some striking reflection. There are no half-measures when it comes to mental health – sometimes the only but most freeing decision may be to leave toxic environment..

  • Rod

    Note apart: my impression is that your CEO was (is) a toxic person.

    I live in Europe, so even though we have no PIP like US companies, I’ve been put into something similar, which means being close to layoff.

    The reason is that, after 20 years of experience as a software engineer, I refuse to be considered accountable for estimations and deadlines of big chunks of projects with poor specifications and a lot of unknowns. At first I followed the expectations on me, I gave estimations, they reduced them to fit with business plan, and I had to overwork and burnout.

    The company has this kind of fancy framework to squeeze until the last drop of performance (and mental health) from employees by putting the decisions and deadlines 100% on them. I recognized the pattern by burning-out and then tried to defend myself.

    I’m looking for a new job, of course.

    Anyway, this brought to me to being considered not “at senior engineer level” (after 20 yrs and previous top-companies positions) and caused me mental health issues, rage attacks, anxiety…

    My point is: I’ll never let my company know that I’m suffering from such mental issues, they even have a mental care plan, but just the fact that you use it is, they know you have issues. So I went to a psychoterapist on my expenses.

    The reason is simple: this will enforce their judgment about “you’re not at X level because you can’t bear with our pace”, ignoring the fact that quite ALL your colleagues are burning-out too. And, since I’m in Europe, and companies don’t want to be accountable for mental issues of workers, they want to get rid as soon as possible of “problematic” employees.

    But, for the readers: if you think this is something specifically for my current company, you’re wrong, that how 99% of the companies work out there.

  • Shawn Long

    This was such a helpful article man. I got hired as a mid-level engineer at SpaceX last year but the pressure and anxiety I was feeling was so much, I decided to leave. Thanks for being vulnerable and sharing your story. It’s crazy how common this is in our industry, so we need more content like this!

  • Kevin

    Thanks so much for this text. It feels like I am in hard and similar phase right now (I need to admit, again). And your report is quite helpful and gives me some ideas on what to say “no” to. Thanks.

  • Anonymous

    I started in IT as a teenager in the 90s and i found out from the old timers that you have to get to a good work life balance. I think it was the key for me doing IT for over 30 years now. I have held many leadership roles and i have done a lot of low level work. i unplug after hours and work toward a better work life balance for everyone on my team.
    No job is really worth your health more so IT jobs since what we build does not last long.

    Most of the time people have no idea what they are trying to build with software and it takes time to find what people want. If it is a new company bill by the hour never agree to salary you never win under that.

    I enjoy doing some open source projects on the side.

  • Anonymous

    I had the same exact story as yours. Burned out completely. I’m also from Eastern Europe like you. All our anxiety, all our stress comes from just one thing – our lack of confidence and inability to say NO and mean it. I learned that in my Toastmasters. Two features, all top priority? NO. Not gonna happen. I started doing that and my life improved tremendously. Those who were demanding started asking questions “how can I help make it happen”. You have to be able to push back. But what happens is – this Russian speaking developer who doesn’t talk much, who sits in the corner quietly working away becomes an escape goat. You have to learn to communicate what’s not possible and be willing to walk away if push comes to shove. Universe or God ALWAYS finds a way to resolve it. Always. And you don’t have to take over the weight of the world on your shoulders. In fact, here’s what I found out since I got into business for myself – most executives and top level managers have no idea what they’re doing . Most businesses are a shit show. They fly by the seat of their pants. And they usually stand in the way of their own success. That’s the truth about your average manager who gives you deadlines. In fact some managers will give you deadlines just for the kick of it. They’ll make you stress over nothing. Average developer is clueless. They know the tech stuff but what they should know about is the human nature, how average humans act and react. They will not hesitate to throw you under the bus if it suits them or will earn them brownie points. I’ve had managers who used to work as legal assistants. Like I said, “shit show”. And you as a developer should learn how to find good clients. And there’s a thing in business that almost nobody knows: by raising your prices you get better clients. Because shitty clients can no longer afford you. Better clients know what they’re doing, they’re more profitable and bring you less stress. So raise your prices to outrageous levels and then wait for that awesome client who will work with you and give you a piece of the action.

  • Anonymous

    “Then a day later they tell you another feature, completely contradictory to the first one, needs to be built as well and is also highest priority. When you tell them they both can’t be highest priority, the answer is: make it happen.”

    We need you to draw 7 red lines, all perpendicular, some with green ink, and some transparent.

  • Josh

    nothing more depressing than non-technical jira managers aligned with imbecilic product managers on just death-marching features on top of legacy tech-debt.

  • Anonymous

    Thank you for these words, it’s like reading from my own life …

  • Anonymous

    What Reddits helped you, can you mention a few subreddits to check out?

    1. Vadim Kravcenko

      I usually browsed the ones related to /r/anxiety, /r/PanicAttack and /r/DecidingToBeBetter. Those were the ones which helped in the moment, if I remember more, I will add them here in this comment.

  • Anonymous

    Great article! Thanks for sharing! I had the same issues with mental health while working as a software developer, so we have kinda similar stories.

  • Mateusz

    Cannot agree more with you!!! I’m struggling the same, one advise I had is not taking personally anything that happens at work. We so often tend to prove that we are who we want to be in eyes of others. In reality most often they don’t care…

  • Anonymous

    If only all the CTOs / those in leaderships out there have the same mindset as you, the software engineers world will become a much better place. 🥹

  • Greg Hall

    A CEO that makes whatever promises they feel like without getting input about feasibility and timelines does not respect what we do in the slightest, or the time and planning it takes to do it. When you realize that’s how the company does things, move on.

    1. Vadim Kravcenko

      It does sound bad when you put it like this, but I wouldn’t put it as black and white. There are scenarios where you need to make promises so the company survives, even if those promises have very sporty timelines and are hard to pull off. I do agree though that this is best done after discussing with everyone involved.

  • Anonymous

    I’ll be that guy. The fix for you (and me), sadly, was addressing alcohol, sleep and exercise. I think finding a hobby or series of non-work outlets is a also a big help.

    I almost wish it was not that simple, because it’s almost silly.

    1. Vadim Kravcenko

      The advice does sound reasonable, my hobby was programming most of my life, I code for work and code for fun, which probably doesn’t help that much. I’m already in the process of finding hobbies outside of my digital life.

  • Russ

    My work/life has been one for 35 years because I’m obsessed with software/tech. It burnt me out in 2018 but I’ve come back and cope with it better now.
    There are internal and external drivers. The external ones are toxic people and companies who don’t understand or care about effort/impact. You need you leave this behind and find companies that understand (they ARE out there, thank goodness).

    1. Vadim Kravcenko

      I can relate very much to this. Thanks for sharing

  • Matteo

    Burnout hit me hard once, pushing through nights and weekends coding. I learned to shut off work completely after hours, no exceptions. Discovering photography as a hobby got my mind off screens and into the real world. These steps made a huge difference in my well-being and efficiency at work.

  • Anonymous

    Thanks for the article. For me, the turning point wasn’t just talking about stress and understanding that I burned out. It was when I started treating my job like a job, not my whole life. I used to wrap my identity around my work. If the code was bad, I was bad. If there was a mistake — it was my personal fault.That mindset was toxic.

    In my case what helped — I picked up hobbies that had nothing to do with tech. Started baking. You can’t rush a loaf of bread; it takes time, patience. It taught me there’s a rhythm to life outside the constant push of updates and deadlines.

    Also, I stopped glorifying the grind. I work my hours, do my best, then log off. My laptop closes, and so does my workday. My world doesn’t end if I’m not coding after hours. Life’s too short to spend it all staring at a screen.

    So, yeah, thanks for sparking the convo. Just wanted to share my two cents.

  • Jake

    Read this and thought, ‘Finally, someone gets it.’ I started taking daily walks to deal with panic, no phone, just me and my thoughts. It was weird at first, but now it’s the part of my day I can’t skip. It’s not a cure-all, but it’s something.

  • Anonymous

    In tech, we brag about 80-hour weeks like it’s a badge of honor. I hit burnout hard last year. Took a sabbatical, then started taking weekends off, no work, no pc, no code, no tech. It’s been good for me, better output at work too.