November 12th, 2020
The AngularJS long-term support period is coming to an end, so now is a good time to consider migrating to a more modern web framework, such as React. That's what we've been planning at work since the start of the year, and I'd like to share our high-level approach. MORE
February 22nd, 2020
You've seen these all over the internet, a sidebar containing controls that can filter a list, usually products in an online store. At my job as a front-end software engineer, we also made one of these, and I'd like to share with you how it works. MORE
December 31st, 2019
The decade is over, if you count your indices from zero. So I thought I'd share my favourite games and films of the last decade here on my blog. This list obviously doesn't include every good thing, but these in particular have had the most impact on me. MORE
November 14th, 2019
I recently had to change the names of a bunch of files at work. I thought about how annoying it was going into Finder and renaming individual files, but how easy it was in my code editor to change the references to those files. So I had the idea to write a tool that could open a list of files in an editor, and whatever file path was on each line when the file was saved and closed, that would be the new file path. MORE
August 25th, 2018
Recently at work, I've been using Chart.js to create pie/donut charts. We really wanted the labels to be shown around the outside of the chart, next to each segment. Chart.js doesn't do this out of the box, and the only plugin I found would let the labels overlap. I decided to challenge myself with making my own plugin that would handle overlaps/collisions more gracefully. MORE
October 9th, 2017
When you work on a big codebase with multiple contributors it can be difficult to keep everyone to a specific style of coding. Prettier takes this weight off your team's shoulders and ensures you never have to review code for formatting again. MORE
January 8th, 2017
I've been snagging my EarPods on door and drawer handles since my first iPod, wishing for the same comfort and styling without the pesky, tangled cables. So how excited was I when Apple announced the AirPods. MORE
December 30th, 2016
What should happen when you delete a web app and create another with the same name? Azure thinks it should sometimes show you the new app, and sometimes give you a "404 Not Found" error, depending on how it feels. MORE
December 27th, 2016
In April this year, Danny Brown and I began re-writing csblogs.com. While version 2.0 looks and acts the same, a lot has changed under the hood. Here are some of the things we've learnt along the way. MORE
August 13th, 2016
It's been almost a year since I finished my masters degree at the University of York, and I've finally gotten around to open-sourcing my dissertation project "Code Generation as a Service". That sounds like the right amount of time to recover from stressful report writing and dealing with the Eclipse IDE. MORE