The Codebase Never Sleeps
The reality of working as a software developer is that you’re never done. You lie down at the end of a long, hard day thinking that finally you can have that well deserved rest.
Then you get that notification in your head. It’s from the code and it’s telling you that you’re not done yet.
Welcome to the Loop
You’re always tethered to your keyboard whether you are asleep or awake. At least you’re productive, even if it’s only in your dreams.
I’ve been relieved to know this isn’t just me. We’ve coded ourselves into an infinite loop where we are trying to process coding issues even when we should be switching off our brains. It’s like you’re stuck in a nightmare of recursive functions where you’re calling your problem-solving routine from itself.
The work from home software engineers have elevated this into an art form, perhaps even working from their bed. Good luck sleeping when your subconscious is screaming at you about a null pointer exception.
The Real Cause of Sleeplessness: Your Codebase
It doesn’t really matter which company you work for or the complexity of the hiring process (where they “raise the bar” with each hire), the codebase is going to be trash if you’re working on legacy code.
This is because even the big tech companies are no longer the playground of innovation and nobody cares about working on tech debt or maintenance. Even if you manage to carve out some time to improve the codebase you’ll still wake up one day and realize that nothing’s changed. The codebase has won again, and your dream has turned into a nightmare.
Solutions to getting a Good Night’s Sleep
There’s a scapegoat who can’t answer back to you. The last developer. If you’re not to blame for the state of the code and the difficulties in adding new features you should be able to sleep happily.
I’ve engaged in this timeless developer ritual. I feel entitled to do so though, since I was lied to at interview for my current position. I was told we were moving away from using contractors towards permanent staff, and I would have the opportunity to radically improve the codebase. It sounded like a fun position, so when it was offered, I accepted.
We still predominantly use a majority of contractors, there is no opportunity to improve the codebase and permanent staff could care less about coding standards. Meaningful change is impossible, so I’ve regressed to blaming the current code.
Here’s the truth though, you’re the “last guy” for the next developer.
The Nightmare Never Ends
You might think that a good night’s rest will represent a break from the grind. You might do yourself a favor and work with the best of intentions (and effort) to make your codebase better.
Then the reviewers who didn’t quite approve your pull request are “out of office” but forgot to mention it. Or you mentioned to a developer that they aren’t conforming to the single responsibility principle in a code review and they expect you to rewrite the code for them.
So, you’re either stressed about the work that you’re not doing or stressed about the work you’ve done where it isn’t appreciated. Welcome to the infinite loop that is the developer’s mind.
Conclusion
I think I must secretly love this torment, and there is something weirdly satisfying about these recurring nightmares.
I think we all know that we’ll never fully escape this life. Quit software development to become a carpenter and you’ll be making websites as your side-hustle.
It is better to wish that one day we will code in our dreams and wake with functioning PRs.