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.
[1]: http://sdegutis.github.io/2016-04-10/looming-shift-in-power/
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.
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...
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.
(was touching)
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.
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.)
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.
(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.
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.
E.g. no bacteria infections, no sleep apnea, and no food intolerances that make you chronically tired. And many other possibilities.
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.
- 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.
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.
Been working for me for years...
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?
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).
I always thought this is what people referred to when they spoke about burnout?
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.