Posts by Category


Advent of Code 2020

3 December 2020 | 3 minute read

This was my first year of Advent of Code. Sucked in by the fun but achievable challenges of the first week, I made a commitment to a couple of people that I ...

Project: Job vacancy data scraper

5 May 2020 | less than 1 minute read

I’ve just completed a new project: a command line Python program to scrape job vacancies for a given search term from, geocode, and save in JSON...

Project: MoD fuel order form

15 March 2020 | less than 1 minute read

I’ve just completed a new project: a responsive web form for military units to order fuel. It uses HTML, CSS, JavaScript and the Mapbox API, and features cus...

cs50 week 3: review

7 December 2019 | 2 minute read

Harold Wilson said a week is a long time in politics. Well, he may have been speaking about Harvard University’s CS50 course. My last post, completing week 2...

Perfect is the enemy of good

26 August 2019 | 3 minute read

Voltaire is alleged to have delivered this pearl of wisdom that resonates across the ages.

Back to Top ↑


cs50 week 2: cracking crack

10 October 2019 | 8 minute read

Almost a month after finishing caesar and vigenere from CS50 pset2, I thought I’d give the final problem set crack a, well, crack.

cs50 week 2: review

6 September 2019 | 4 minute read

Another week of CS50 and another classic computer science problem solved. This time, the Caesar cipher: how to encrypt your top secret military messages by s...

cs50 week 1: review

30 August 2019 | 4 minute read

cs50 is essentially a weekly two-hour lecture followed by what can seem like a million hours of head-scratching, googling, and trial-and-error-ing to solve t...

Back to Top ↑