Do you ever feel like a million tasks are looming over you at any given moment? How about that you can’t concentrate because it feels like you should be doing something more important? I used to have these feelings all the time. I call this “brain clutter”, though I’m sure there are many other names for it. That’s a problem that hurts work productivity more than you might realize. Not to mention your peace of mind. But luckily, there are many ways to deal with this. In this article, we’ll go over some powerful techniques to declutter your brain, work more productively, and most importantly- with peace of mind.

There are many articles, books, and courses on the subject of organizing your tasks and your work day. I should know, I read most of them. For over a decade, I’ve worked with different apps, lists, reminders, and prioritization techniques to be able to get it right. Every couple of years or so I’ve changed and refined my habits, until recently I got to the point where I feel I “got it”. I found a methodology that allows me to work peacefully and productively, advancing my goals and enjoying my work, and I’m about to share it with you. None of what I’m going to say is revolutionary though. I didn’t invent any of the following techniques, but I feel I gathered the most powerful ones and combined them into a wholesome methodology. Let’s go over them.

1. Manage a daily to-do list and a long-term to-do list

Working with a to-do list is one of the first tips in any book, article, or talk about productivity. That’s because it’s good advice. It helps organize your tasks and gives you that great feeling when you scratch something off the list. But beyond the idea of keeping a to-do list, the advice splits a thousand different ways; do it on pen and paper, use Trello, assign priorities, keep a status, and so on. I’ve tried a lot of different things and I found that the following method works really well.

I have 3 separate lists. The most used one is the daily to-do list. Starting every day, I’ll write stuff that I want to get done that day. Things that I didn’t finish the day before will stay on that list, so I have days when I don’t even need to change anything. When I get a new task during the day, I’ll write it down on that list. I don’t trust my brain to remember anything, so whatever I need to do, even if it’s something that takes 30 seconds, goes on that list.

The daily to-do list is just a bunch of bullet points. The first bullet point is the most important or urgent task. The second is the 2nd most important task, and so on. This way, I always know what I should be working on first. When a task is finished, I’ll mark it as complete. Coming the next day, the first thing I do is delete the completed tasks from the previous day. I don’t archive the completed tasks, I just delete them. Keeping tasks in an archive is a waste of time and adds organizational overhead.

I use Microsoft OneNote for my daily to-do list, but anything will do. That might be Notepad or a pen and paper.

My other 2 lists are backlog lists. One for my day job, and the other for everything else, including side projects and personal tasks. Unlike the daily list, the backlog lists are structured. Each has a priority, a title, and a description (and that’s it). These lists tend to get long, so I need the priority for organization’s sake. The title is just short enough to be able to remember what this task is about, but also to be easily found when searching. I always add relevant keywords to the title. Any extra context, links, whatever, goes into “Description”. I found that keeping any other fields, like “status” or “area”, is a waste of time. Status is unnecessary because whenever I’m done with a task, I delete it (YAGNI ). An “in progress” state is redundant because if I’m working on something, I’ll copy it to my daily list.

For my personal backlog list, I use the Database feature in Notion . Notion is amazing by the way and I highly recommend it. But for the sake of a backlog list, anything will work. A Trello board or an Excel table will do just as well.

My work backlog is in Azure DevOps Boards , which is what we use in my organization to track work items. I have mixed feelings about it, but it gets the job done.

So here’s my routine: every day I’ll look at my backlog lists and my daily list. If my daily list is empty or if there’s something more important to do in one of my backlog lists, I’ll copy a backlog item to my daily list. If I feel like my daily list is too long, I’ll move a low-priority item back to one of my backlogs. That’s pretty much it.

2. The best way to deal with emails and chats

Any tech company I ever worked for had a steady stream of dozens of emails a day. In my leadership roles, this number grew into the hundreds. Most of those emails are irrelevant or don’t require thorough reading. Some do, and some require a response or create an action item for you. I rarely reply immediately or do the task right away, even if it’s short. Those are added as another task in my daily to-do list because it’s probably not the most important task right now. Moreover, replying to emails requires low energy on my part, which means I can delay it to the hours of the day when my brain turns to mush. I keep the “prime” hours to the hard stuff, like coding.

Another trick I learned is using the “To Do” feature of Outlook. With “To Do”, you can add emails to a separate list. It’s done from the right-click context menu, or by dragging it to the right pane. Once all the emails that require action are in “To Do”, I’ll add a single task to my daily to-do list: Go over Outlook items.

Outlook ToDo

Create Task in Outlook

The same feature exists in Microsoft Teams. Right-click any message, and you’ll be able to create a Task. However, you might need to install an app for that if it doesn’t work in your organization.

I tried going over emails and chats at a time of the day when I could deal with them immediately. But there are 2 reasons why it can’t work for me. The first is that these messages might contain something important or urgent, so I want to go over them first thing in the morning. The second reason is that I can’t bring myself to deal with an action item that takes more than a minute when I still have unread emails. I’m too curious to see what else is in my box; it might contain something interesting or more important.

3. Book calendar time for individual tasks

Once I’ve read my morning emails, moved items from the long-term lists to my daily task list, and prioritized my daily task list, I should be able to start working. The naive approach would be to make my way through the to-do list from top to bottom; from the most important item to the least important one. I worked this way for a long time, but this method has problems. When my current task was taking too long, I could get stressed that I might miss something urgent, so I would often stop and go over my to-do list, re-check emails, etc. Such uneasiness is not without cause. As programming goes, you can get stuck on some technical issue for a whole day, not getting to smaller tasks like code reviews or answering emails. These smaller tasks were later on my daily to-do list, but I still wanted to get them done that same day.

Here’s a tip I learned from the book The Staff Engineer’s Path : book calendar time for specific tasks, not just “focus time” or “development time”. This sounds basic, but it has a powerful psychological effect. When you have a calendar slot booked for an individual task, you don’t have to think about whether you’re wasting more time than you should on some issue, delaying urgent matters. During the slot time, you’re not doubting if you could be doing something more important at that time, you can just focus on the issue at hand. If there’s something more important, it will have a slot in the calendar.

So the next step of my day, after sorting the daily to-do tasks and going over emails, is to set calendar time for individual tasks. My work day might look something like this:

9:30-10:00 Go over Joe’s pull request

10:00-12:30 Continue with work item XXX

12:30-13:30 lunch

13:30-15:00 Investigate a spike in telemetry

15:00-16:00 Team Meeting

16:00-16:30 Go over Outlook ToDo list

16:30-17:00 Ping Jane about YY, Add comments in doc ZZZ

17:00-17:30 Call plumber

As you can see, I’m fully booked, though I have just one actual meeting. That doesn’t mean I work all the time. I still take breaks, go to the bathroom, and drink coffee. But I know exactly what I should work on at any given moment and I’m calm about not missing out on deadlines or important tasks.

4. Choose your tasks according to the principles of Essentialism

We talked a lot about choosing the most important tasks as if prioritizing them is a trivial matter. But it isn’t. I think it’s one of the most important parts of the process of a productive and stress-free workday. You can write a whole book about this matter, and indeed someone has. One of the books that made a big impact on me is Essentialism: The Disciplined Pursuit of Less . It describes how to deliberately choose your focus areas, and I try to adhere to the lessons from that book when prioritizing tasks. Even daily tasks.

I suggest reading the book, but as the next best thing, here are some of the points that the author Greg McKeown makes:

  • Decide what are your goals and what are the most essential things you want to achieve in this stage of your life. Your activities and work should align with these goals.
  • Don’t try to do it all. Make deliberate choices on what you focus on. That means saying “no” to non-essential activities, and “yes” to those that align with your goals and values.
  • Be willing to make trade-offs. To allocate resources for your essential activities, you’ll have to give up some less-important ones. This includes learning to gracefully decline invitations or requests that do not align with your essential goals.

In our work, it might seem like we don’t have the freedom to choose our tasks, but I found it’s far from the truth. Especially as you get more senior. You can invest more time in some tasks and less in others. You can choose to focus more on technical work or more on social. You might want to advance some of your ideas and initiatives and choose to allocate time for those. Some engineers in my group spend a big chunk of their time in chats and emails, helping other engineers. Some are very invested in code reviewing. Others join lots of forums and v-teams. Others still are very hands-on and skip non-essential meetings to get as much coding done as possible. And there are always those who seem to spend most of their time dealing with personal affairs. See? There are always choices to make.

5. Move easy tasks to the end of the day

I don’t know about you, but at the end of most days, my brain is much less effective. Actions that require a lot of mental effort are a no-go. For me, that usually means coding tasks, debugging, and long code reviews. I might be able to code through the afternoon on a task I’m already immersed in, but I won’t be able to handle a context switch to a new coding task. Other types of tasks are easier. Making PowerPoint decks is usually lightweight and fun for me. So is responding to most emails and attending meetings.

Since I know what I can or can’t do during the day, I can plan accordingly. I usually plan to work on the difficult tasks in the morning when I’m sharpest. I can context-switch between hard tasks up to about 13:00 or 14:00. After that, coding in a new area is going to cost me a lot of energy. That’s why I try setting easy tasks, like meetings and answering emails, to the second half of the day.

The takeaway here is that while it’s tempting to do the easy tasks first, it’s going to be more productive to leave them when you’re least focused.

6. Keep regular breaks

One habit I’ve been keeping for 10 years now is using the Pomedoro technique . The idea is to work in 25-minute intervals with 5-minute breaks in between. There’s a little more to it, with a longer break every few intervals, but that’s about it. I don’t recommend everyone to use this exact technique, but keeping regular breaks is a good thing. There are many benefits to breaks, including physical and mental health. The occasional walk or some stretching won’t kill you, you know. But even if we scope just to work benefits, I consider these breaks to add to my productivity, not subtract from it, even though I’m “wasting” time I could be writing code or answering emails.

When programming, I’m usually so immersed in the task at hand, that I often miss something big at a higher level. There were dozens or hundreds of times when a short walk got me to some realization and breakthrough. Might be that my approach to the problem is wrong or maybe I’m missing a simpler implementation. Other times, when I don’t understand some behavior, I can think of a new way to check something, which leads to a solution more often than not. Getting into the habit of lifting your hands from the keyboard and taking a short walk can be very helpful.

7. Don’t rely on your memory

I don’t know if it’s a matter of my advanced age or an effect of modern tools, but my memory stopped functioning at some point. I don’t remember any phone numbers, birthdays, IDs, meetings, or things I need to do. I often forget what it is I’m in the middle of, just because my mind wanders for a second. Instead of trying to fix my brain, I accept the situation as is, and replace these simple functions with technology. Here are some of the tricks I use:

  • Once I think of something, whether it’s an idea or something I forgot to do, I write it down right away on my phone. By that, I mean immediately. Waiting even a minute might distract me and I’ll spend the next 10 minutes confused, trying to remember what brilliant thought I had earlier.
  • I’m a huge calendar app addict. I don’t remember or want to remember, anything I have to do during the day. Buy a present for my daughter - calendar. Call my mother - calendar. etc.

That’s about it. A few simple tricks, but they’re powerful because they help declutter your mind. I never have to be in a state when I need to “remember to do something”. Everything is automated and that translates to a stress-free mind. Instead of being in a mental loop of “what I have to do next”, my mind is free to think of new ideas and solve problems.

8. Disable notifications during difficult tasks

I mentioned before that some tasks require more energy and concentration than others. For me, those are coding tasks. For you, it might be writing certain emails or solving merge conflicts. I took the habit of turning off notifications when I’m doing something difficult. That means turning off email and chat notifications. Yes, even WhatsApp and SMS. Unless you’re on-call, there’s nothing so important that can wait for an hour. The only exception is calls from the wife, which I don’t have to explain to married people.

This is yet another step to declutter your mind from all the noise around you. Context switches are the productivity killer, so I do everything I can to minimize them.

Since my whole day is booked with stuff from my daily to-do list, I’m marking them as a “Busy” state only for the hard tasks. Otherwise, I’ll be unavailable all day, which is not great for teamwork. When I’m doing easier tasks, like going over emails or commenting on docs, I’ll be available, so if anyone messages or calls me, I’ll go ahead and answer because context-switching back to an easy task doesn’t take away from my energy.

9. Mind your energy

When I was younger, I could work all day and through the night. I wasn’t very productive, but I certainly wrote a whole lot of code. In hindsight, this was the analogy of smoking pot and writing genius poetry, only to wake up the next day and realize you wrote complete crap.

Now that I’m older and have been coding for 20 years, I don’t have as much energy as before, but I’m probably a lot more productive. A lot of it is experience; I solve problems quicker, I design better, and I find easier solutions. But that’s just part of it. The other part is self-awareness. I know better how to manage my energy. I approach difficult tasks only when I’m focused and energized. I also know to take frequent breaks that allow me to disengage from whatever mental loop I’m in and see things in a different light. These can be the difference between getting stuck debugging something for an entire day or finding the root cause in half an hour.

Beyond productivity, high energy levels and work satisfaction are important for your mental health. If your day job is tiring and you come home without the will to do anything else, you’re going to burn out quickly.

The key to maximizing your energy is realizing which tasks lift your energy and which drain it. I found that answering emails and small forum meetings increases my energy. However interviewing, pair programming, and large-forum meetings drain my energy. Coding tasks can go either way, but getting stuff done is always rewarding and energizing. I also need a minimum amount of social interaction to keep me going. But not too much, mind, I’m an introvert after all. Those are all very individual to me, and I’m sure everyone has different things energizing them. You might like doing code reviews, interviews, or mentoring sessions. Others might need lots of social interaction, so they can increase pair programming sessions and meetings.

The point is that you need to maximize tasks that increase your energy and minimize tasks that decrease it. But it might not be as simple as it sounds. If you’re a software developer, and you find that coding tasks drain you, you probably can’t stop coding altogether. There will always be tasks that lower your energy, but you still have to do them, or want to do them because they have another benefit, like learning a new technology or working with people you want to get to know better. The trick is to balance those tasks. If you have too many draining activities on a certain day, deliberately add other activities that lift your energy. That might be more coffee breaks or a longer lunch, whatever works for you.


There are two main parts to decluttering your mind and reaching a stress-free work day. The first part is dealing with internal distractions— that’s your mind stressing about not working fast enough, not working on the most important things, or missing out on something. Or maybe you’re so immersed in some task that you’ve stopped thinking straight for the last few hours and you’re just repeating mechanically the same steps.

For the first part, dealing with internal distractions, we talked about:

  1. Keeping a daily to-do list and a long-term to-do list to organize your tasks. It will help to be confident you didn’t forget anything and that you’re working on the most important thing.
  2. Sift through emails and chats in the morning, but handle action items from those messages when it’s most productive and convenient for you.
  3. Instead of going through your daily tasks one by one, book time slots in your calendar with a predefined time for each task. This will relieve you from thinking you might be wasting too much time on your current task and missing something more important to do.
  4. Use the principles of Essentialism when choosing and prioritizing tasks.
  5. Don’t rely on your memory for anything. Instead, when you remember something you need to do or get an idea, write it down immediately.

The second part is external distractions like emails and chats that you feel compelled to read right away, or your manager repeatedly asking when something’s going to get done.

For external distractions, my advice is to disable notifications during difficult tasks. That won’t prevent colleagues from asking you a bunch of questions, or your manager reminding you about a deadline, but it will certainly prevent you from having to context-switch to those distractions during an activity that requires complete focus.

I also shared a couple of tips to use your mind more effectively:

  1. Keep regular breaks to be able to get out of a mental loop and see problems from a different light.
  2. Move difficult tasks, those that require you at your sharpest state of mind, to the time of day when you’re most focused. For me, those are mornings. Easy and “quick” tasks can go to the second part of the day when you don’t have or need your full mental capacity.

Finally, we talked about being mindful of your energy and preventing burnout. That means deliberately choosing tasks that lift your energy and minimizing tasks that drain it.

That’s it for this one. Got more Zen advice? Share in the comments what works for you. And if you liked this article, you can subscribe to my blog posts here . Cheers.