My Experiences as an Engineer: Context Switching

A clock and wooden pegs on a table with a yellow background.

Your digital product needs to stand out from the competition and attract users at the same time. We help our partners do just that. Book a free consult to learn how we can do it for you.

As an engineer, sometimes you’ll be working on multiple projects, juggling multiple tasks within a project, or picking up where you left off after a weekend break. Everyone’s working style is different, and I’m envious of people who can easily transition back and forth between tasks. I personally work best with less context switching when possible, but sometimes priorities are out of your control. Here are some things that have helped me manage these types of transitions.

Stay Organized

Set intentions for the day

At the start of your day, set goals of what you’d like to accomplish so they are top of mind. If you have a couple of tasks to get through, you can make a rough estimate of how to spend your time on each task. If you have too many goals for the day, perhaps that’s a good reflection point to see what might be able to wait for another day.

Group browser tabs or windows

If you’re anything like me, you keep tabs of resources to easily reference or get back to. Sometimes, over the course of a day, that can manifest as many tiny tabs of varying context that are hard to find. You can organize tabs by using your browser’s tab groups or separate windows.

Screenshot of grouped browser tabs

Prioritize time-sensitive tasks

Prioritize tasks based on importance to reduce urgency or the likelihood of getting distracted or pulled away. This can help minimize needing to quickly switch gears when important things come up.

Time Management

Turn off or limit notifications

One of the best ways to stay connected with teammates in a remote work setting is to have an abundance of fun communication channels at work to connect with colleagues. Being readily available when someone has a question or request is also, often a sign of strong team collaboration. At the same time, these interactions can have trade-offs and come at a time when there’s already limited brain power being spread across multiple tasks. By turning off or limiting notifications (Slack, email, messages, etc.), you can opt into checking those messages and channels when they are a bit less disruptive to your flow.

Block off calendar time

Along the lines of setting your intent for the day, you can set up blocks of time on your calendar to focus on specific tasks. This is one way I’ve found to hold myself accountable to getting things done, rather than reacting to requests that come up and getting distracted.

Screenshot of blocked off calendar time

Use a Pomodoro timer

An addition or alternative to blocking off your calendar is using a Pomodoro timer app (or physical timer) to work in short bursts, followed by a break. This encourages you to stay focused for some amount of time (usually 25 minutes), as well as to take a short break to check messages or finally get that glass of water you had forgotten to get many Pomodoro cycles ago.

Set aside time for miscellaneous tasks

Choose the bookends of your day to set aside for smaller tasks that need to get done but might otherwise interrupt flow time, such as checking email, PR review, etc.

Document Everything

Take good notes

As you’re working on a task, it’s a great idea to write down your train of thought as if you were explaining it to a friend. Here’s an example of how my notes often look like. Often, most of my workday involves non-coding research, investigation, and collaboration, and it’s easy to lose track of those when jumping between tasks.

## Task #42

- Need to figure out where data will be sourced
    - TBD
- Make sure to enable MY_FEATURE feature flag and use Nightly environment
- 6/28 I reached out to data eng team, waiting to hear back
    - <Slack thread link>

Use draft PRs

Similar to how you write a good PR description for other engineers to review, you can use a PR draft as a way to leave detailed notes for yourself about what still needs to get done and how to test the PR. This helps to easily pick back up where you left off.

Leave broken tests as TODOs

Sometimes writing a test and leaving it as a to-do item for yourself is a nice way to have a good portion of the work done, as well as a clear description of what you intend to work on.

Anti-patterns

Multi-tasking

Humans can have a hard time trying to accomplish multiple tasks at once. I once watched a TV show where someone who claimed to excel at multitasking was faced with the challenge of driving through an obstacle course while simultaneously being asked complex mathematical questions. Unsurprisingly, they were unsuccessful at both tasks, and their attempts were much slower than if they had performed them separately. As admirable as it is to want to do more in less time, often it’s best to focus and work on a single task more efficiently.

Foregoing breaks

Similarly, it’s easy to work through a lunch break or skip the 5-minute break during a Pomodoro session, especially when your productivity is really flowing. Remember, we are human, and we need nourishment, hydration, and to give our minds and bodies periodic breaks.

Forgetting to enjoy the day

While it feels great to have completed everything on your agenda, it’s also important to take time to experience joy throughout the day. Whether it’s getting to enjoy the sunshine in the morning, making your favorite afternoon snack, or squeezing in some belly rubs for your fluffy pet, these moments are crucial to fuel your soul.

Newsletter

Stay in the Know

Get the latest news and insights on Elixir, Phoenix, machine learning, product strategy, and more—delivered straight to your inbox.

Narwin holding a press release sheet while opening the DockYard brand kit box