My eyes are blurring over as I squint at the screen. It’s 11pm and this is only the most recent of many all-day coding sessions. My creativity is gone. My love of programming is gone. Any ability to consider the system as a whole is gone. I’m striving in vain to finish a feature that is hoped to “turn the company around.”
There’s a common refrain among tech company owners: I want someone who’s passionate about what we’re doing. I want someone who’s willing to go the extra mile for the bigger purpose: making the world a better place (better than everybody else).
After being hired this translates as “I expect you to work overtime for zero compensation.” This often also implies the belief that longer work hours lead to faster progress, which is demonstrably only true for the very short-term.
Junior developers frequently do this to themselves as compensation for their lack of experience. Senior developers and managers believe unpaid overtime is just the way of the world.
A love of programming, my belief in the goal, and loyalty to my colleagues frequently made these expectations seductive. Of course I should sacrifice my free time for the company to succeed. Of course I should work more than 8 hours a day if I want to get promoted.
Donating my time to the (usually wealthy) owners of the company not only conflicts with my best interests, it often conflicts with the company’s best interests. One month of 10 hour days will turn anyone into a worse programmer, even if they don’t realize it. Further, guess which burned out developer will still get laid off when the funds run out. In most cases the money does not run out because the developers didn’t work hard enough; it’s because there was no product-market fit and wildly adding features didn’t magically solve the problem.
There is no such thing as company loyalty.
If you want to ascertain how much loyalty your company has to you, you can measure it directly: multiply your ownership percentage by the probability they’ll be able to continue paying you.
I’m lucky to never have been laid off in my career, but I’ve witnessed many a loyal, talented employee discarded in moments of crisis. Not out of contempt, but necessity. The loyalty of your peers and management just doesn’t matter when money gets tight enough. The company has needs of its own.
In this environment, the only rational option I see is to behave in a way that reflects reality: you work for yourself. You sell your services, and your services are not free. This has no effect on how loyal you are to your colleagues, how much you want the company to succeed, or how much effort you put into the time you’ve been paid for.
How to escape
Once a culture of uncompensated overtime is well-established, it can be almost impossible to repair. There are often entrenched advocates of the practice who got where they are by impressing bosses with long hours. Managers who value and reward a lack of efficiency in this way are unlikely to recognize and address the underlying problems that lead to frequent, urgent development requests. Owners simply ignore or don’t recognize the disparity between their interests and yours.
The ability to push back against overtime can only come from employment security. Are your skills sufficient to provide for you if you were to leave your current job? Pushing back in overtime cultures will almost inevitably be perceived as a lack of “commitment” or not being a “team player.” This is bollocks, of course, but perception is all that matters. If you decide to push back, consider doing so by asking if the frequency of overtime is a symptom of deeper problems that need to be addressed. If it’s relevant, perhaps point out that an exponential increase in development time is inevitable if code quality continues to be sacrificed and developers continue to lack time for recuperation and personal growth.
Finding companies with healthy cultures can be difficult, but not impossible. The real safeguard against working for free, in my experience, has been to create an independent income stream that provides for me. This has made any other work I’ve done strictly “at-will.”
I'm Garrett Lancaster. I co-founded and developed a moderately successful SaaS app you've never heard of. I mainly work on projects using Ruby on Rails, Ember, React, and "VanillaJS". If you liked this article and want to hear about the next one, click below. I don't spam and I respect your privacy.