Train Book

I read a book on the train into town today. I miss reading books while on public transport.

Project Book Retro

It’s four years since the first commit to Work Project #2. With over 10,000 commits, thousands of deployments, a couple of hours downtime, and lots of paying customers (please more though), I wanted to take a second to look back on all of the many decisions. What was good, what was crap. Do again, change next time?

Continue reading »


16 years ago I took on my first “proper” job. I’d done manual labour, I’d made websites for friends and family, but 16 years ago I got chatting to someone over Twitter DMs (this brand new feature) followed by CoD4 lobbies and started working with them.

Continue reading »


Many years ago, I had to make a website. Slightly different to the normal websites we were churning out. It would be used in 5,000 locations, across 160 countries, by about 30 million people (at the time) a month. It showed weather, local news, and more content specific to each location. At the time Amazon EC2 was two years old, scaling was a still unsolved problem, and we had to make this thing bulletproof.

Continue reading »


HybridLogic, my little corner of the Internet, turned 18 a few months ago. I wanted to make a little list of things this site has used, or not used, that have come and gone in that time. No order or rhyme, just thoughts.

Continue reading »


I spent the day building out some wood framing, ready for plasterboard with my Dad. It’s always good, learning skills that are so different to everything I do just sat on a computer. I also got to learn about the difference between joinery, and cabinetry.

Continue reading »

CTEs are Fracking Magical

We have a cron job. It runs frequently, looking for rows that have changed, or their parent relationships that have changed, or grandparents. There’s millions of rows. These cron jobs were causing tablescans of 200K+ rows each time. Replica latency was horrible.

CTEs and a few well-placed indexes. Down to only scanning rows needed. Weirdly just indexes and joins/subqueries didn’t help.

This post sponsored by me pulling my hair out staring at DB graphs for three days.