Mastering the Flow State and Choosing the Right Tools

Flow app - maximizing productivity as a software engineer
Flow app - maximizing productivity as a software engineer

You interact with numerous applications daily. Some of the most common applications include note-taking, messaging, calendar, and mailing apps. Choosing the right tools and knowing how to use them effectively can make your life much easier. In order words, it is key to maximizing productivity as a software engineer.

Maximizing productivity as a software engineer

There is a simple practice to be productive is being in flow. Generally, a flow is a period of time where you focus on a single task. It is similar to taking a forty-five-minute exam in high school.

However, it is not easy to tackle the habit of fully focusing on a single task due to the daily disruptions. For example, you may find yourself frequently checking new messages on messaging apps like Slack. Additionally, notifications from various applications can be distracting throughout the day. Meetings and ad-hoc support requests from colleagues are also significant sources of disruption.

You can search for various apps that work for you. Here is a concrete example of how to apply the flow practice.

Prioritizing tasks

Using a calendar app like Outlook is convenient for prioritizing tasks on daily, weekly, or other time intervals. By doing this, you can block the time frame for committing doing a specific task. Normally, it includes the meetings, your main tasks, and some unplanned ones. It is important that you leave some space for breaks between flows and unplanned work. For instance:

Outlook: prioritizing tasks - maximizing productivity as a software engineer
Outlook app

Being mindful

To be in a flow, such as for twenty-five minutes, you need to remove all the disruption. One way is to turn off all notifications. With macOS, it can be done by setting focus mode to “Do not disturb” or “Mindfulness”.

Focus mode - maximizing productivity as a software engineer
Focus modes on macOS

You also need to get rid of the habit of checking the notifications showing by the badge of desktop apps such as Slack, Outlook, and Messenger by using their web versions on your browser. Only check these notifications during breaks, once the flow of work is finished.

Last but not least, use a Pomodoro timer to assist you in being aware of whether you are in a flow or in a break.

Flow is a minimalistic pomodoro based focus timer. Increase your productivity and reduce stress at the same time.

Flow – Pomodoro timer for Mac, iPhone, and iPad (
Flow app - maximizing productivity as a software engineer
Flow app

Normally, the preferred duration for a flow is 25 minutes when people can patiently wait for you.


While working in flow, you may want to use a note-taking app for brainstorming or keeping track of the progress so that you can easily be back due to context-switching. All you need may be just one page for journaling. You can clean it up weekly. For example:

Notion app

What do you think about this method for maximizing productivity as a software engineer? Does it serve as an excellent method for fostering professional growth?

By Huong Nguyen

I am a full-stack software engineer. I have working experience with Java, Node.js, Angular, PostgreSQL, Jenkins, and OpenShift. I enjoy spending time with my son and wife on weekends. I am also a book lover. All posts and content I share solely represent my own views and do not represent the views of my employer.


Leave a comment

Your email address will not be published. Required fields are marked *