Hi! I’m Matteo, and I’m a code pirate at nearForm. I’ve just been nominated to the Node.js Core Technical Committee, and I do a lot of Open Source, both in my daily job and for fun. I do not classify myself as a very productive person, and in fact I can get easily distracted. Whenever I’m “in the zone”, I can barely speak as I try to keep hold of all the context I am working on. The net result is that I am not very productive in an office environment, and I work from home when I am not travelling, more on that later.
In order to produce any meaningful code, I must have a good two-hour block of time where I could dedicate my uninterrupted attention to the problem at hand. This is not just about coding, but to mostly everything that requires a high attention span. I had the same problem during high school, I could not really concentrate for the interruptions at home. Most of us do 8-hours work day, but we need to take into account breaks and possibly synchronous interrupts. Because I do not want to feel frustrated and set myself impossible expectations, I tend to consider a working day composed only of 3 highly productive slots.
Emails and Github notifications plague my day, as a lot of my work is reactive to outside stimuli: I use my Inbox as my to-do list. I tend to clear it as the first thing in the morning, either handling them straight away, postponing them to a future day, or planning to handle them during the rest of my day with a pin. I do this work mostly from my phone, as a general rule that handling an email should be quick. If a more throughout response is needed, I will schedule a time slot later in the day. This step usually takes less than 30 minutes, after which I might also do a standup or a quick call with the rest of my team, and then I will start crunching the “big emails” that are leftovers from my handling phase. To stay on top of things, I tend to handle emails on my phone most of the day, either providing a quick response, postponing them to the next available day, or pinning them to be handled in the rest of my day.
After all email work is done, a quarter of my working day is gone. This is a good time for a quick break and possibly walk my dog. Is this being productive? This setup works for me to avoid full days spent just crunching emails. What do I do for the rest 2 blocks of highly productive time? I do code.
I travel a lot for work, both to conferences and to nearForm customers. When I travel, I do not have to do my usual email routine, specifically, I have no time to provide long responses. I still do my phone email handling, and I tend to quickly crunch whatever could be done on the phone. From time to time, that also includes pull requests. Emails and Github notifications pile up, and when I come back it would take me ages to catch up. No process is perfect!