It took me over 15 years in the industry to realize a couple of things. If you're young and reading this then I hope you at least spend a few minutes thinking deeply about it.
1) Any productivity gained over that one-or-two-day session makes very little difference in the big picture. Even a week.
A company/product/feature is never going to live or die on that 30 hours of coding that you managed to squeeze into 48 hours. 99.999% of the time you're doing it to calm people's nerves or make someone (yourself? PM? EM?) look good.
2) My reasons for doing these marathon sessions was a lie.
I told myself that I'm doing it because I love the product, love the work, love this, love that. I'm an artisan, I told myself. A professional. Work is my life. Isn't it the same for those Japanese knife maker guys? I'm like those guys. I live this work.
The real reason was fear. Fear of not being the best, fear of not being successful, etc. I felt like I didn't have a place among MIT/Stanford grads. So I compensated with brute force.
--
It didn't help that I was rewarded with more money, more respect, and more decision making power. I was even rewarded with more knowledge than everyone else -- you learn a lot working 12 hours a day. And if you screw something up you have plenty of time to fix it.
Wrote a nasty bug? No problem, ship a fix at 11:30pm and the impact is minimal. People are much less likely to criticize you if you're the person sitting up at 11:30pm shipping to production. Clearly your heart is in the right place, right?
The "trick", I found, was to work for people who NEVER EVER demanded more than 7 hours a day from me BUT also appreciated that I'd go well above and beyond expectations. Now that I think about it, it reminds of drug dealing (or the little I know about it from when I was a teen).
I feel fortunate that I was able to disassociate my fear of failure from my genuine love for the work. These days I'm able to be very productive and lead a relatively healthy life but it took waaaay too long for me to figure out how.
At my company, we give out "values awards". People are frequently lauded for working late evenings and weekends. Everytime this happens, I cringe. If people feel they need to do this, it's a sign that projects were under-resourced or the deadlines were too tight.
At this point in my career, I am so much more comfortable saying "no" to upper management.
"My team does not have capacity for this"
"ok, which piece of work do you want us to drop?"
"Yep, we can do that... next year"
However, I'd like to point out (as someone else did too about downplaying the upside) -- if you did get rewarded with money, respect, promotions (decision making power), knowledge -- these are all real material gains from those long hours. True, from the business point of view, your extra hours didn't matter to the business in the long run. It did matter for your career though. In fact, if you happened to work for a growing unicorn, and you gained those rewards and promotions with those long hours, you may even have made lifechanging money from unicorn equity, from those long hours.
Which, comes back to the point, this is unhealthy and somewhat toxic (the fact that putting in long hours gain you those things, i.e. it encourages people to do so).
I learned a lot and shipped a lot in the few "long hours" coding sessions I did in my life. Those returns then compound over the rest of your career. Just because parent post went overboard doesn't mean it's a bad idea for people to challenge themselves once in a while.
I don't think there's anything wrong with the occasional late night session. Or even pulling an all nighter every once in a while. If I had a chance to redo my choices then I'd keep a lot of those sessions. Nothing compares to the feeling of zen I felt in those moments.
What I'm cautioning against is a consistent strategy of brute force work in order to compensate for other things (fear of failure in my case). It's like the difference between socially drinking and being an alcoholic.
Absolutely. I wouldn’t dismiss a couple of day’s sprint. I’ve done those myself and accomplished a lot. Short-term “stress” and alertness have been evolved to be a very useful feature.
You just have to realize, like a good night out drinking, that you’re trading it for something in the other end.
> In fact, if you happened to work for a growing unicorn, and you gained those rewards and promotions with those long hours, you may even have made lifechanging money from unicorn equity, from those long hours.
That's what happened to me. Unicorn -> long hours -> pay day.
> Which, comes back to the point, this is unhealthy and somewhat toxic
This is the unfortunate conclusion that I've come to as well.
High risk, high reward. There are people who work just as hard and for just as long, but don't get to enjoy the spoils. When I think of how close I came to not making it -- eek.
> A company/product/feature is never going to live or die on that 30 hours of coding that you managed to squeeze into 48 hours.
Sort of.
Several 'death marches' over my career were in fact necessary for business reasons. Large penalties can exist in contracts when deadlines are not met. No one is going to reschedule CES, the Christmas shopping season, or the Superbowl for you because you were running behind. In some cases, missing a deadline throws off the schedule of hundreds or thousands of people in your organization who depend on your work. It's true that many times it doesn't matter, but many times it does absolutely matter. I'd like to think I got to where I am in my career because I'm willing to put in the effort to make those sorts of deadlines.
> My reasons for doing these marathon sessions was a lie.
My reason for doing it is because it's the job. I came into engineering with the expectation that it is an important job that often demands much of you but also affords you with a great deal of flexibility and self-determination. I get to take off time whenever I want and WFH whenever I want because I accept that there will be times when I absolutely cannot do whatever I want.
It depends on the specifics of your job as well. Some indie game dev can probably just delay their release a few days. Embedded devs are often on a schedule dictated by hardware schedules, production schedules, factory availability, shipping time, etc. etc. Just because the job is software doesn't mean it has to resemble any other software job.
> Large penalties can exist in contracts when deadlines are not met.
If you are cutting it so close that an extra few hours are the difference between delivering or not, _ the project has been a failure for quite a while _
Some things cannot be easily foreseen and you have to fight some fires. That's fine. But let's not normalize lack of planning.
I don't work in coding but as sysadmin. And the same stuff applies.
Projects with multimillion dollar outcomes are somehow managed by people who don't stoop to ask your team anything in the planning phase.
Instead they come in the implementation phase and want you to jump. Then you point out the resources required - in writing - and the fires are burning...
At that point, I may help or may not depending on whether they pay good overtime and it suits me.
> Several 'death marches' over my career were in fact necessary for business reasons. Large penalties can exist in contracts when deadlines are not met.
This is why management should be setting internal deadlines LONG before the actual deadlines. If they fail to do this, it's their fault, not yours (as the engineer).
If you play up to their illusions of success by telling them "it'll be fine, we can do it" (I've done this -- a lot) then of course they'll go along because you'll be the one to blame when the deadline isn't met.
Setting yourself up as the one to blame for promises outside of your control is a very, very bad thing to do.
> No one is going to reschedule CES, the Christmas shopping season, or the Superbowl for you because you were running behind.
This is WRONG. Of course they reschedule things for CES. If a product isn't ready in time for some event, the company WILL find a way to deal with it.
This is what took me a very long time to learn.
Nobody cares about CES. Not in the big scheme of things.
> I get to take off time whenever I want and WFH whenever I want because I accept that there will be times when I absolutely cannot do whatever I want.
Taking a couple weeks off is nothing. Tell me a story about how you take off a couple weeks every 3 months -- you don't. Because, in order to meet the "demand" you speak of, you're not actually going to use those times off.
There are something like 104 weekend days in the year. Now combine that with non-work hours there are in a year. Now add a standard amount of vacation days per year in tech companies (like 4-6 weeks?). That's how much time you're giving up by working nights and weekends.
> Embedded devs are often on a schedule dictated by hardware schedules, production schedules, factory availability, shipping time, etc. etc. Just because the job is software doesn't mean it has to resemble any other software job.
But it isn't the responsibility of the hardware developer to ensure timelines are appropriately padded.
The reality is, and this is especially true in hardware, non-software related delays happen all the time. It needs to be accounted for either way.
I would like to voice my counter anecdote! I’m still relatively young and have no dependents , and I relish the times I’ve been at the office debugging something until the lights switch off. Then around midnight I finally succeed in my pursuit and return home, in a state of surreal and peaceful contentment as I walk the quiet city streets. I really just love the feeling of being consumed by a problem and letting everything else fall by the wayside. I don’t feel like I owe my company anything, I do it for my own enjoyment. Sadly while working at home I’ve had none of these moments at all, I work very little and find it incredibly boring
> It didn't help that I was rewarded with more money, more respect, and more decision making power. I was even rewarded with more knowledge than everyone else -- you learn a lot working 12 hours a day. And if you screw something up you have plenty of time to fix it.
As an intern this feels like everything I want though. More money, more respect, more decision making power, and most importantly, more knowledge. Fortunately my job is done after 4 months no matter what.
I really like #1. There's a good quote I've been focusing on recently - "people tend to overestimate what they can accomplish in a day, and underestimate what they can accomplish in a year."
> Is this indicative of a cultural shift in the industry?
Yes I think the industry is changing.
In my anecdotal experience, the quality of programmers has taken a nose dive. I think part of the reason is that it's been a lucrative industry for long enough that parents have had time to coach their children into the industry.
In the early-mid 2000s (when I cut my teeth) and especially in the 80s/90s (from what I hear) you came across more "hacker" types that were doing this work for the love of doing it. Yea you still had the "Initech" type companies that would outsource/etc but cutting edge programming work was a lot easier to find.
These days I'm seeing more and more people that treat programming as a "job", not a "passion".
Obviously I think this is a good thing for people, in general.
But I also think that, while the potential for software is at its highest, the actual relative quality of software is at its absolute lowest. This is due in large part to the bad quality of software engineering these days. Again, very anecdotal.
This “Type-A” hustle mentality resonates with me. I do see lots of people pushing back on it, ie ridiculing JD’s that mention passion, emphasizing work-life balance, disdain for “brogrammer” culture, etc. This seems especially prevalent on Twitter.
My personal life doesn’t allow me to do marathons. If I was single I would probably be hauling ass all day every day. I understand the health implications, but the desire to be “the best” or to be “10x” clouds my long-term vision.
I want to dominate like rms, Carmack, Beej, Eich, etc. That might put some people off, but technically, those same critics are my competition. If you don’t want to put in the same hours as me, that’s cool, but there aren’t an infinite amount of $200k+ roles in the world.
So to be clear, the myth of the 10x programmer is the person that learns Japanese when you start working with Japan as a market, sits around a lot talking about various types of teas, has an eidetic memory, has 3 months to write a major new service, and just thinks about it for like 2.5 months then comes in and types it in, in 30 hours. Not some well meaning person that makes up for a lack of skill by longer hours. Typing the wrong code in at 10 pm is harming the whole company. Hardworking and well-meaning programmers typing out a lot of code can be a disaster. The myth is "Much better the smart but lazy genius who thinks till the right solution is intuitively obvious."
Now I've know a few people like that, but in general it is a myth. But at least get the right myth. Long hours are not part of 10x myth. I mean unless you mean loves math/computer/etc. and is always learning weird complicated stuff. But that's "taking care of your mental flexibility and strength" not "working long hours to meet a deadline."
My understanding of 10x was basically a programmer who is 10x more productive than the average. I assumed the myth was dependent on the output, not necessarily the process...
If we accept it was a myth based on reality, the people that came closest to being that way were often more creative mad genuises that would have incredibly productive months or seasons, and within that top days or weeks, and then more ordinary times. Not plodding out 1 Kloc a day by just bearing down more but sitting around and joking and chatting about stuff then making some blazing new cathedral of technology that changed the game for all the programmers. I am thinking of the hyper growth days at AOL, so take it as one story.
Also part of the domination of those characters is simply being around early enough to get famous. There are loads of people as gifted if not more so who will never see the limelight particularly these days where so many people are working on personal brand building or straight up grifting.
Depending on your own goals brute force or giftedness might not even be necessary let alone sufficient. Particularly when it comes to external validation.
Thank you for taking the time to write this, I got a job at FANG right out of college and the impostor syndrome is real so I have compensated with a lot of extra work. Unfortunately the truth is at this scale my contribution makes little difference and the extra hours even less so. I just end up burning myself out over nothing.
Take this with a grain of salt, but I've found myself happiest working for small companies with people that I like being around. The list of reasons why is quite long (I can elaborate if you like), but the only unfortunate downside is you make a lot less money. You do have a chance of winning big in the acquisition lottery though.
I am similar to you in where I am in my career, also similar profile in terms of how I got here, but I don't agree with you. I think this is a natural cycle and it shouldn't be sold as an insight or a learning.
Learning compounds, so if you spend an extra hour at 20 that is like a 1000 hours when you are 40. It is what it is. You have to balance at all times so as to not go over the edge, and loose touch with the feeling of meaning. So I don't regret burning myself from both ends at 20.
I have a kid now, and a family. Things are different, as much if not more fun. But I wouldn't want this life for my 20 year old version. He found meaning and growth in the trenches.
I understand the premise of what you're saying, but I also feel like you're downplaying the upside:
> It didn't help that I was rewarded with more money, more respect, and more decision making power. I was even rewarded with more knowledge than everyone else -- you learn a lot working 12 hours a day. And if you screw something up you have plenty of time to fix it
I was only able to reflect on these things after "making it". I feel comfortable financially and confident that I'll get work for the rest of my life, if I need it.
There was a cost though. Like a greek tragedy of sorts.
It cost me my health. I don't get to enjoy the spoils of "victory" as much as I would have when I felt healthy. Health is now a factor to consider daily and, in my case, it's directly attributed to the insane amount of myself that I put into the work.
Another cost was missing out on precious time with my wife and child. That one really sucks. No undoing that one.
I've been a developer for 40+ years and can really relate to this sub-thread. Now I'm spending time with my grand-children do I realise how much time I missed when my own children were growing up. Working those hours, building those products, helping the company grow, weeks on site, 96 hour weeks... all seemed so important then - and less so now.
I still love coding, learning new stuff and occasionally burning the candle, but I'll never again make it my god.
Great post. It reminded me of something I experienced in a previous job:
One of my coworkers worked a lot of overtime at one point, I think he liked to feel like the hero. In order to make sure a particular project was delivered in time.
Guess what happened? The client just randomly pushed the deadline back a few months making all the overtime unnecessary.
I know you can’t know if this will happen ahead of time, but it still reminded me that you can put in all the effort in the world and not get anything for it. Personally, I will do my absolute best within the confines of my contract, and no more. I might do some occasional overtime if it’s needed, but I expect my employer to return the favour when I need some time off or flexibility.
I’ve had too many health issues from my past bad work practices (it’s hard to have good work practices when doing your own startups...) to do any more than that. Hell im being treated for high blood pressure right now...
> Guess what happened? The client just randomly pushed the deadline back a few months making all the overtime unnecessary.
Sounds familiar.
I'd push hard to reach a deadline only to see the deadline get pushed back because other, more sensible people, were not bending over backwards for the company. These are other sensible people could be folks on other teams (eg: marketing), business partners (eg: launch partners), or even customers.
> I’ve had too many health issues from my past bad work practices (it’s hard to have good work practices when doing your own startups...) to do any more than that. Hell im being treated for high blood pressure right now...
I feel you. It's impacted my health as well. I think permanently.
I'm fortunate enough to have built up a financial war chest so that I can relax now, but boooy was I close to not having made it.
As a young person who works parttime as data-analist next to my studies;
I feel what you’re describing is part of growing older and being in a different phase of life. What you mentioned is something that I have read more often. I feel that the only way for me to appreciate work like you do, is to currently work more than might be healthy. As wrong as that might seem, it seems very right to me.
For instance, with my 16-hours/week I dont get done what I want. I’m sure it doesn’t matter in the long term, but there’s so many cool projects to do. I would love to be allowed to work in the evening to finish some cool stuff. I genuinely feel better after that. I expect to feel different about this after 15 years in the industry.
Maybe that’s just how we learn, maybe it’s societal expectations that we try to live up to and stop caring about when we’re older.
I consider myself fairly lucky to have landed a job at a place that figured this out right out of school.
The unhealthy behavior on my part is comparing myself to my friends who went to the Bay and make basically the same salary but get like $100k in RSUs per year on top of it, or those who have the mental endurance to juggle a FAANG job and fairly lucrative contract work on the side.
Even though the numbers are attractive, I enjoy having the time to have a life on the side. I don't really like the concept of "work is life" that the big bay area tech companies seem to have. Not exactly doing much with it right now, but I could if I wanted to...
How dare you describe me so accurately. But all jokes aside, this is my current situation and so far I've been unsuccessful in finding motivation without subjecting myself to bone-crushing anxiety that comes with working with people I think are way smarter than me.
Agree. But I think getting into a focused zone sometimes has a ramp-up period for me. So sometimes I need a long day to sort of get into a focus zone or wave that I can ride till next context switch.
What did it for me was financial independence. It's easier to set boundaries when the fear of missing out is gone.
When I started setting those boundaries (eg: not working evenings, weekends, etc) I discovered a few interesting things.
1) No one even noticed. It turns out most people are busy enough with their personal lives that my work schedule isn't on anyone's mind.
2) When there are delays we just push the date or adjust the scope. I'm no longer getting pats on the back for moving the needle at light speed, but I'm still outperforming my peers.
3) Now I need to be mindful about how I make my decisions. When I brute forced, I would throw everything at the wall and see what sticks. I'd eventually find the optimal solution to a problem and that's the only thing other people would see. They didn't see the 100 other failed attempts and wasted time. Now I don't have 100 attempts at solving a problem: I have like 5 attempts. It works out fine.
Could I have been doing this all along? Was my chaotic brute force working model just a lot of wasted energy? Could I have just worked smarter, not harder?
1) Any productivity gained over that one-or-two-day session makes very little difference in the big picture. Even a week.
A company/product/feature is never going to live or die on that 30 hours of coding that you managed to squeeze into 48 hours. 99.999% of the time you're doing it to calm people's nerves or make someone (yourself? PM? EM?) look good.
2) My reasons for doing these marathon sessions was a lie.
I told myself that I'm doing it because I love the product, love the work, love this, love that. I'm an artisan, I told myself. A professional. Work is my life. Isn't it the same for those Japanese knife maker guys? I'm like those guys. I live this work.
The real reason was fear. Fear of not being the best, fear of not being successful, etc. I felt like I didn't have a place among MIT/Stanford grads. So I compensated with brute force.
--
It didn't help that I was rewarded with more money, more respect, and more decision making power. I was even rewarded with more knowledge than everyone else -- you learn a lot working 12 hours a day. And if you screw something up you have plenty of time to fix it.
Wrote a nasty bug? No problem, ship a fix at 11:30pm and the impact is minimal. People are much less likely to criticize you if you're the person sitting up at 11:30pm shipping to production. Clearly your heart is in the right place, right?
The "trick", I found, was to work for people who NEVER EVER demanded more than 7 hours a day from me BUT also appreciated that I'd go well above and beyond expectations. Now that I think about it, it reminds of drug dealing (or the little I know about it from when I was a teen).
I feel fortunate that I was able to disassociate my fear of failure from my genuine love for the work. These days I'm able to be very productive and lead a relatively healthy life but it took waaaay too long for me to figure out how.