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!

By: Matteo Collina

Matteo is a software engineer and Internet of Things (IoT) expert with a passion for coding, distributed architectures and agile methodologies. He has worked with a wide range of technologies (Java, Ruby, Javascript, Node.js, Objective-C) in a variety of fields. Matteo is the author of the Node.js MQTT Broker, Mosca, the LevelGraph database, and co-author of the book "Javascript: Best Practices" (FAG, Milan). In 2014, Matteo completed his PhD with a thesis entitled 'Application Platforms for the Internet of Things: Theory, Architecture, Protocols, Data Formats and Privacy'. Matteo is also an experienced conference speaker on the above topics. In his spare time, he builds and contributes to open source software (see his github profile and sails the Sirocco.