Writing
Blog
Notes from the work — payments, data pipelines, deployment, and how we build software. A new post every few weeks.

· 5 min read
England has no carer register
England is the only UK nation with no register of its care workforce. The gap is real — but the reason no one fills it is more interesting than the gap itself, and it isn't a technical problem.

· 5 min read
Built from lived experience, not a market gap
Finding a market gap is the standard startup advice. But the trade-offs that decide whether a product is any good are only visible from the inside — which is why the best ones start from lived experience, not a hole in a spreadsheet.

· 8 min read
From a few thousand sofas to the nation's viewing figures
How a panel of a few thousand homes — plus a lot of statistical machinery and an overnight scramble — becomes the morning's TV ratings, and where a data bureau fits in.

· 13 min read
Fixed-width files at scale
How to ingest hundreds of millions of rows into Postgres without setting fire to anything — streaming, COPY, encodings, and the gotchas in order.

· 12 min read
Your AI can't go where your data can't
On local LLM inference as a compliance posture.

· 11 min read
Watching the watchers
A Pi, a DVB-T HAT, and the surprising difficulty of knowing what's on television.

· 8 min read
Deploying Nuxt 4 to Azure Static Web Apps: the configuration that actually worked
A working setup for Nuxt 4 on Azure Static Web Apps, after a day spent fighting Nitro presets, Oryx builds, and the SWA GitHub Action's assumptions.