2021 I built a real-time strategy game in the browser Securing Raspberry Pi access using free CloudFlare Choosing a technical focus as a software engineer Getting alerted when cycle paths flood: part two Getting alerted when cycle paths flood Finding a new job in tech 2018 How responsible are we for the feelings of others? The counterintuition of how leaders grow I'm finding London easier Weeknote 3 Weeknote 2 Weeknote 1 📝 Leader Election 15 years of web development ❄ Blizzards 🌨 2017 I'm finding London hard Day 9: Welcome to Berlin Day 8: Hannover–Berlin Day 7: Amsterdam–Hannover Day 6: Seeing more of Amsterdam Day 5: Amsterdam in tulips, pancakes & bodies Day 4: Paris–Amsterdam Day 2: Walking Paris Day 1: Wakefield–London–Paris Paris–Amsterdam–Hannover–Berlin–Prague New horizons Simulating miniature cities with Tilewater Prototyping an encrypted filesystem with FUSE Brexit Designing a better home for writing, part 1 Resuming writing Cycle helmet saved my noggin YUSU elections put under the microscope: college and gender imbalances Recursive Enum expression trees in Rust Introduction to Evolutionary Computing Why we escape spaces against XSS Generating expression trees in Rust Engineering as slowly as possible Battle of the colleges: who’s got the BNOCs 2014 UoYBus: Aggregating live bus routes to University 2013 Going back to College How probable are 3 consecutive birthdays? Railway Data Revisited Trains and East Coast positioning data 2012 Two weeks with Go: an initial review Building services with iMessage On efficiently pairing socks iREPL 2011 Development Sparks