November 12th, 2020

Migrating from AngularJS to React

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

Featured Image
February 22nd, 2020

Designing the code behind product filters

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

Featured Image
December 31st, 2019

My favourite games and films of the 2010s

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

Featured Image
November 14th, 2019

An interactive file mover inspired by git

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

Labeling pie charts without collisions

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

Featured Image
October 9th, 2017

The Delight and Damage of Prettier

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

Featured Image
January 8th, 2017

Apple AirPods Review

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

Featured Image
December 30th, 2016

Azure gives me a headache

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

Featured Image
August 13th, 2016

Code Generation Service, now open source

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

Featured Image