Over the years I have spoken with hundreds of engineers, managers and founders.
The most productive ones I know all have one trait in common: they are very intentional about how they manage their time. They organize tasks in a certain way, have rules for their calendar, meetings, and focus time.
These are no small tweaks. Many recall having a real breakthrough after they changed specific aspects of their daily schedule, and could never go back.
I am one of those people.
Over time I have experimented with various ways of organizing my work. By doing so I have learned more about myself, and I feel now the most productive I have ever been.
In the past couple of weeks I have reached out to tens of incredible people, plus friends on the Refactoring Community, to collect patterns and strategies.
I matched them with my own experience and wrote the very best advice on personal productivity that I am capable of.
We will talk about:
🕰️ Time is an illusion — why using time is not the best way to plan your work.
🍅 Pomodoros — a simple technique that changed everything for me.
⏱️ Timeboxing — how to leverage your calendar for productivity.
👥 Meetings — how to arrange meetings for your sanity.
🔄 Feedback Loop — how to keep going and get better over time.
🔨 Tools — how to implement all of this with tools.
Let’s dive in 👇
Before we start, I am happy to spend a few words to promote Stepsize, a fantastic product whose founders I have been in touch with for a long time.
Stepsize allows engineers to create and view code issues, like technical debt and refactoring work, directly from your VSCode and JetBrains editors.
It integrates with other tools like Jira, GitHub, or Linear, so you can link issues to code without context switching, and make them visible in your codebase. It is a brilliant idea and you should definitely check it out.
Refactoring readers get a special 50% discount for the first 3 months on the team plan, by using the REFACTORINGCOMMUNITY code.
Now back to the article 👇
🕰️ Time is an illusion
The most natural way to estimate the effort of your tasks is by using time. You take a task and say “it will take one hour”.
If you apply this to everything you have to do, you should get a reasonable expectation of how much you can achieve over a single day — or a week.
But does this really work? Like, in real life?
I did just that for many years, with mixed results. I had good days where I did more than expected, and bad days where I did less. The higher the timeframe, of course, the more inaccurate the results would be. Small misses over a single day would become abysmal divergences over a full week.
This wasn’t a matter of productivity—I was happy with how much I was doing anyway—but rather of being able to predict my output and plan work properly.
The problem lies in the fact that your available time is just loosely correlated to how much work you can do. For two reasons:
⚡ Available time ≠ available energy — there is a limited amount of energy you can spend over a single day.
⚖️ Not all tasks are created equal — some are more cognitively intense; others are lighter. Two hours of intense design work can easily knock you out for the whole day. Two hours of processing emails is a different story.
As software engineers, we invented story points to decouple effort from time. Story points are totally made up, but they work. We count how many points we complete over a week, and get an estimate of our velocity.
What is the equivalent of story points for our lives? Enter the pomodoros 👇
The Pomodoro Technique is a time management method that breaks down work into small intervals (pomodoros), separated by short breaks.
There are many variations and quirks, but here are the basic rules:
Each pomodoro lasts 25 mins, followed by a 5 mins pause.
You address a single task at a time.
Zero distractions. No notifications, no context switch. During each pomodoro you just focus on the task at hand.
I have known this method for more than 10 years, but I tried it seriously just a couple of years ago, because I couldn’t figure out its benefits.
Now, I could never go back. Here is why 👇
⚡ Sustained energy
The regular pauses allow me to regain focus and sustain deep work longer. Breaks are annoying sometimes because they seem to break your momentum, but they pay off over the course of the day.
Working on one thing at a time with zero distractions makes you do more in less time. At some point you just get used to this workflow and you wonder how you even got anything done before.
If you worry about missing something on Slack or email, consider that comms are off only for 25 mins at a time — you can always catch up during the pause, and decide not to start another session until you reply to people.
Estimating tasks in number of pomodoros becomes second nature.
Saying “this takes two pomodoros” is different from “this takes one hour”. You get to know yourself and your energy, because you know how many pomodoros you usually do in a day and in a week.
This velocity is surprisingly reliable and you can use it for your planning. For example, I know I can reliably plan for 10 pomodoros a day, and 45 in a week. This is net work — it is net of meetings, working out, and all other life stuff.
🔨 How to implement the pomodoro technique?
I use a small app on my Mac called Be Focused. It is basically a timer, with some analytics and tagging capabilities.
I tried a lot of tools but finally ended up with Toggl (not fully happy but better than all i've tried). I love its time-boxing or pomodoro mode - I usually am most productive in 30-45 min time-bursts throughout the day, (especially for tasks with high cognitive load where I also turn all notifications, external comms off if not working with a team).
The second main technique that I use for my productivity is timeboxing.
At the beginning of each day, I do a mini planning session where I take things I have to do and I place them on my calendar. I do this based on my pomodoro budget. I know that I can normally plan for 6 pomodoros in the morning and 4 in the afternoon. Anything more than that is a stretch.
Putting tasks on the calendar has two main benefits for me:
It blocks time — I know I can’t schedule other things (e.g. calls) in that time.
It creates momentum — I feel more committed to doing things when they are part of a schedule (don’t ask me why!).
I also take into account my peak performance times. I am more productive in the morning, so I use it for heavier tasks, like writing.
I get another small peak between 14:30 and 16:30. Later than that, I know I shouldn’t plan for any serious stuff.
I use Cron as a calendar app. I love that it shows the next / current event on the menu bar, so I always know what I should be doing.
👥 How to organize meetings
Meetings are so disruptive to everyone’s productivity that I feel they deserve a dedicated section in this article. Here are the best tactics I know to manage them in an unobtrusive way 👇
🧘 Set aside your own focus time
Having the calendar booked for a series of short and sparse meetings can really ruin the productivity of the whole day. This is the reason why I like to block some not-bookable moments directly on my calendar.
Carlo Caprini, Product Manager.
Many leaders I know block time on their calendars to do “maker’s work”. This is especially important in companies that have an open calendar policy, where people can see your calendar and book meetings with you directly.
In my experience, the policy in itself is good, as it makes it infinitely easier to chat with people, especially with many at the same time. However, it has the potential to make you lose control of your time, rapidly turning into a nightmare.
You can use Clockwise to manage this semi-automatically. It allows you to block focus time, and it also tries to arrange meetings to preserve it.
Other tactics to preserve focus time include:
Schedule meetings close to each other (but not back-to-back, which is evil).
Schedule meetings in a way that doesn’t break productive time in half. Good examples are: right before/after lunch, end of the day, beginning of the day.
Batch meetings together with heartbeat days and no-meeting days 👇
🚫 Create no-meeting days
No-meeting days are a common tactic to create space for focus work. Doing so in sync with everyone on your team creates an even better feeling.
Zach Wolfe, Senior Engineer, weighs in on this:
Having a no-meeting day (Friday) has been extremely beneficial to do creative / deep work. I schedule my work to load up Friday with ambiguous problem solving or design tasks instead of typical day-to-day coding/meetings.
🩺 Create heartbeat days
The dual strategy to no-meeting days is heartbeat days: days where you concentrate most of your recurring meetings.
Yurii Mykytyn, Director of Engineering, tells his experience:
Monday is heartbeat day: most of my org works in weekly cycles and we mostly do weekly 1:1s, so on Monday I check-up with each of peers and everyone has a great picture of how org looks and what the week is about.
🔄 Feedback loop
Any of these tactics may or may not work for you. The only way to find out is to try them and have a feedback loop in place that creates awareness about how you are doing.
Creating awareness is easily the most important piece of the puzzle, and the one where people struggle the most.
In 2020, Harvard Business Review ran a simulation with 1200 people designed to objectively assess their time management skills. People self-rated their own skills, and then went through a series of tasks which simulate regular office work: writing emails, managing cloud files, instant messages, and more.
Less than 1% of people’s self-ratings overlapped with their objective skill scores. Moreover, self-ratings only accounted for about 2% of differences in actual time management skills.
People lack awareness about how they perform.
The simplest way to improve on this is to spend some time every week (e.g. 30 mins — one pomodoro!) reviewing the previous one. It acts as a small retrospective: did you meet your goals? Why? How many pomodoros did you complete? How can you improve?
Here are some readings to learn more:
📑 How One CEO Spent His First Two Years of Company-Building — This article is an in-depth look at the life of Sam Corcos, CEO at Levels. Sam is obsessed with time management. In the article, he breaks down how he works and how he spends his time.
📑 Time Management is About More Than Life Hacks — HBR conducted research on how people can improve their time management skills. They gathered results in this article, together with tips and tactics to do better.
📑 Maker’s Schedule, Manager’s Schedule — This seminal essay by Paul Graham talks about how Makers and Managers think of their productivity, and how it reflects on their schedule.
Here are the tools that I recommended throughout the article:
🔨 Clockwise — Handy app to automatically improve meetings arrangement on your calendar
🔨 BeFocused — Simple pomodoro timer, with analytics and tagging abilities
🔨 Toggl — Advanced time tracking and reporting tool
🔨 Todoist — The todo app I use for my personal life. Reliable, cross-platform, and plenty of integrations.
🔨 Cron — The best calendar app I know of. Can’t imagine going back to anything else.
⭐ Weekly Featured Jobs
Here are the remote engineering jobs featured this week! They are all from great companies and I personally review them one by one.
Clipboard Health — Engineering Manager — marketplace where nurses and CNAs can search for jobs, and where healthcare facilities can fill open shifts.
Caliza — Full Stack Engineer (Remote US) — building stable finance for everyone.
MessageBird — Senior Front-End Engineer — cloud communications platform that connects enterprises to their global customers.
Musixmatch — Engineering Manager, Frontend — AI company developing algorithms and tools for music discovery, recommendation, and search through lyrics.
Commit.dev — Senior Full-stack Developer — the professional network for startup engineers.
Browse many more open roles (or add your own) on the full board 👇