Skip to content
← Back

Why I Stopped Working Past 10 PM

3 min read

I used to be a night owl by proximity. I live with someone who operates on a different schedule. For a while, I tried to match it. I don't anymore.

Here's what I learned.

The myth of the late-night breakthrough

There's a romantic idea in engineering culture that the best work happens late at night. The office is quiet, Slack is silent, and you can finally think. I believed this for years.

Then I started paying attention to what I actually produced after 10 PM. The code compiled. It passed tests. But when I looked at it the next morning, it was consistently worse than what I wrote during the day. The variable names were lazier. The error handling was thinner. The architecture was more expedient and less considered.

My "breakthroughs" at midnight were just me being too tired to see the flaws in my work.

What tiredness actually does

When you're tired, you lose the ability to evaluate your own work accurately. You can still produce output — your fingers still type, your brain still problem-solves — but you lose the meta-cognition that separates good engineering from functional engineering.

Good engineering is full of small judgment calls. Should this be a separate function? Is this error message clear enough? Will someone reading this in six months understand why I made this choice? These decisions require the kind of careful thinking that degrades with fatigue.

The difference between a senior engineer and a junior one is the judgement to know when to stop. It's the judgement that says, "This is good enough for now, but I can make it better tomorrow." Media glamorizes the late-night coder, but all they really are is a slave to a compulsion to keep going even as their cognitive abilities decline from fatigue. The late-night coder ships more, but they ship worse. When you're writing code for a massive system touched by millions of people, quality matters much more than quantity.

Boundaries are engineering decisions

I think about boundaries the same way I think about system design. A well-designed system has clear interfaces between components. It knows what it's responsible for and what it isn't. It doesn't try to do everything.

The same applies to a career. I've watched brilliant people burn out because they treated their own capacity as an infinite resource. It isn't. You're a system too, and systems need maintenance windows.

What changed

I set a hard stop at 10 PM. The work is important, but I do better work when I'm rested, and I'd rather ship one excellent thing tomorrow than two mediocre things tonight. The world won't end when you close your laptop. The pull request will still be there in the morning. And the morning version of you will review it with fresh eyes and catch the thing the midnight version would have missed.

Sometimes I can hear evidence to the contrary coming from the next room. The sound of someone else's keyboard at 1 AM, still going, still convinced that tonight is the night the breakthrough happens.

I hope it does. But I'll read about it tomorrow.