June 2026
Make your habit a social one
Why “accountability” is a buzzword.
May 2026
Creating a test user
Agile doesn't exist
People on the Footpath
April 2026
Code Review is Bad and Good?
Justifying code review to myself.
Notes on the Profitec Go
My thoughts on this espresso machine after 18 months.
March 2026
Your Best Manager Will Terminate You
How I got fired from my first developer job.
Slop
I’m sick of LinkedIn.
February 2026
OpenSearch Serverless at Deputy
The most egregiously over-engineered solution I have ever been a part of.
January 2026
I Missed Working from the Office
How I felt after five years of being fully remote.
October 2025
Leetcode 3186: Maximum Total Damage (in Go)
I got skill gapped but I think I learned something?
September 2025
Three Easily Avoidable Technical Interview Mistakes
How I think candidates can leave less of the interview up to chance.
When Is It Okay to Work Late?
What I think about working longer hours.
Dead Money
I argue that the stigma around renting is unwarranted.
August 2025
Postmortem: Deputy
Why Deputy wasn’t right for me, in the end.
Three Ways to Make Your PRs (And Repos) more Readable
My advice for writing human-readable code, even in the age of AI.
December 2024
Hugo Commenting Systems: A Comparison of Open-Source Options
Which comment system should you use for your static site?
Personalised Careers Pages Made With Generative AI
How we built our hackathon project with Anthropic Claude and AWS.
September 2023
Analog Photography (featuring the Yashica Electro 35)
How I restored a 50 year old camera into working order.
Ailo: didn't ask, don't want, don't need.
My criticism of Ben White’s property management software Ailo, and how renters are the product, not the user.
July 2023
Troubleshooting Reflections in Product Photography
A quick article about what I learned on avoiding unsightly reflections.
Thoughts on Neovim & Some Configs
How I’ve customised Neovim to my personal taste.
June 2023
Deputec Locking and Timesheet Concurrency Problems
Notes while thinking through concurrency problems.
March 2022
How to Rebase
A presentation I made at Deputy to explain why we might choose rebasing over merging.
January 2021
Implementing CRC-32 in Decaf
The challenge of implementing bitwise arithmetic in a high-level language without bitwise abstractions.
My Garry's Mod Projects
Personal projects from my high school and early university years that generated my first programming income.