After years of reading books on productivity, trying different methods, and adjusting on the fly while working full-time and completing a master's degree, I've come to a simple conclusion: most productivity advice is not designed for developers.

GTD, time-blocking, the Pomodoro technique — they all assume you have a certain kind of work, with clear tasks and measurable outputs. Software development doesn't always work that way. You can spend three hours on a bug, produce zero lines of code, and still have done your best work of the week.

The myth of constant output

The biggest trap I fell into early in my career was measuring productivity by output. If I wasn't writing code, I wasn't being productive. This thinking burned me out and, ironically, made me less effective.

The truth is that thinking time is work time. Designing a solution in your head before touching the keyboard often saves hours of refactoring later. I started accepting this, and my relationship with "being productive" changed completely.

Productivity is not about doing more. It's about protecting the time and energy needed to do the hard things well.

What actually helped me

Here are the things that made a real difference — not in theory, but in practice, week after week:

  • One deep work block per day. I block 90 minutes in the morning before meetings or messages. That's where the hard technical work happens.
  • A short daily note. At the end of each day I write two or three lines: what I finished, what's blocked, and what to start tomorrow. Takes two minutes and saves a lot of mental overhead the next morning.
  • Weekly reviews. Every Friday I look back at the week — what I shipped, what I learned, what I want to change. It's a habit borrowed from GTD that actually works for me.
  • Fewer tools, consistently used. I tried Notion, Todoist, Obsidian, plain text, and many others. What matters is consistency, not the tool itself.

Balancing work and family life

I'm a husband and a father. That means my time is not fully my own, and I've had to get honest about what I can actually do in a day. This was uncomfortable at first — accepting limits felt like giving up. Now I see it as being realistic, which is a prerequisite for any real productivity system.

What helps most is having a clear start and end to my work day. When I close my laptop, the day is done. Notifications are off. I'm present with my family. This separation makes me more focused during work hours because I know they're finite.

Tools worth mentioning

I'm deliberately brief here because the tools are the least important part. But if you're curious:

  • IntelliJ IDEA — for everything Java-related. The refactoring tools alone save hours.
  • Notion — for notes, project tracking, and my weekly review template.
  • Git + GitHub — treating commits as a diary of decisions, not just a backup.

That's it. Three tools. No elaborate automation, no complex second brain. The simpler the system, the more likely you are to actually use it.

Final thoughts

Productivity is personal. What works for a solo indie developer may not work for someone on a team with meetings and deadlines. What works when you're 25 and single may not work when you have a family.

The best system is the one you can maintain. Start small, be honest about what you're actually doing, and adjust from there.