Settings

Theme

How I’ve Avoided Burnout During Decades as a Programmer

thecodist.com

173 points by mrtbld 10 years ago · 55 comments

Reader

pfarnsworth 10 years ago

I've been programming for over 2 decades and had 2 bouts of burnout. The first was around the dotcom bust, when I thought my career was over because all the jobs were going to go overseas, and the second after a too-long stint at a shitty well-known enterprise software company where I felt useless and worthless.

I didn't take a break during the first one, which took a toll and probably had a hand in my subsequent divorce. The second time, I stuck around as long as I could until I got health issues, so I quit for a year. That was the best thing I've ever done and I wonder if I'll ever get a chance like that again. I spent probably $50k in cash and lost out on $100k net income after taxes, so delta in money was large, but worth it for my sanity and overall career. It helps having a supportive spouse with a great job/health care and good savings.

During my break, I programmed for 8 hrs a day 5 days a week, except on things that I loved, and it was worth it. I did things like spend 3 solid weeks improving the accuracy of my OCR system using OpenCV/Tesseract from 90% to 98%, something I never could have done without all the freedom or time. I regained my love for programming as well as my self-esteem, and so far so good. Hopefully I can ride this current wave out until I retire, but if it happens again, I have enough fuck you money saved to take more than a few months off.

  • sdegutis 10 years ago

    Interestingly, I just wrote a blog post today [1] about how larger enterprises use different tactics to keep developers from realizing they're the ones who hold the real power at software companies. (It was going to be a comment to another thread on HN but it felt too long.) Your comment that you felt useless and worthless at the well-known enterprise software company is no coincidence, it's a very intentional and calculated cultural move.

    [1]: http://sdegutis.github.io/2016-04-10/looming-shift-in-power/

    • zenlikethat 10 years ago

      I like your article. My feeling is that some of the new guard will get savvy and parlay their power into managing other developers (I firmly believe that only truly technical people can effectively manage other technical people, otherwise it's easy to deceive them). Others will remain clueless and be subservient for all their careers.

  • mclovinit 10 years ago

    It's great that you are staying in the groove. Resetting by taking time off is definitely easier with a supportive spouse/partner. I had to voluntarily take time off when I got sick about 2 years ago. My spouse is a CPA so she was able to offset my loss of income for 6 months before I was able to get back to work.

    I learned to back off and enjoy my life outside of work. Life is just too darn short. I still stay relevant by learning at least one new thing each day. Will I ever use all of the tech I learn on personal side projects? Probably not, but I get a kick out of designing things on my own schedule without any corporate constraints by some manipulative middle manager.

    So today I broke out my old electronics kit and taught my young one a bit about adjustable voltage regulators. Could have caved to the guilt of work and VPN'd in to code some stuff, but that just isn't worth spoiling my time with my family.

hyperpape 10 years ago

I'm not saying this to try and discredit this post. However, there's a very interesting trilogy here:

Oct 2012: Yes I Still Want To Be Doing This At 56 http://thecodist.com/article/yes_i_still_want_to_be_doing_th...

Jul 2015: How I've Avoided Burnout During More Than Three Decades As A Programmer [this article]

April 2016: My Biggest Regret As A Programmer [is not going into management] http://thecodist.com/article/my-biggest-regret-as-a-programm...

  • quonn 10 years ago

    Wow. The lesson here is perhaps to not kill certain doubts with various defense mechanisms except as a short-term strategy for situations that will eventually pass. Instead, facing the doubts and making necessary changes while it's not too late may be better to avoid future regrets.

formula1 10 years ago

I really appreciate posts like these. Alot of posts that get popular on hacker news are about the struggle between management/developers and the best practice for success. This on the other hand is far more relatable to me. I am a developer that gets burnt out on jobs quickly and don't have a mentor I can look up to. A post like this gives me actions/patterns/history of someone that is still working and still wants to work in the industry like I do. Thank you for posting this!

  • LaFolle 10 years ago

    Agree. Virtually there are many people whom you can look up to, Linus Torvalds, Brian Kernighan so on and so forth, but having a mentor with whom you can talk face to face is something I really cherish. This post is like that mentor telling you what to do and what not.

  • CuriouslyC 10 years ago

    I don't know if this will help you, but in my case the only times I've ever felt like I was heading for burnout were when I was when I was writing fairly mundane code under time constraints. If you can move into a job role where you spend more time learning and solving problems than coding everything will get a lot better.

    • formula1 10 years ago

      I appreciate the post but I would have to argue that 'looking for a job where I learn / solve problems' Is basically every job I'm at. I always search for a way to do it better than before but I am almost always alone. What I appreciated about what he was saying is that he was not always successful, nor did he stay in the same field (which many people told me I need to specialize). Granted he is probably leagues ahead of me, this makes me believe that my experience is not a unique one which I appreciate.

wallflower 10 years ago

"If you don't learn anything new, eventually you not only will hate your job you might not even have one anymore!"

This is true. I know many people who are in a job that they do not particularly love. And they stay because of intangible benefits like flexible work schedules or ability to work remote or sabbaticals. And I worry a little about what will happen if they ever need to find another job with their specialized skillset and years of the same experience, copied and pasted from one year to another. Many of these people will stay until their kids are out of college (or even longer). The market does not change much (stable) but there is no growth (few companies doing the same thing, or even contracting). However, I don't worry as much as I used to because we all live our own lives - coding is just a part of their lives, not the main one. Family is really it. To the 9 to 5 coders, I wish sometimes I could be more like you.

inv13 10 years ago

"(thankfully I'm not a Javascript programmer)"

As being a js programmer, i had to laugh at this :)

Nice article anyway, the sad part is, that i nearly had all those points at once, at one job(unpaid overtime, the management part, and so on...). The last 3 months i spent there was only because they asked me, and i was dump enough to say yes (they actually offered a 'bonus' to stay, but don't think anything big).

Something i would add, which i read somewhere, is when you begin to work somewhere, look around at the other people, how they behave and everything. If i knew these things a little earlier, i probably would not have ended up (a little) broken, and unemployed.

  • mistersquid 10 years ago

    You mention you worked"at one job(unpaid overtime,[...]", and this is a variation of the very first point, but as I'm coming to see it's really not a question of unpaid or paid overtime.

    I am currently with a company that pays overtime at 1.5 and commensurately accelerates vacation accruals during overtime hours.

    But the problem is that now we're working overtime at a higher rate. To put it another way, imagine a higher salary but with unpaid overtime. It's the equivalent of a job with unpaid overtime and better vacation accrual except that if you don't work overtime your salary gets docked.

    So the problem with overtime is not the pay but that you don't have time to live your life, and this is particularly a problem if the management has been given carte blanche to pay overtime to its employees. (That is, management has no disincentive to pay its workers overtime.)

  • ColCh 10 years ago

    I feel pretty good with this new stuff every year in JavaScript world.

    It feels like something new. I really enjoy this feeling!

    • inv13 10 years ago

      Dont get me wrong, i also like those fancy new stuff.

      I actually used angularjs at the job, web and on cordova mobile app.

galdosdi 10 years ago

Good tips for preventing burnout before it happens! Anyone have any tips for how to recover from burnout _after_ it has already happened?

  • dkopi 10 years ago

    A month in south East Asia. Then another month simply learning something new. Get excited about programming again. Make programming your hobby again, and not just your job.

  • asteli 10 years ago

    The first time I experienced burnout, I didn't fully understand what was happening, so I kept spending 12-16 hours a day staring at my desk. My productivity got close to zero for what I think was well over a month. In retrospect I think I should have:

    a.) accepted that I've begun to experience burnout

    b.) recognized that I would lose some output over this

    c.) talked to my boss and organized a week or two of out-of-office time to reset.

    • mikeklaas 10 years ago

      That can work if you are only mildly burnt out. A week or two is insufficient for most people.

  • Joeri 10 years ago

    Having battled with burn-out myself twice I noticed there were some general principles at work for me:

    (1) The cause must be addressed for recovery to start.

    (2) Getting out of the hole takes as long as sliding into it.

    (3) The key thing was to find the joy of programming again, and to just have fun in general. Hobby projects helped.

  • collyw 10 years ago

    Not really burnout but a lack of enthusiasm for the job a few years ago. Until I got a new job building something from scratch, learning Django. M

    aking use of my existing database skills. I think too many new things at once can get a bit overwhelming but coming from Perl, Django and Python were easy to pick up. It was a nice balance of using my existing Perl / Database skills as well as learning new stuff that felt productive.

  • zzzcpan 10 years ago

    Obviously it would be impossible to continue doing what one was doing. So, one should just stop, do something else, learn something new and it'll pass in a year.

  • xyzzy4 10 years ago

    Go to a developing country with your significant other.

  • jordic 10 years ago

    For me, learn something new, is the only think that relaxes me. ( for example if you don't use vim, learn it.. Or learn Emacs... )

  • lisivka 10 years ago

    Rest until you will want to code again.

  • cpncrunch 10 years ago

    Do something that you enjoy.

  • GoToRO 10 years ago

    actively take care of yourself.

  • berntb 10 years ago

    One thing that would have helped me avoiding burnout -- make certain you are healthy.

    E.g. no bacteria infections, no sleep apnea, and no food intolerances that make you chronically tired. And many other possibilities.

AndyNemmity 10 years ago

I went into consulting and have found the very same things. Before consulting, I was never burned out, and loved my job a lot. I could imagine doing it forever.

Now, I can't wait for it to end, am in a consistent state of burnt out. I have to work infinite hours to keep up.

I didn't really understand this before I took the job, would have been good reading as I tried to decide what was next in my career.

At the same time, I've learned a lot from consulting, and am much more effective now. So good lessons, but not worth the overall cost.

  • manmal 10 years ago

    Having been (or sometimes, still being) in the same shoes, here's some things I can recommend avoiding the consultant blues:

    - Never work without a contract or at least a clear statement of work. Ever. So much pain will ensue otherwise.

    - Take up front payments whenever you can. Ideally, 50% or more. Liquidity takes a lot of weight off your shoulders. Don't let customers get in the way of liquidity. We learned this the hard way and almost went bankrupt - never again.

    - Trust your gut feeling regarding your customers - if your gut says no, don't do it. Again, a lesson learned the hard way.

    - Adopt GTD or a similar methodology. The vast amounts of information you are bombarded with (especially if juggling 5 projects at once) need organizing. If you haven't read Getting Things Done yet, just get a free Audible trial at Amazon and listen to the first chapters of the audiobook on your way to work.

    - Try to develop actual love for your customers, or their end customers. Or else, you will feel empty inside, and the time spent in the office will feel wasted. If you cannot love them because they treat you badly - talk to them about it or leave them.

    - Tell clients to the face if you think that their reasoning or assumptions are wrong. This feels harder than it should be, I think that's because of BS mantras like "customer is always right".

    - Insist on your own side of things. You are your own business' only advocate, and you must take a stand for it. No one else will. Everybody tries to push their own agenda. So push yours.

    - Don't be a code monkey, but be an actual consultant. Code monkey freelancers are bound tightly into their client's development process, and only churn out whatever code is required of them. They don't get to adopt the purpose the client creates for a project. Consultants help the client transform their purpose (business goal) into a vision, and ultimately into a product. Adopting the actual purpose for your work is so important for not burning out.

    I'll save this list as a reminder for myself now.

  • Gibbon1 10 years ago

    The way I look at it is, if you're a one man shop.

    Link your arms and make a circle, that's the biggest income stream you can capture. Now take ten people and have them join hands to form a circle and that's the biggest income stream they can capture. Obvious a small group can capture much large income stream per person than one guy by himself. Difficulty, keeping them all holding hands in a circle.

    You by yourself also have the problem that the stream you're trying to manage is often too big, or too small. Too big you can't keep up with it and burn out. Too small you starve.

    One advantage of having been a consultant is your bosses can smell it on you. They treat you differently.

tootie 10 years ago

What I wonder about is how to be a programmer for 30 years and not become an architect or worse.

  • AndrewDucker 10 years ago

    You say "No" whenever you're offered that role.

    Been working for me for years...

  • ArkyBeagle 10 years ago

    It's doable. It's a bit of a delicate balance, but it's doable. It does go glove in hand with "only work paid hours of 40 a week."

  • CuriouslyC 10 years ago

    What's wrong with being an architect?

    • tootie 10 years ago

      More responsibility. I've taken it as a given that it's part of career advancement and I take on progressively more and more responsibility and authority to earn more money. There's nothing wrong with that, I'm just jealous some people can code and code and code and still have a successful career.

      • CuriouslyC 10 years ago

        Well, it is true that you can't really dodge responsibility if you want career advancement. That being said, if you love to code and you want to limit the non-coding portion of your job, your best bet is to really hone your skills as a high performance systems-level engineer. That track probably offers the most advancement potential in terms of "just coding".

happytrails 10 years ago

This is the same guy who later said, " I wish I went the management route".

yuumei 10 years ago

Any advice for someone that really enjoys the work, but has been at the same place 5 years and is underpaid?

  • kuhzaam 10 years ago

    Why are you still at the same place you've been for 5 years if you are underpaid?

    I don't mean that as a dig of any kind, just trying to get an idea of what your motivations are. Maybe you really love it there aside from feeling underpaid, or maybe you don't feel like you have the adequate skills to make a move?

    • yuumei 10 years ago

      The job has been challenging/interesting/varied and fun basically. I have applied elsewhere and had a raise, but another raise is out of the question now. (Thanks for the replys btw)

  • zo1 10 years ago

    Tell them you're unhappy with your salary, and that the quality of your work is suffering because of it. Word it as if the next option you have is to quit, unless they remedy it. Don't leave on a bad note, and don't burn bridges, but keep that treatment of you in the back of your head.

  • bendbro 10 years ago

    Ask for a raise then quit

  • cylinder 10 years ago

    Get another job offer, present to them and allow them to counter. Then pick.

bikamonki 10 years ago

I think your first point is the most relevant: endless hours stuck trying to finish a project while struggling with a tight deadline/budget. It all boils down to a common problem amongst developers: guesstimates.

I believe it is a shared fault between clients and consultants. The former does not want to spend money/time preparing complete in-depth requirements/functional descriptions, they want to start yesterday and deliver tomorrow. On the other side, the programmer that bids on the safe side (b/c requirements are a blurry incomplete list of wanna-haves and it's better to over-estimate) runs the risk of not getting the contract, so he commits to a dead-end project: underpaid and overworked.

After many weeks of coding stuff that was not on a list, naturally one burns out. One subtlety: the burnout may not be due to the actual number of hours worked but to the fact that one does not see an end to it, one can never call it done (pressumably waiting to collect a payment due on delivery).

mentos 10 years ago

The burnout I'm struggle with is cognitive fatigue. I love programming but find my mind can only handle so many hours. Answer is simple, take some time off and exercise but easier said than done.

I always thought this is what people referred to when they spoke about burnout?

  • michaelchisari 10 years ago

    > I love programming but find my mind can only handle so many hours.

    I think coders in general are useless outside of a 7 hour window of programming. Sure, there's exceptions. Crunch time or when you're particularly inspired.

    But my experience is that any place that insists on 9+ hour days is really just encouraging their developers to "veg out" for those hours past the healthy 7 hours.

    • goda90 10 years ago

      What I've heard is that when someone is worked overtime they always end up working under time too, whether they are sitting at work or not.

  • tim333 10 years ago

    Usually people are talking about this stuff instead https://en.wikipedia.org/wiki/Occupational_burnout

anexprogrammer 10 years ago

Good advice. The hardest part of following the suggestion is going to be getting past recruiters and HR, who don't want you in whatever industry unless you have 5 yrs+ experience of it already.

andretti1977 10 years ago

I avoided burn out becoming a freelance developer. So it is true that there are still difficulties but it really changed my work-life: always something new to learn, new challenges and the possibility to say "no, i won't do this job": obviously you will lose some job opportunities so you have to balance "No" and lost incomes but it is really better then burn out or hate a job that i truly love.

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection