Several times in the last couple of months I’ve been asked about my daily work routine, and so I thought I’ll write about it. It’s honestly nothing particularly different or innovative, in fact if there’s an analogy that comes to mind, it’s farming: plowing through every day in search of a good harvest.
3 ground rules to start
First off, some basic pre-requisites that I realised I must have in a workday:
- Goals & Cadence. Setting clear goals and striving to meet them is something I like to do. It’s also important to analyse and break down these bigger goals so that you have weekly goals and a daily sequence of small wins. I dedicate some time to do this planning work every day.
- Deep work. Prioritising for deep work is something that I’ve always wanted to do. Now that I’ve switched jobs, it’s become much more of a reality, and I like to clock close to the 4 hour limit whenever possible. Most of my time is now spent in deep work.
- Regular exercise. Some chronic back pain last year finally made me realise that incorporating some amount of exercise every day was important. It’s now an essential part of my workday, and I do some exercise during every break.
A note about Planning Tools
I think 2 kind of tools are necessary for my routine:
- A todo list/note taker that allows you to maintain a daily checklist of tasks to do. I currently use Todoist (duh), but I used to use Apple Notes (not Reminders, just Notes with its in-built todos) before.
- A time tracker to time my deep work sessions. I use Focus Keeper Pro now. I used to use the basic Apple clock timer before.
One thing that’s super important to understand is that you’ll never ever get the perfect tool for the job, so I lean towards more flexible ones that are not so opinionated in how they function. Frankly I use Todoist now because I use it at work already, so I get to dogfood it, and it’s one less tool to learn.
And now onto the phases:
Wakeup is when I do my morning routines, and it’s honestly pretty much the same every day regardless of whether it’s a workday or not. I’m not going to go into more detail here about this except to say: I wake up at 6.30, I do some yoga and morning pages, and then take a shower. Because I usually do a 16-8 fast, I don’t have breakfast in the morning on workdays. Just some green tea. I’m usually done with Wakeup by 8.45am.
While I feel Wakeup is a good part of why I’m able to remain sane, it’s not really essential to the rest of the routine.
Startup is where I plan my day. I’ve written about this before so I’m not going to go into a lot of detail as to the why here, but the how looks like this:
- Spend around 10-15 minutes catching up on email, Twist, and Github. This is just to understand if there are any emergencies or unplanned work that has popped up from my previous day’s Shutdown.
- Figure out some 2-3 goals for the day. Sometimes I mark one of these as “must do”, usually in Todoist with a higher priority, and add that to my daily checkin.
- There’s no Step 3. That’s pretty much it. Once startup is done, I start Focus.
Here’s how my Todoist project looks like for a typical day:
Note that I have a big Week Focus section on top which are my weekly goals, and then a Daily Checkin section where I write down what I want to achieve that day. If have certain things I do every day (like review a PR, or do focused work), I make sure to include them here too. Beyond adding to this list, I do no specific scheduling or capacity planning, except perhaps as a thumb rule to not add “too many” tasks to a day. The Week Focus for e.g. might include many things that I don’t plan to tackle on a specific day.
Focus is where I try to spend most of my time. This is where I look up the tasks to do in my Daily Checkin and knock them off one after the other. I usually use my judgement to decide what tasks to pick up, but I usually start with the compulsory ones I do every day (like review PRs), and then the big ticket items.
It’s always true that your plans sometimes fall off the cliff of reality: but that’s ok and to be expected. At the end of the day, you might have a few tasks incomplete that you can either: a) wrap up quickly during overflow & shutdown or b) move to the next day.
I try to get in 6 focused sessions of work. Each session is 50 minutes long, with a 10 minute break in between sessions. I adapted this from Pomodoro timings that felt too short to me. Every 3 sessions I take a longer 1 and half hour break. So it roughly goes like this:
|9:30-10:20||Focus Session 1|
|10:30-11:20||Focus Session 2|
|11:30-12:20||Focus Session 3|
|2:00-2:50||Focus Session 4|
|3:00-3:50||Focus Session 5|
|4:00-4:50||Focus Session 6|
|4:50-5:30||Overflow & Shutdown|
Two things to note:
- These timings are not absolute in any way. Sometimes I begin the day early, and end early. During some bad days overflow almost turns into a session. Some days I decide to end the long break early, and get to work quicker. I always stick to this schedule though, even if I skip a few sessions, and the focus session timings are always strictly 50 minutes.
- You might have noticed I take a rather large lunch break 🙂. I find that this helps me complete a few personal tasks too, and it gives me a much needed within-day break. Your routine might vary!
- Some days (usually 2/5 working days once I’ve started working during Corona hours), I don’t end up completing all of the 6 focused hours. This is usually a bad day for me, but well, shit happens.
Here’s how I use Focus Keeper Pro to keep time:
The first image shows the start of day, and the second the end of a good day. Focus Keeper Pro is a largely unobtrusive application. I tried to use more clever ones, but the artifice of it all quickly got to me. KISS, always.
During focus sessions:
- I put my head down and work on the task. There’s no email checking or any interruptions whatsoever. My phone is nowadays on perennial no-notification mode, but I try to refuse any non-urgent calls too. Focus is for deep work.
- Fitting tasks into focus sessions is more art than science. I don’t really plan this, and if for example, I only have 10 minutes left in a focus session, and I’m done with a task, and the next one looks like a biggie, I go through the list to see if a shorter task is available. If it’s not, I spend the time checking email or responding to the many interesting threads in Twist or Github.
- I try as much as possible not to multi-task. There is sometimes a veneer of inefficiency when you do this, especially for those unavoidable moments in the life of every programmer, but I’d rather wait and take things slow than context-switch. There are of course moments where you have to multi-task, especially if you are waiting on a team-mate in a different timezone, or a review to come in for a PR. At that point, I abandon this “hung task” for this focus session, and switch to a different task, complete that (even if it takes more than this focus session and the next), and only then come back see if I can resume this hung task.
It’s also interesting probably what I do in these short & long breaks. During short breaks:
- I go to a different room. If I’m shut in a hotel room like I am now during quarantine, I at least go to the toilet and spend some time there. This helps me mentally switch off from “work mode”. In Delhi, I used to play a record.
- I do 10-20 push-ups. I’ve been trying to do 100 pushups a day (cumulative) recently.
- Then I do whatever I want that is not work. Usually this means checking NetNewsWire for some news, or if I have some Personal tasks scheduled like a few errands, I try to do that too.
During long breaks:
- I have lunch.
- I try to read a nice fiction book. Lately it’s been the Frontlines series.
- I do things that more time, like longer errands.
Shutdown (& sometimes Overflow where I finish up some task) is where I switch my brain over to “done for the day” mode, and is an important part of the ritual as well. One of the important things I do during Shutdown is a daily checkout. Public checkouts are a very useful way I’ve found to maintain personal accountability. It’s easy for me to be a slacker when I am working remote, and maintaining a fiction that somebody cares helps quite a bit 🙂
Currently I do Checkouts by taking a snapshot of my Week Focus board to send to my manager. Part of the ritual when I used to work at Lucideus was reading other people’s Checkouts too, but that doesn’t happen (yet 😉) at Doist.
This is how my most recent Checkout snapshot looks like. As you can see, some tasks as incomplete, and I only got 5 sessions done.
- I don’t do any planning for the next day during Shutdown. The remnants of the Daily Checkin section are a plan in themselves, and it provides a foundation & continuity for the next day.
- One other thing I do in my Shutdown is to go through Twist, email, and Github, and see if there are no loose-ends.
- I reflect about what I am feeling about the workday that just ended. Sometimes I feel that the day has been good even if I didn’t achieve all 6 sessions, sometimes I feel it’s been terrible even if the overflow goes on for ever. There are good days and bad days always. One thing you should always remember: regardless of whatever shit that hits the fan, there are always bright and beautiful days ahead.
Wind Down: ~5:30-10:30
Wind Down is everything not work. Usually for me that means a few things:
- If you can afford it, switch to a different computer. I did this during my days at Lucideus and it made a huge difference, mostly because as a programmer a lot of what you do for fun is also programming. If you do it on the same machine, it’s easy to get started thinking about work again. Currently I only have one laptop, but I have a few interesting ways in which I’m exploring having a different machine. That’s a topic for a different blog post.
- Do things that seem fun for you. One of the most important takeaways for me from Artist’s Way is that for creativity to flourish, you need to nurture your inner child. Have fun, even if—in these cold Corona times—it’s watching Netflix or catching up with friends on Zoom or a call, or gasp, going out for a walk in the guise of getting medicine or groceries.
- Sleeping early. I try to sleep by 10:30. I have a Bedtime alarm that reminds me of this, and an Apple Watch that tracks sleep quality. Sleep for me is very, very important, and unless I get a solid 8-8:30 hours, I’m dead on my feet by the weekend.
- And every once in a while, break all these rules & strictures and just let go.
Well that’s how I work! If you found this useful, you should follow me on Twitter.