Ask HN: Burned out, depressed, cannot do anything
Dear HN,
I need your gentle advice, I am fully burned out, have a great job, where each of my step creates a trouble to someone (in terms of code) Every single line of code I add to codebase, creates lots of bugs/crashes. I work more than 60hours/week, but in terms of productivity probably its 5hours/week. When I sit to coding, I just look at the screen and do not know what to do next.
Leaving my job probably not an option, I have a family. Feeling so depressed.
62 comments
[ 4.4 ms ] story [ 98.3 ms ] threadAlternatively - Find friend's/neighbor's dogs that you can walk / help take care of.
Then scale back your work to 50 hours per week. Make your work time really focused to get as much quality work completed during your regular work hours.
Test your code prior to committing to the code base.
How much experience do you have? Can you snag a mentor at work? Is pair programming an option?
Try to recharge and get focussed, try slowly reducing your work hours.
And take a week (preferably two) to recharge, not a long weekend. You need to get your brain completely out of work and get it used to being there.
Then spend at least a few hours of your 40 on a regular basis thinking not about your work but about HOW you work. What would improve your code quality? Automated tests? More time spent thinking? A better environment for focus? Then fix the problems you identify.
When I encounter this situation I try to remember that someone has probably solved the same (or a very similar) issue before. There are enormous amounts of open source code out there that might give you some inspiration. Take 5 minutes to sit back and search for inspiration from similar work. Don't blindly copy-paste, but understand how the author solved the problem and you in turn will have some ideas for solving your own.
1.) You should put everything in perspective. You have a job that pays well and a family. A lot of people would be envious.
2.) Working 60 hours a week doesn't do much if you're not productive. I would start coming in 5-10 minutes later or leaving 5-10 minutes earlier each day. See if anyone notices and then keep sliding it. I don't think the hours you put in matter if the productivity doesn't match it.
3.) Look into test suites if possible. Don't go crazy. Just design a few tests for some of the main functions for your software. Add 1 or 2 new tests each time you create a new bug or encounter an issue. It doesn't have to be a formal process with deployment, just something local on your machine to make you feel better.
4.) Leaving your job probably not an option because you need $$$ to keep coming in is my guess. It never hurts to look around. Email a few friends and see if they have openings at their offices.
5.) Smile. I know we've all been in work situations that we really didn't like or enjoy. We gritted our teeth and eventually, things got better. Either we moved on to different jobs or things changed in our current situation.
I guess in my situation #3 is not an option, because as I already wrote, I just cannot focus on work anymore, adding test cases are work to do. Thinking about #4, probably I should quit from my current job, take a rest for a while, probably get a loan and then come back again, but I maybe wrong
If it's deadline pressure related, then you may have to try to convince your management that extending a deadline to deliver tested code is better than sticking to those deadlines - which are usually artificial and heavily underestimated anyway - only to create extra unwanted work for everybody.
Try to minimize distractions at work if you can. You need to focus as much as possible. Read the productivity part in the 4 Hour Work Week book.
If you do not have a great system in place to ensure you are not breaking stuff, try googling "kent beck 4 rules of simple design" its a good place to start.
I've seen quite a few employers who have health insurance that covers stress leave. You might qualify, since what you're experiencing is often the result of long term chronic stress.
How amenable your employer would be to this is another question - if they've seen what you're capable of,and they know how difficult it is to find a capable developer and bring them up to speed on the company's product, they might be open to giving you a month to recharge.
Even if it's not covered by insurance, perhaps an unpaid month off is something you could negotiate? Again, it's very dependent on the employer. I've seen it work, though - and in most cases, the employee almost didn't ask because they'd convinced themselves it would be impossible, but the employer didn't see it as a big deal.
I've been in the position you're in - where you're just staring at the screen, unsure of what to do next. I found it helpful to take steps to restore my creative abilities - I'd lost touch with them after spending years just focusing on code. Being great at writing code is useful when you know what to do, but all the programming skill in the world doesn't help when you can't envision what to do next.
I found The Artist's Way[1] helpful here. Some people like it, others don't. I suggest reading some reviews on Goodreads ahead of time to develop an understanding of whether or not it would be a good book for you. A newer book along the same lines with a slightly different approach is Let the Elephants Run[2].
At the end of the day, your approach to getting past burnout is going to be a personal one. Things that have worked for others may or may not work for you. Keep in mind that many of us have been where you are, and we've been able to work through it and become productive again. You can (and will), too.
Just remember that you didn't get into your current state over the course of a few days; it's been a long, slow grind that has worn you down over the course of years. That doesn't mean it'll take you years to get better, but it does probably mean it would be helpful to treat this as a recovery process that will start small and show progressive gains over time.
(Amazon links, but no affiliate codes or anything dodgy like that (: ) [1]https://www.amazon.com/Artists-Way-25th-Anniversary-ebook/dp... [2]https://www.amazon.com/Let-Elephants-Run-Creativity-Everythi...
1) I'd definitely advocate exercise, nutrition and a break from the "mundane-ness" of your day-to-day grind.
2) Taking a scenic vacation would also be ideal.
3) Focusing on other pursuits (i.e. building a side-project, teaching your kids something new, etc.) will also give your brain the ability to recover quickly.
Often, I feel like burnout is inevitable but you can limit the refractory period if you're disciplined.
It sounds to me like you get into a rush mode and get sloppy by forgetting to test the corner cases. The pad will help.
Since you mention feeling depressed, I'm also going to put this out there. It may or may not apply to you, and if it doesn't apply just skip right on past this. Does the use of alcohol or other drugs correlate with the intensity of your feelings of depression? I mention this because alcohol and a lot of drugs are depressants.
Depression can also be anger that is focused inwardly. In that case, find a way to express that anger externally. It may be messy at first, but the point is to get anger flowing in the opposite direction. From there you can refine how you express that anger externally. My journey with my anger-centric depression started with smashing things and then evolved into establishing healthy boundaries with the motherfuckers who were pissing me off, and also recognizing when I need to take responsibility for myself, my work, or my behavior.
And of course another cause of depression could be Neurochemical imbalance. I'd look at possible substance abuse issues and anger before seeing a shrink for antidepressants.
And take some time to enjoy your beautiful family.
1. Exercise
2. Meditation in the morning (it works!)
3. Stay healthy! It affects your mood a lot (especially having a regular sleep schedule)
4. At least for now, reevaluate your long-term goals and how to achieve them
5. Don't work for such a long time period (especially if its not engaging).
Maybe "this too shall pass", but I'm open to suggestions as well.
If you feel this way, then perhaps the follow up question would be: what else were you expecting? After all, its a bit unfathomable to imagine an easy solution for your big problems.
Constantly feeling really shitty is usually caused by some kind of negative feedback loop. If you are aware that you are deeply entrenched in a negative cycle, then you have to find some way to break free of it.
imho this is why the "this too shall pass" or "take a vacation" approach isn't always good, because typically what will happen is that you will return to the very same environment that induces such a negative cycle.
Something that I would used to do is to seize some opportunity to do something different that day and see where it would lead me, even if it seems a bit pointless at first. (but don't do something different for the sake of being different! you gotta "want" to do it!)
Most importantly, if you know an approach can make your situation less shitty, than start the change now! You will only feel more shitty if you know you can change it but didn't do so because of lack of motivation. In this sense, the most rational thing you can do now is to implement the change you know will help your situation.
My kids have also been sick since Oct and believe it or not I've managed to avoid it so far. While I might be mostly immune (having had these particular bugs in the past), I also credit militant hand washing. My hands are a dried out mess but I think it makes a substantial difference.
Anyway, good luck.
Then cut down your hours. 40 hours a week is fine, and if someone tells you otherwise then explain to them that you're getting burned out and they'll get better productivity out of you if you work fewer hours.
Other than that, you need exercise, lots of natural light, a good diet, and lots of socialization opportunities.
1. i'm taking a vacation. seriously, we have them for a reason. if the company culture isn't one that supports this, i'm going to start looking for a new job.
2. create more definitive boundaries for myself. if something is sent to me mid sprint with an expectation to complete it, i'm going to push back and say 'no', or i'm going to ask for something of equivalent difficulty to be taken off my stack.
3. practice gratitude more. as engineers, we're lucky to have these well paying jobs and families we can spend the money on.
4. make time for myself. as parents it's easy to get caught up giving everything to everyone else, but not taking time for myself. i'm going to take time to focus on my health and fitness again.
5. make time for my friends. focusing on work and family isn't enough, there needs to be time with a community of friends.
and there's a forum devpressed.com I think is the address, the corporate firewall won't let me go to it for some reason though.
Oh sweet irony.
It happens to everyone including really successful people Like Ben Horowitz, "when you are in the loop nothing feels easy and nothing feels right".
Now you can take baby steps to reconnect with yourself and your body. The advice that other users gave is great: Talking a walk, meditate, exercise, taking a break...
If you need to talk, feel free to reach out.
- Are you experiencing a lot of stress at work or at home?
- Are 60hrs/week the norm at your workplace?
- Are you sleeping 8hours a day? Has you sleep changed (getting either more or less sleep than usual)
- How is your diet? Are you eating hurried meals at your desk or sitting down with colleagues or family?
- Are you experiencing physical fatigue?
- Do you have some close friends you can interact with regularly? (especially outside of work)
My general advice would be to:
- Take a 2 week vacation as soon as possible, and disconnect completely from work during that period.
- Reduce work hours to 40hrs/week
- Spend time with friends or family, have a laugh.
- Make sure you are getting enough sleep.
- Exercise. If fatigued physically, keep to mild exercise like walking in nature. Aerobic exercise is fine if not fatigued.
- Disconnect from work evenings and weekends, no monitoring slack channels or cellphones.
- Reduce cellphone use to minimum to perform specific tasks.
Secondly, you absolutely have to get your life back. 60-hour-work weeks are inhumane. Your job is taking 20 hours of time with your family away from you every single week. You will never get that time back and you will always regret having lost it.
I will always regret the lost weekends with my previous employer. Management never gave me better evaluations or bigger raises for that time I spent improving their bottom line. I could have spent that time making happy memories like I do now. My experience is that if you start holding firm to 40-hour weeks, management will adjust their expectations to be more realistic.
Remember, your kids are only kids once. You must stand up for your right to spend time with them.
Also I'd check your sleep times and quality. When I had kids waking me up all night long, I also had extreme difficulty starting and focusing on coding during the day.
I recently overcame a severe bout of burn-out using the Pomodoro Technique and an Android app on my phone to manage it:
https://en.wikipedia.org/wiki/Pomodoro_Technique
What this did is help compartmentalize my time. If you can focus on your work when it's work time, then you can relax and free your mind when its free-play time. Remember, you don't need to be productive for eight hours straight, just a 25 minute sprint. Then take a break and try another 25 minutes when you are ready to focus again. Pretty soon you'll be getting a respectable 4 hours of productivity in a day and that's more than most people can claim.
Most importantly: keep fighting the burn-out. If you keep facing it as a problem and keep actively trying to find solutions to it, you will get better and more efficient and beating it back when it does arise. I'm really sorry you're experiencing it at the moment, but I sincerely hope you get past it quickly and grow adept at recognizing when it's starting to happen again. You are not alone or even unusual in experiencing this.
My main reason to work 60 hours/week is because I am not as productive as I was long time ago. My employer is paying me, but I feel if I work 40 hours/week, then actual outcome is 2-3 hours of work per week, that's why I intentionally increased my work hours.
I agree with you about exercising
https://en.wikipedia.org/wiki/Pomodoro_Technique
I like it because I don't have to think about being productive for 8 hours straight. Instead, I tell myself, "I'll be productive and focused for the next 25 minutes." Then I take a break and try another 25 minutes. At the end of the day, I've found I've been productive for four to five hours (I had to work up to this), which is very respectable. Additionally, I'm much more productive for those 25 minutes than I have been for hours before starting the technique.
As with the other comment, I'm sorry you're experiencing this. And I want to reiterate that you are not alone and not even unusual. You have an important factor going for you in that you recognize you are burnt-out, and can therefore correct the issue. I know coders who have spent years in burn-out mode and their skills have suffered as they stopped learning and stopped growing. Having this dialogue greatly improves your prospects for overcoming this.
You might feel that it's impossible right now, but that's not true. Once you break the loop, things will look completely different.
I wish you the best.
1. Cortisol and adrenaline are your new arch-enemies. Burn out is caused by loss of control at work and other factors that skyrocket your cortisol and adrenaline and keep them high all day long. You must reduce your cortisol throughout the day or you will keep feeling burned out. To end burn out you must replenish your hormones with deeply restful sleep and eliminate the loss of control and health practices that are causing these elevated levels. Cortisol is literally poison, get rid of it.
2. Cut coffee / diet coke and replace with green, herbal or black tea. Coffee / diet coke contain an insane amount of caffeine and it can damage your ability to get truly restful sleep and linger in your system for many hours. If you aren't feeling rested it may be because your caffeine intake is damaging your ability to achieve REM sleep (a known side effect of too much coffee). Tea contains less caffeine and also contains mood-soothing chemicals that take the edge off the buzz and promote calm and focus. Caffeine elevates your cortisol and adrenaline and puts you into a constant state of fight or flight. If you are chugging diet coke and coffee, cut that shit out immediately.
3. Renegotiate your job description. Burn out is caused by feeling like a puppet at work and having too many people with a remote control to tell you what to do. Independence and autonomy and individual decision making are a requirement to be happy. Programmers tend to get treated as factory workers where other people get to dump work on them / drag and drop tasks and they have to do the work. Your manager is supposed to be providing cover for you. You need to get a new deal.
Those are the main points that helped me recover recently from burn out.
While reducing your overall levels of caffeine consumption is probably good, the important thing is to keep your levels consistent.
2. Reestablish your passion. Read some interesting books (and take a break from coding). Pick up a different language. Work on a tetris clone in javascript. I found that getting away from Java was a nice break from work (back when I was unfortunate enough to work with Java)
3. I really second exercise as a way to recharge.
4. Have any hobbies outside of computers? I find hiking/woodworking/etc to be extremely beneficial to my coding side. When Monday rolls around and I haven't touched a computer since Friday it's like "oh nice, I get to exercise my brain again".
5. At work, I'd definitely suggest working on some sort of test suite. This can be extremely daunting if you don't know where to start, "Working Effectively with Legacy Code" is a great book for dealing with adding test cases to super shitty legacy code. It'll walk you through learning how to test (if needed), and how to refactor to make code easier to test.
GL! Hit me up if you need anything else.
First, get some pure LSD and take about 250 micro grams, by yourself in the morning where you won't be disturbed. I'd bring my laptop and open my editor.
Cut out completely, in descending importance: - Alcohol - Tobacco - Refined sugar - Coffee - Grains (wheat, rice, barley, etc)
Reduce: - Marijuana - Reading/watching News
Bring in: - Clean water - Greens - High-intensity Strenght training, Weekly(See Dr. McGuff) - Stretching, daily, 5 mins(Yoga has good exercises) - Opium/morphine, if thirsty for alcohol/tobacco/MJ (30mg morphine per day max.) - LSD once every few months
Good luck. If you ever get to suicide, let me know first. Edit: Formatting