Year in Review
It may have been 15 months since I last touched this blog, but that's the result of hard work as opposed to extreme laziness. Here's a brief overview of everything I've done in 2017.
Web Audio API Mini-Course
Last year, I published a blog entry about a 5-episode series on the Web Audio API that I was authoring for SitePoint. After gradually producing new episodes and ultimately reworking it into a short course with the editing team, it was released a few months ago to a handful of positive reviews. It's only available to Premium customers, but there are some deals that one may find enticing.
I've continued to write various tutorials and ramblings this year.
What I’ve Learned Over 5 Years as a Software Developer
July of this year marked the 5-year anniversary of the beginning of my commercial software engineering career, so I summarised my key takeaways thus far.
Getting Into Software Development
I received a LinkedIn message asking how one can pursue software development as a career, and decided to pen an open response. It went somewhat viral.
At the beginning of this year, I set myself the goal of giving a talk at a meetup; I ended up giving two.
ECMAScript Proxies in Node.js
I first encountered the Proxy API when developing a visualisation tool for the Web Audio API; it's currently residing in the projects graveyard, but I do want to ressurect it at some point. I thought it was a powerful capability that could be applied to a variety of scenarios and discussed some that were specific to Node.js. The talk took place at The JS Roundabout.
Implementing a Worker Queue using Child Processes
The concept of offloading work to additional Node.js processes (read: clustering) is nothing new, and yet it isn't commonly employed (due to either pragmatic reasoning or lack of prioritisation.) This was initially brought to my attention at NET-A-PORTER, but it unfortunately didn't progress past an initial investigation by a colleague. I nonetheless applied these learnings to a new library and captured some benchmarks, discussing my findings and demonstrating substantial performance improvements. I was hosted by the London Node.js Meetup that's run by YLD, the consultancy through which I developed for Trainline. They're a smart bunch working on some interesting projects; check them out!
I spent most of this year volunteering at CodeYourFuture, an initiative that teaches refugees how to code in preparation for securing employment in a software engineering role. It was an absolute pleasure to give back after having focused on myself and my own development; I primarily concentrated on leading the database module.
Between all of this, I somehow found the time to contribute to and author some open-source projects.
At the time of writing, Request is arguably still the most popular HTTP client abstraction for Node.js. I contributed a small change that provided a shorthand method for making
React Animation Frame
React Animation Frame is a React higher-order component that invokes a callback in a wrapped component via
requestAnimationFrame. I created this as a proof-of-concept, but its moderate popularity resulted in further development and contributions from other GitHub users.
In a bid to improve my algorithmic capability, I programmed a real-time maze generator using the depth-first search algorithim. I highly enjoyed this project and have an itch to create similar tidbits.
GitHub Autoresponder is an ASP.NET Core webhook that automatically responds to issues and pull requests opened against any configured GitHub repositories. The rationale for this was to handle potential interactions with my projects while I am travelling.
A final key highlight of 2017 is that I left London. I adore the city but detest its crowded, expensive, and busy nature. I plan to spend the beginning of 2018 travelling around Asia before relocating to Manchester to be closer to my origins.
I wish you all a happy and healthy 2018!