On Staying Sane as a Developer
Reflections on the small habits that help me stay grounded in the middle of engineering chaos. Simple routines like brain dumps, leaving tasks unfinished, and protecting focus time make the difference
Chaos is part of a developer’s life. Priorities shift, tasks multiply, and the sense of being “done” is rare. I had planned to publish one post per month in 2025, yet here we are—only one post in February so far.
Not because I ran out of ideas. I wanted to write only quality posts, things that felt worth sharing, like my earlier one on Kotlin’s Result
that came out of a big refactor. Then I started a new job, and life quickly filled with busyness.
That small story is just another example of how unpredictable and messy this work can be. Which is why I want to share the habits that help me keep a bit of sanity in the middle of engineering chaos.
The Unavoidable Morning Routine ☕️
I try to do this every morning: sit down, look at my calendar, and write down the three most important tasks of the day. The goal is to bring my brain into “work mode.” Combine this with a coffee, and voilà—you’ve got a simple morning routine.
If I recall correctly, I got this idea from the book Hyperfocus.
Morning routines are trendy right now. You’ll find thousands of videos of people—famous or not—explaining why their morning routine is the best one ever. To be honest, sometimes I wish I had one of those strict one-hour routines with sports, meditation, and everything else. But reality bites: I don’t want to wake up before everyone else just to cram all that in, and I simply don’t have the time every morning.
Still, these 10 minutes of focus help me immensely to start the day right.
The Brain Dump 🧠
If you’re familiar with Cal Newport, you might know his concept of a “shutdown routine”: closing open loops by moving tasks into a trusted system so they don’t linger in your mind after work.
Open loops are everywhere in software engineering. Some tasks—like reproducing a bug—can take minutes, hours, or even days, and during that time they stick in your head. I often found myself thinking about these things well into the evening.
My solution is simple: an end-of-day brain dump. I jot down, often unstructured, everything that comes to mind in my notebook:
What I accomplished today
What went well and what didn’t
Any disagreements or frustrations
Thoughts on tricky tasks or ongoing bugs
Some days, it’s just a couple of bullet points. Other days, it can fill several pages. The goal is always the same: get everything work-related out of my head.
If something pops into my mind later, I write it down immediately. This has significantly reduced the sleepless nights spent replaying problem X over and over.
It also helps me transition from “work” to “private life”—a crucial boundary when working from home.
Leave Things Broken for Tomorrow 🛠️
We’ve all been in retros, trying to recall what we worked on over the past few weeks. Sometimes, we can barely remember what we did the day before.
To make things easier, I’ve adopted a small trick: I don’t stop work with everything perfectly neat. Instead, I deliberately leave a test failing or a piece of code unfinished.
That way, when I sit down the next day, I know exactly where to pick things up. It jump-starts my brain and makes it easier to re-engage with the task.
Have a Personal “Definition of Done” ✅
You’ve probably heard of “Definition of Done” (DoD)—a Scrum buzzword meant to ensure a user story is truly complete. In my experience, these team-wide DoDs often fade into obscurity.
But having a personal DoD can be a game changer. Mine applies to pull requests, and before opening one, I mentally check off a short list, for example:
Are all tests green?
Have I removed debug logs or quick hacks?
Is this the simplest yet most effective solution?
Did I test this on Dev?
(If applicable) Did I check performance for new queries?
This feels less like Scrum jargon and more like the Pointing and Calling method—simple but effective.
Focus Time Calendar Blockers ✋
For me, early mornings are the quietest—and most productive—parts of the day. That’s when I tackle the hardest problems, aka “eat the frog.”
To protect this time, I’ve blocked two slots in my calendar:
08:30–10:00
10:30–12:15
These are reserved for deep work. I try to protect them as much as possible, but I’m not dogmatic about it—if a meeting really needs to happen then, I’ll allow it.
The first block begins right after my short morning routine. It’s consistently my most productive window of the day.
Conclusion
One of the most important lessons I’ve learned is that there will always be open tasks. You are never truly “done.” That’s why it’s essential to have tools and habits that help you stay sane amidst the chaos.
In this post, I shared some of mine. Hopefully, they inspire you—or at least give you a starting point for developing your own.
For further reading:
Deep Work by Cal Newport (Shutdown, Time Blocking)
Hyperfocus by Chris Bailey (Three Most Important Things)
Unfortunately, I can’t find the original post where I first read about “Leave things broken for tomorrow.”
If this post sparked a thought, I’d love to hear from you—drop me a line or leave a comment 💬. Always curious about how others tackle the chaos!