The Jedi Developer

Shay Cohen
Wix Engineering
Published in
5 min readDec 31, 2018
Become a Jedi Developer

Does this look familiar?!

Arriving at the office

Chit Chat with your teammates

Going over emails

Checking slack

Drinking a cup of coffee

Opening your IDE

Answering WhatsApp

Going back to your code

“What did I want to write?”

A colleague shows up at your desk with a question

“Going back to my code!”

Your boss/colleague reminds you that meeting you have

Etc. etc. etc.

As developers, our job is to solve problems, come up with solutions, and do so by writing code (preferably good and clean). This is the most important task we need to do and excel at it.

For most of us, it becomes very difficult to have a good old session of writing code in deep-work mode. What is deep-work mode? That feeling of absolute focus and joy you get while you have been coding for a couple of hours and lost track of time. The kind of work where you feel like you are “in the zone”. Some call it Flow — time flies and you actually complete and deliver a working piece of code that you are proud of.

With constant interruptions around us, it’s almost impossible to get into deep-work mode. We are constantly context-switching. Every time we switch context in our job, it can take us up to 20 minutes to get back into the mental state that we were in just before the interruption. Multiply this by dozens of notifications and interruptions and you end up with a very unproductive and shallow work process over very short intervals.

To become more efficient in our job, to become a Jedi developer, we need more deep work.

Part I — How can we create more Deep Work?!

  • Block time for deep work in your calendar. Every day, for a couple of hours, a few times a day. Personally — I book myself 2 hours in the morning and 2 hours in the evening. During those hours, I religiously refuse to do anything else — no meetings, no emails, no calls.
  • During those blocked hours, work for 25 minutes and then take a break for 5 minutes — take a walk, drink, take some deep breaths outside and return for another 25 minutes. For more information, you can check the Pomodoro Technique.
  • During the deep-work sessions, turn off ALL digital interruptions — Phone, email, Slack, WhatsApp, Hangout, etc. — by disabling the notifications, switching on do-not-disturb mode or flight mode. You can even close the applications (if applicable) or move your phone out of sight.
  • Communicate and set up the expectations so that your manager/peers know when you are not to be disturbed. This part is very crucial. All parties should understand what you are trying to achieve while maintaining a decent SLA and responsiveness in between deep-work sessions.
  • Use headphones. They help disconnect you from the environment and make people think twice before approaching you.
  • Move to a meeting room or any other isolated desk if possible.
  • Use a tool to track your time. I love ​using Rescuetime​ to understand where my time is going to, and how I can improve.
  • Between deep-work sessions, check your emails, social media, get back to your peers, and progress with all other none deep-work-related tasks. My advice is to Async it as much as you can. For example batch all emails responses and related work together, or read blogs updates together. This kind of work can be done whenever you want and you don’t need to be blocked on responses from others.

Part II — How can we get more focused during the Deep Work sessions?

OK, we have the blocked time in our calendar, we are alone with our code, no external disruptions — great! But now my mind keeps thinking of sorts of different things -

“Did I remember to send that email?”
“This is a very interesting piece of code, who wrote it?

“What do I need to do?”
“Who won the match last night?”
Etc. etc. etc.

During a deep work session you would like to stay focused on your task (your code), and every time your mind is wandering into a different task or thought, get back to what really matters.

This is exactly where mindfulness meditation comes to help us.

What is mindfulness meditation?

It is an exercise in identifying when your mind is wandering away from your subject of focus.

Exercising in identifying that you are thinking, feeling, and when are you telling yourself a story (constructing a story in your head from your biased interpretation of the reality).

Exercising in identifying when you are on auto-pilot and not really in control. Reacting automatically instead of really making an aware decision.

We can think of it as a workout for the brain. Similar to doing pushups in the gym, but for your mind. Like with a gym exercise, every minute counts. You can do it for 10 minutes and for 60 minutes. Every minute counts — as a compound effect.

meditation — an exercise for the brain

A classical meditation training session will look like this:

  1. “Close your eyes, relax, take a deep breath.”
  2. “Focus on your breath”
  3. “Once you realize your thoughts have wandered — go back to your breath”
  4. “Continue for X minutes”

Sample code of Meditation

WIIFM — the advantages of mindfulness for Developers

  • Less multitasking in your life and in your thoughts (helpful for Deep work )
  • Reduced stress
  • More focus on your code. “Closing the loop”, collapsing the “stack trace” of your thoughts.
  • Fewer distractions from people, technology and yourself.

Summary

To become a Jedi developer that delivers more and better work:

  • Block time for deep-work
  • Turn off all distractions and notifications during your deep work slots
  • Meditate on a daily basis. 10 minutes a day can go a long way in improving your focus skills.

Suggested reading

Other links

For more on my personal “operating-system” and how do I manage my life, visit my post — The personal OS (Operation System) — booting

--

--