Blog posts
Cycling's in Rude Health. Shame Hardly Anyone in Britain Can Watch It.
The Tour de France just had one of its great editions, and this was the summer it vanished behind a paywall in Britain. A sport can be in rude health at the top and quietly dying at the bottom at the same time, and I think we just watched it start to happen.
Updated July 28, 2026
I Watched the Football, Gianni. That's the Problem.
FIFA's president answered a World Cup of controversy by telling his critics to meditate, pray, or watch a football match. I did watch it. All of it. That is exactly how I ended up not trusting the people running it.
Updated July 27, 2026
I'm Not Sure I Trust the Football Anymore
The 2026 World Cup was full of decisions I can't prove were wrong. That's exactly the problem. When you no longer trust the people running the game, a bad call and a fixed one start to feel the same, and the sport quietly stops being worth arguing about.
Updated July 20, 2026
Why AWS DMS Is Rarely the Best MySQL Migration Option
For a same-engine MySQL move, native binlog replication beats AWS DMS on the two things that matter: data fidelity and operational simplicity. Here is the reasoning, and the war stories.
Updated July 20, 2026
Migrating MySQL to RDS With Dump-and-Load Plus Native Binlog Replication
Move a large MySQL database to AWS RDS with near-zero data loss and a short cutover, using nothing but native MySQL tooling. The mechanics are simple; the sharp edges are all in the RDS control plane.
Updated July 20, 2026
Sharding a Cross-Cloud Bucket Migration, and Why AWS DataSync Wasn't Fit for Purpose
AWS DataSync silently wrote every file as 0 bytes migrating GCS to S3, because it could not reconcile GCS's CRC32c checksums. The fix was to shard the job and match each shard to a tool that could handle it.
Updated July 20, 2026
CrewAI ReadMe Generator, a fully customised Crew
A fully customised CrewAI project to generate a README file from a local folder
Updated May 29, 2024
I built a Static Site Generator to build this site
What my personal Static Site Generator looks like, the mistakes I made and the lessons I learned.
Updated July 09, 2026
Unit Testing with Terraform: Basics and Benefits
Some examples of practically useful unit tests to check that your code is producing the expected output.
Updated April 29, 2024
Full Vagrant Ubuntu 22 Dev (VirtualBox) setup
A full setup for a Vagrant Ubuntu 22.04 Dev environment, including a script to install software and configure the machine for an ssh user
Updated April 16, 2024
Essential Guide to Using AWS Nuke
When you create a new AWS account, you need to prepare it for use. The first thing you should do is run AWS Nuke
Updated October 08, 2025
8 Best AI YouTube channels
The best YouTube channels to subscribe to if you're interested in AI
Updated April 29, 2024
Instance Scheduler with AWS EventBridge
Save some money by scheduling your EC2 instances to stop and start with AWS EventBridge and Terraform
Updated July 08, 2026
Revealing the power of Custom GPTs
Make custom GPTs your own, the more specific the better
Updated April 29, 2024
Advanced Terraform Wrap-up
A wrap-up of our series: An Introduction to Advanced Terraform. Bringing all the concepts together in a fully dynamic example
Updated July 08, 2026
Terraform Cloud and remote state
Using Terraform Cloud and remote state to manage infrastructure
Updated April 29, 2024
Flattening data in Terraform
A deep-dive on manipulating data in Terraform, to prepare it for use in resource blocks
Updated April 29, 2024
User-friendly Terraform
Making it easy for other people to use your Terraform code
Updated April 29, 2024
Terraform Workspaces and Environments
Using Terraform workspaces and environments to manage infrastructure
Updated April 29, 2024
Terraform, Objects, Maps, Lists, Sets & Tuples
A quick look at the different data structures in Terraform, with some examples of how to use them
Updated April 29, 2024
Terraform setup, Providers and Multi-Region Deployments
Setting up Terraform providers and profiles for multi-region deployments
Updated April 29, 2024
Introduction to Advanced Terraform
This is the first article in a series that will introduce some fairly advanced terraform concepts quite quickly
Updated July 08, 2026
Resolving Multi-Account Git SSH Issues on Linux
Working with multiple GitHub accounts on a single Linux machine
Updated April 08, 2024