How I Stay Productive as a Software Engineer

How I Stay Productive as a Software Engineer

People hear Head of Engineering and assume I've figured it all out. That I run efficient meetings, write clean code, and end each day with an empty inbox. The truth is, I'm still very much a software engineer. I still write features, debug weird bugs, and stare at tickets, wondering what they actually mean.

When I talk about staying productive, I'm not doing it from a distance. I'm right in the middle of it. I lead a team, but I also build things, fix things, and bounce between problems, answering questions and trying to carve out enough quiet time to get real work done.

I've picked up some habits along the way. They're not fancy, and some of them aren't even efficient. But they keep me from spinning out. They help me stay on track (or at least give me something to point at when someone asks what I've been doing).

This isn't a guide. I'm not trying to optimize anyone. I just want to share the things that help me get through my days, and writing them down might help me remember how I do it in the first place.

My Second Brain 🧠

I forget things. A lot. Not in a quirky or dramatic way. Just in the usual, irritating way that happens when your brain is juggling too many threads. Instead of trying to be better at remembering, I gave myself a tool that would do the remembering for me.

I built a second brain. It's simple: it lives in two places - my calendar and my notebook.

The calendar is where I track what I’ve done and sketch out what I think I'll do next. It's not fancy; each entry is just a title, with no lengthy descriptions or details. If I close a ticket or finish a review, it gets a line. If I want to work on something tomorrow, I'll drop that in too. That way, when I sit down in the morning, I already have a rough plan. And when I look back later, I can see how my time actually got used. Sometimes that’s different from what I expected. It's fine. At least now I know.

I started doing this to help with daily standups and weekly updates. But over time, it has become more than that. It gives me structure and proof. On days when everything feels like a blur, I can check the calendar and see the trail I've left behind. Even if it's just one or two entries, that still counts.

The notebook handles everything messier. It's for ideas, questions, half-thoughts, mental reminders, and tiny frustrations. Basically, anything that isn't tied to a specific time. I keep it on my desk and write in it whenever something pops into my head. I always date the page when I start writing. Later, when I flip back through it, the dates help me piece things together.

Together, these two tools take the pressure off my brain. I don't have to remember every little thing. I don't have to hold everything in my head. I just need to write it down somewhere reliable, in a format that works for me.

Some days, just knowing I have a system is enough to keep me from spiraling. 😅

Getting Stuck

Sometimes I get stuck. Not the good kind of stuck, where I'm chewing on a problem and gradually making progress. The other kind. The kind where I've gone too far into the weeds, and everything starts to feel off. My understanding of the problem starts to blur. I second-guess every choice. The more I push, the less I actually move forward... 🙈

It took me longer than I'd like to admit to recognize this pattern. I used to just keep grinding away at it, assuming that if I stared hard enough for long enough, something would click.

Spoiler: it rarely did. 😬

Now, I try to notice when I'm too deep. If I feel that mental fog creeping in, when I can't remember why I started or what I was trying to prove, that's usually the sign. That's when I stop.

Sometimes I switch to a smaller task. Sometimes I just walk away for a while. Anything that gives my brain some distance is beneficial. The weird thing is that the solution often shows up when I stop pushing. Not right away. But eventually, while I’m doing something unrelated, some part of my brain is still working in the background. And it clicks.

I’ve had more so-called "eureka" moments while reading someone else's code or answering a completely different question than I have while actively working on the original problem. It's never the moment I'm trying the hardest. It's always the moment I stop. 🤯

It still feels a bit like giving up when I walk away, even though I know it's not. It's a strategy. It's leaving room for the problem to breathe, and for me to think clearly again.

Some of my best problem-solving happens when I'm technically not working on the problem anymore.

My Multi-Step Process

When I'm handed a new problem, I rarely solve it in a straight line. I go through a multi-step process. First, I attempt to tackle it based on what I think the ticket says. Then I start building a solution based on what I remember the ticket saying. Finally, when I think I've solved it, I go back and reread the ticket to ensure I've actually addressed the issue that was asked.

Most of the time, I've already seen the ticket before I properly start working on it. It’s been refined, and there has been a conversation about it. Maybe we've discussed it in a planning session or on Slack. That context sticks with me more than I expect, so I usually have a good sense of the problem before I even open it again.

However, memory is often fuzzy, and details can shift. That’s where this loop helps.

It's not the most efficient process, I know. It involves some backtracking and the occasional "wait, that's not what we agreed on" moment. But it's a strategy I use to sharpen my memory. Instead of relying on endless reading and rereading of the ticket, I work from what I remember and then double-check myself in the end. It helps the context stick. It forces me to pay attention early and to notice when something doesn't line up later.

I used to feel self-conscious about this method, as if I should be more precise, more focused, and more linear. But I've learned to accept it. This loop gives me space to think and to test my understanding in a way that works for how my brain holds information.

And yes, sometimes I still reread the ticket at the end and realize I've completely misremembered something. But at least I catch it before anyone else does. 🙏

Low Effort, Big Value

Not every task has to be big to be valuable. Some of the best things I've contributed have come from noticing something small and just fixing it—a quick change, a one-line update, a shortcut for another engineer, or a minor tweak to how something renders. These kinds of improvements don't usually get written up in planning, but they make the product smoother and the team faster.

These are the kinds of things I keep an eye out for. They don't take much time, and they're rarely complex, but they often remove friction for someone else. Sometimes, they even solve a problem that no one has formally raised yet, but everyone quietly works around.

There's also something mentally refreshing about doing this kind of work. When I've been deep in a heavy ticket or spinning my wheels on a tricky bug, spotting a low-hanging improvement and knocking it out gives me momentum again. It feels good!

Some days, these small wins are the only things I ship. Other days, they're little bonuses I sneak in between meetings. Either way, they add up. Over time, they improve the product and make the team's life a bit easier.

I also just really like the feeling of fixing something quickly and knowing it actually helped someone. ☺️

This Works for Me

None of this is magic. It's just what I do to keep myself moving. I track what I’ve done, offload my thoughts, step back when I’m stuck, loop through a problem until it's solved, and pick off small things that make a difference. It's not efficient in the way productivity blogs talk about, but it works for me.

I don't think I'm particularly well-optimized. But I've built a set of tools and habits that help me show up, get work done, and not burn out. That's the goal. Not perfection. Just forward motion.

The job changes. The context shifts. Some weeks feel like chaos. But I'm still here, still writing code, still shipping things, still trying to make progress, even if it's uneven.

This might not be a system anyone else would copy. But it's mine. And it works well enough to keep me going.