Ask HN: How do you deal with burnout as a programmer? - xkbd
======
tomhoward
Burnout is some part of your body and/or mind telling you you need to stop
what you're doing and find a healthier path.

So, dealing with burnout requires you to identify what it is about your
current work/life situation that is causing some part of you to apply the
brakes.

For me, it's been many different things, but it has included: both fear of
failure and fear of success; working for too long on projects that seem
destined to fail; working with people who have values I don't share;
resentments about all kinds of things that are mostly outside my control (and
therefore pointless).

My methods for identifying these issues have included various emotional
awareness/healing techniques that allow us to learn about our own subconscious
beliefs and behavioural patterns, and then to take steps to adopt more healthy
behaviours by aligning our internal thoughts with our external activities.

Feel free to email me if you want suggestions of specific techniques that have
worked for me (email in profile).

------
probablyfiction
Have. Other. Hobbies.

If you do anything over and over, you'll get sick of it. A well-balanced life
is important. Start exploring other things in life that you find interesting;
there is plenty to keep you occupied.

~~~
tfont
I agree with this; it's very important.

However, it does get tricky when your other hobbies also require you be on the
computer as your job does (e.g., cryptocurrency trading, programming side
projects, or editing images, making/editing videos, video games, etc.).

So, recently I've taken up gardening (got a nice piece of land) and brewing
beer.

Also, going to the gym every other day or go out running. The exercise helps
keep your mind and body at bay.

------
3pt14159
Take a month off and out of the house. Leave your computer at home and turn
off any notification for anything that causes you anxiety or stress.

If you can't because you are a startup _founder_ and it's not making enough
money then you have some hard choices. Either ask for help from people that
love you, get day job, or go into debt to get your sanity back.

At the end of your life the $2k that month off in Costa Rica cost you will be
a pittance compared to everything else you've earned.

At the end of the month off evaluate your life.

Do you still like programming? If the answer is only "kinda sometimes" figure
out what you actually like about it and what you hate about it and shift
things around to match those.

Are you out of shape? Start biking to get around or get a running buddy. Try
to get 15 minutes of heart pumping exercise every day and work towards at
least one day a week with over an hour of heart pumping exercise. Do some
strength training too. callisthenics is my jam since its super cheap and
effective, but some people need social encouragement and take better to things
like water polo.

Do you hate your wife? Fix the relationship. See a therapist. If your wife
won't work to fix it leave her. Unfaithfulness isn't just cheating.

How's the diet? Cut the fucking soft drinks to 0 and start eating something
flavourful, protein / fiber rich every day. I do savoury omelettes in the
morning (fresh thyme, soy sauce, mushrooms, onions and jiggled eggs) but
whatever it is make sure you have at least one meal every day that is low in
carbs, medium-low in fat and high in fiber and protein.

Get a hobby that doesn't involve a screen or prolonged mental energy.
Photography, weaving, carpentry, painting. Start small and set realistic
goals.

Quit tabacco. Prolonged use raises latent anxiety.

The key thing though is to not to try to do this all at once. Come up with a
plan and implement only one change at a time about 4 to 6 weeks between each
change.

Good luck!

------
andrewstellman
Start by identifying the root cause of the burnout. I feel like programming
itself shouldn't burn you out. It's usually other parts of coding for work
that lead to burnout. I've interviewed thousands of developers over the years
for books, research, jobs, and if I had to choose a single culprit I'd say the
most common cause of programmer burnout is a really terrible codebase that
viscerally painful to maintain.

I did my best to illustrate that here:
[https://twitter.com/AndrewStellman/status/896405621494382593](https://twitter.com/AndrewStellman/status/896405621494382593)

Tangled, nasty, poorly maintained code is not an easy problem to fix. The
first step is getting everyone on the team -- and especially the boss -- to
recognize the real problem, and accept that fixing it will save more time than
it costs.

~~~
imauld
I feel that image in your tweet deep down.

I would like to add it's not only working in a horrific code base it's working
in a horrific code base and getting a lot of push back on fixing it.

Telling PM's week after week that the backend will eventually keel over if we
don't take some time to clean it up and being told there is no time to do
refactoring or maintenance only time for features is very aggravating.
Additionally watching outage after outage occur because of this and still
being told "we need more feature work there is no time for refactoring" drove
me up the wall.

------
rvalue
Dont fall prey to Kanban. Just because you completed a story doesnt mean you
should immediately pick the next one. Add estimates in days and if you
complete in advance, use the rest of the time to relax or learn something else
at your pace. Also, work from home more when you need rest.

~~~
eeZah7Ux
Continuous, relentless time pressure is a recipe for burnout.

Focusing on weekly or even daily tasks instead of thinking strategically and
having time to learn and experiments drive alienation.

Some creative and unstructured work should be always part of our day.

(I'm talking work, not hobbies during spare time.)

------
dahart
For me, not cures, but some things that help:

\- Work on shorter projects with clear goals and a clear end. Finish them and
move on.

\- Exercise is a priority more important than work. I can be flexible about
when, but I never skip. Ever.

\- If the source of burnout is never-ending support at your day job, take
action. Alert your manager. Or start looking for a better job. Realize that no
amount of money or security is worth the entirety of your life, attention,
happiness & time.

\- Work harder to identify and prioritize what you want. Recognize you can
code every waking second and never finish what you want. So make sure you
think more carefully about exactly what you want, and start figuring out how
to spend your time on only what you want and nothing else.

\- Make sure you're learning something new that you want to learn (and not
something someone else wants you to learn.)

\- Reserve time to socialize. Reserve time to get outside.

\- If heading toward management is something that doesn't make you cringe and
run, reflect on how you can improve the process that's burning you out. Can
parts be delegated? Can you request assistance? Can it be done better? People
problems and not software may be the source of your pain. Starting learning
how to solve people problems. Read books about it, etc.

------
deft
A bunch of people are suggesting "work from home". Which sounds great but at
the same time impossible. I don't think I could convince my employer to let
me. I'm sure I'm not alone.

~~~
itamarst
It's possible at some companies by default. And even if you think it isn't, it
may be possible at your employer too, if you ask.

Replacing existing employees is expensive. You understand the code, the
business, the processes, the knowledge network (who knows what), etc.. Hiring
someone straight off the street to replace you, even if they on paper have
same technical skills, is a huge cost.

Thus, given a rational manager, if you are willing to quit your job over this
you have a lot of leverage.

You can make your negotiating position even stronger by:

1\. Living below your means, so you have lots of savings in the bank.

2\. Getting a job offer you're willing to accept that does have this benefit,
then going to your employer and asking them to counter it.

3\. Pointing out the ways this will benefit your employer.

There's a couple chapters about this in my book, The Programmer's Guide to a
Sane Workweek
([https://codewithoutrules.com/saneworkweek/](https://codewithoutrules.com/saneworkweek/)),
but it's similar negotiating dynamic to part-time job, except much easier to
get, so this blog post may also be relevant:
[https://codewithoutrules.com/2018/01/08/part-time-
programmer...](https://codewithoutrules.com/2018/01/08/part-time-programmer/)

~~~
deft
Thanks for the info and the links :) the blog post sounds like my dream haha.
I've only been at my current job for a few months, so I won't ask yet, but I'm
going to try this.

------
ropeadopepope
Eat, sleep and exercise. Most devs I know who have burned out (myself
included) hadn't ate well, slept well or exercised at all for months if not
years before they burned out.

Also, there are a lot of comments here that basically amount to "stimulate
your dopamine receptors with novelty more often." I would argue the opposite
is what you want to be doing. Stop doing anything that has a high reward for
little effort. Socialize in person instead of on social media. Learn to cook
instead of eating out. Take up a sport instead of watching sport on TV. Use a
boring language you already know to build a product that solves a real problem
instead of learning a new language by building a toy product that accomplishes
nothing. Etc.

------
dfsegoat
1st step, listen to a Navy SEAL commander with 20 years experience [1] tell
you about his take on day to day (acute) burnout:

[https://www.youtube.com/watch?v=67Vp7fTgQ3g](https://www.youtube.com/watch?v=67Vp7fTgQ3g)

... at the minimum - it'll fire you up. His stuff is great for motivation.

2nd step, because long-term burnout (chronic burnout) is real: Exercise +
Hobbies + Family

...Make time or you WILL fail everyone in the long run - the literature on
this is fairly established if I am not mistaken (sorry no refs).

1 -
[https://en.wikipedia.org/wiki/Jocko_Willink](https://en.wikipedia.org/wiki/Jocko_Willink)

------
bitL
\- take a 6-month break

\- if you can't afford, find a part-time low-stress job paying just your bills
and try to slow down

\- have interesting hobbies meeting people from outside tech purely for fun;
if they become stressful in any way disengage without explanation and move
away

\- do saunas

\- eat well, figure out which food makes you feel good long-term

\- drink a lot of water

\- get fit but don't train up to first symptoms of exhaustion, or you'd make
your burnout way worse

\- relax as much as you can

I had a friend who was driven to hospital by his bosses and stayed there for
>6 months while cutting contact with the outside world completely. You don't
want to go that far.

------
ben509
Have you ever read the label on those "natural herbal remedies" and thought,
"it cures headaches after two to three days... that's about how long it takes
for a headache to go away by itself."

I'd apply that same skepticism to pop-psychological advice.

It's also possible you're not actually burned out, but that this is a natural
part of the ebb and flow of your emotional state. This isn't to say "just
power through," but if you're a bit sick of it, you may find you naturally
recover.

------
laythea
When the option to ditch the keyboard is not available (Ie. always for me),
the way I deal with this, is to change what I am working on.

Ie. I may be weeks and weeks in networking code and get it to a reasonable
point but then get fed up, and move to 3D graphics code, then on to the
caching system and then back to the networking code and so on. None of these
sub-systems are complete in 1 sitting, but taking this iterative approach
gives me a few things:

\- the change brings variety to the mind, which prolongs the burnout.

\- every "round" of work, I will learn something, thereby building my
knowledge bit by bit. It is good to consume this knowledge bit by bit, giving
time for it to be absorbed, which this approach allows for.

\- it means that at any one time, I have a good "overall" view of the state of
the entire product.

\- i notice things that I did not when working on that sub-system the first
time. Fresh pair of eyes, almost.

Well, the disadvantage I suppose is that it is probably not the _most_
efficient manner to work, but it keeps me relatively sane. Progress feels
slow, but then there are moments where multiple sub-systems come together at
the same time, and those are very rewarding.

------
sebringj
You have to vary your routine, workout in the morning but in different ways on
different days, play with your kids, visit friends for coffee, talk to your
spouse, play a sport or put together a robot. Pick activities that are not in
front of a screen so when you do burn the midnight oil or push yourself to
finish those deadlines, it doesn't feel like your life is just in front of a
command line.

------
beeskneecaps
Laptop off, phone off when you get home. Read science fiction or fantasy
books, watch an engaging mini series, or get a Nintendo switch and run around
in Breath of the Wild for 40 hours. Or get out and actually go camping. These
are some of my burnout cures.

------
rqs
Browse reddit LOL.

Actually, sometimes, when I tired writing code, I will just go hangout with my
friends, have some little chat or something.

Other hobbies also helps, like photography, cooking or just staring at sky,
watch the cloud floating by. If you have a small astronomical telescope, then
you can even see the stars (Well, plants actually and nebula if you do
photography).

The key point is: Don't just write program, have some life. Good life will
eventually give you better code in return.

------
dvfjsdhgfv
I check alternative programming languages. D, Nim - there are a joy to use. I
push them whenever I can. Sometimes I regret, sometimes people thank me for
that. Novelty, novelty. I try to experiment with new things as much as I can.
Is there some margin for trying out some new ways? Let's do that! Connecting
with unfamiliar hardware, be it microcontrollers, SBCs or huge clusters, also
gives your brain a refreshing fix of what it needs.

------
rejectedalot
When dealing with burnout, you should identify what specific stressers exist
for you in relation to programming, and then work to cut those stressers out
from the process. I’m afraid that from person to person, programming burnout
can come from different sources, so we’ll need more information first. For
instance, is it specific aspects of the job / management? Is it the codebase
itself, or a specific project you’re working on?

------
jrowley
There's definitely been a lot of great material on HN about this in the past.
If you haven't seen it, I invite you to check it out:

[https://hn.algolia.com/?query=burnout&sort=byPopularity&pref...](https://hn.algolia.com/?query=burnout&sort=byPopularity&prefix&page=0&dateRange=all&type=story)

~~~
ojuara
Thanks for this.

~~~
jrowley
A well timed HN thread on burnout has saved my butt more than once, so I'd
never say its a bad idea to have people ask the question again. Also new
answers are great to read.

------
jecxjo
Every 6 months to a year I pick a new tooling language. New paradigm, nothing
like what I've done before or use on a day to day basis. This gives me
something "new" w/o having to change jobs.

Other hobbies, and keeping the screen off when I'm at home helps too.

------
frgtpsswrdlame
What's burning you out? Too many hours? Bad coworkers? Bad management
structure? A general anhedonic feeling towards work? Is it a feeling stemming
from work and leaking into your life or is it a feeling stemming from your
life and leaking into your work?

------
wotbbcicxinu
I build something super stupid. It often makes me feel better.

Also, lots of working out and meditation. It helps to keep life in
perspective. Humans have pass many great filters and your life is better
almost all who came before you.

------
trumbitta2
Have a child. Get home to him / her every night and just look at that smile.

It's working for me better than any other thing I tried in the past. And
obviously (?) we didn't even do it for helping me deal with burnout.

~~~
ojuara
Having child is a blessing. My little daughter makes me smile everyday. You're
right.

------
funkaster
Have a network, as in family, friends, partner. Also, make them your priority
over work. And as other have pointed out, do something else on your free time,
and protect your free time.

------
mixmastamyk
Haven't read "take a vacation, regularly" yet so I'll add that to the list of
ideas.

------
paulcnichols
Start a business. No better way force personal growth than put yourself in
harms way ;)

~~~
dahart
Oh man. Yes, this is a solution to lack of growth. And a great idea for those
who want it. But a solution to burnout? Speaking from personal experience and
the evidence around me, starting a business seems much more likely to lead to
burnout than to cure it.

------
mfoy_
Work less hours, and don't do just one type of thing all day, if possible.

------
dlwdlw
Accept it. Then rise from the ashes. :/

------
wickedOne
find something else you're passionate about besides coding and try to free up
some time to that on the side...

------
nurettin
Get older.

------
zerr
Working from home, part-time.

------
some_account
You should never reach that stage where you feel like you are burned out. Then
you are doing it wrong.

Slow down. Let things take time. Learn to say things took longer than planned.
People who are not devs will not understand why you need rest sometimes.

~~~
laythea
I am a dev, but I am not uniquely qualified to require rest. All humans do.

