Most of us are in lockdown these days. I am not a key worker and my consulting practice is paused. I’m in my home office in Twickenham and for the first time in a long time, I have time to write code.
I’ve been itching to code since we moved to the UK from Silicon Valley in 2016. I spent my entire early career as a hands-on software developer, and always kept my coding skills current as I gradually managed larger and larger teams of engineers
Until now, I haven’t had the luxury of time to take a breath and dive deep back into programming, which I’ve loved my entire career. This time my approach is different. No boss, client or deadlines. Just the road ahead to learn whatever I want and invest as much time as necessary. Welcome to #slowprogramming.
First lockdown project
My first lockdown project is a Web-based app for exploring my recent plays on Spotify. I started in late February. Now – after six weeks – I’ve unlocked the first MVP and posted a technology & architecture overview.
When I started the project, I vowed to shed all bias regarding platforms, languages and tools. In early 2019, I spent some time learning node.js and Visual Studio Code. So much innovation! Using JavaScript on both front- and back-end is excellent. The browser-based and server-side debuggers are more than adequate. node.js libraries are plentiful, as are Visual Studio Code extensions. As a former Java + JavaScript + Eclipse developer, these are all welcome improvements.
The latest JavaScript syntax extensions caused me difficulty at first. But now I’m getting the hang of them. I never used inline functions much, but I now understand the benefits. I’ve always been super picky about clean, well-organized code, so now I’m close to fully defining my flavour of correct coding style in this environment.
In this project, I also had early difficulty with JavaScript promises. I’ve already written certain bits of asynchronous code more than once, in an effort to make it clean. I still have at least one more rewrite ahead of me. Let’s say it’s been character-building. I’ve had to learn some considerable patience, with myself, and with the coding world.
New mindset
On the positive side, I’ve been able to approach the intellectual challenges with a new mindset for me. Every project, in my entire career, has been time-sensitive. I was always looking for the best possible quality result that was also the quickest solution, moving on as soon as code was complete and correct.
Now, in the 2020 lockdown, I have more available time. I’m pressing myself to look for the best solutions, even when they require more time. It’s a significant shift. Just like the slow living movement emphasises slow approaches to everyday life, I’ve decided to call this “slow programming.” Embracing new community support systems for programmers and leveraging new technology. Investing more time in code quality and feature design to produce the best possible results.
I want to use this challenging time to develop improved perspectives. I imagine other people feel the same.
I’m interleaving coding with other life projects. My focus is thriving in 2020. I’m adding various security improvements to all aspects of life and fixing things around the house. As I finish this post, I will put this app to rest for a short while. This afternoon, I expect delivery of deck cleaner, sealer and a paint sprayer. My next lockdown project.