If you are a longtime enthusiast of productivity strategies and life hacks, you might have heard of the Pomodoro Technique.

Francesco Cirillo developed the beloved time-management technique while he was in college in the 1990s. He named it after the kitchen timer he had, which was in the shape of a tomato — or “pomodoro” in Italian.

The technique works by splitting time into intervals, with 25 minutes spent working followed by a five-minute break. A typical practice is to string together four 25-minute work sessions — four Pomodoros — separated by three breaks, and concluded with a longer 15- or 20-minute break after the last work session. The cycle then repeats.

Find out who's hiring.
See all Developer + Engineer jobs at top tech companies & startups
View 9642 Jobs

People who practice the Pomodoro Technique say it improves their concentration and that they feel less drained when the workday is over. But software development is a unique activity that’s often associated with being “in the zone.” When developers write code, they have to keep track of many things — what the user expects the software to do, how the code they’re writing behaves within the larger structure of the codebase, and what needs to be done to implement the technical details of the code they’re writing.

It can be a lot to keep all the plates spinning, which makes some developers think that software development requires a kind of deep concentration that makes it a bad fit for the Pomodoro Technique. If developers break their concentration regularly, wouldn’t it be hard to refocus and remember where they left off?

Dmytro Rohov is a developer who has been using the Pomodoro Technique for the past five years. He’s written about his experience applying the technique to programming and to other aspects of his life, and about the challenges of adopting the technique for the first time as a software developer. So we decided to ask him about his experiences.

More on EngineeringHow to Take a ‘Marie Kondo’ Approach to Software Testing


Image: Shutterstock

What are the main benefits you get from programming using the Pomodoro Technique?

After 10 years of programming, using the Pomodoro Technique went from being a good thing to being necessary to perform at my best — or even just to perform.

If I’m sitting too many hours every day for a couple of years, it’s just not very sustainable. It really has an impact on performance, because of back pain and discomfort from sitting. So what I like the most is that it helps me have a sustainable workflow of standing up every once in a while and having a very solid structure.


What are the best things to do during those breaks?

The most important thing is to move. Last year, I tried this flow where I stand up from my desktop computer, but I was using my phone. I felt like that way of spending my break is much worse.

My best period of performing was when I was living in another house and I had a pull-up machine. When I was doing pull ups in between Pomodoro sessions, I went from having four hours of high-performance work to six or seven hours. Before that, I was not able to work for more than four hours in a really focused way.


You’ve mentioned that you also use Google Home Assistant routines to manage your Pomodoros. Why is that?

The main thing is that it’s fully automated. The friction of getting started is close to zero, because it can create tons of timers without me doing much work. Also, it’s a visual thing — I can, at a glance, see how much time I have left.

Also, I have the ability to start my timers from any device. So I tell my phone, “Time to work,” and it creates 10 timers. I have a Google Home with a screen at home right now, so when I create timers using that, they display on the screen. It’s quite convenient.


You’ve mentioned that your initial experience with Pomodoro was frustrating because you were doing too much task switching. Why was that?

The experience of using Pomodoro helped me to observe myself and to observe how my focus behaves. When I’m really focused, and I know what I’m doing, that means I can put my task on pause at any moment and continue doing the task after a break. If you have a very solid plan, and you really understand what the steps are, this means you can introduce breaks — pause for a couple of minutes and then continue.

When things were chaotic, it was very hard to continue after a break.

Find out who's hiring.
See all Developer + Engineer jobs at top tech companies & startups
View 9642 Jobs


Because you didn’t even remember what you were doing?

Yes. It was all over the place.


Do software developers need to worry about losing work quality if they’re being interrupted regularly from their flow?

My experience is that if I have real clarity, and I really understand what I’m doing, I can add breaks at any point in time without losing quality. Over the years, this skill strengthens a little bit.

There are two ways to strengthen this skill: internal and external. When I was working, I started to catch myself switching to another task. And I’ve introduced a habit of asking myself a question: “What am I doing?”

This question brings me back to what I should be doing and stops my task switching. It’s an internal thing, and asking myself this over a long period of time has taught me to notice my task switching. Of course, occasionally I’ll fall back into losing my focus, but that habit can sometimes automatically bring me back, which is kind of cool.

The external tool that I have used to keep my focus is a to-do list — but my attitude about to-do lists is not writing bigger tasks, but rather documenting very, very simple steps. As small as, for example, “Change the color of the button.” So that’s a micro task. When I’m performing complex tasks, I’m always splitting it into micro tasks and writing them down. I have created a very simple app to help with that.

More on Software DevelopmentHow Can Agile Coaches Transform Your Team? Here’s What They Do.

Great Companies Need Great People. That's Where We Come In.

Recruit With Us