Where Should I Live
Rank cities around the world by what you’d keep after tax, what a month costs, which visas you can get and how each place fits the way you live.
Bright Sites makes software for newsrooms: Flow, a publishing system, and Storycue, which helps editors plan what to publish. I lead their development. I joined in 2015 as a senior developer on The Independent and the Evening Standard. Before that I built and led web projects for an agency, a lender and a broadcaster, and I’ve worked on the web since 2004.
In my own time I build apps, libraries and tools. Where Should I Live ranks cities by what you’d keep after tax, what a month costs and which visas you can get. The Solar Calendar has 13 identical months and starts each year at the spring equinox. The libraries publish to Apple News from PHP, upload large files in chunks and turn feeds into JSON. The tools audit GitHub accounts and what their developers did, search documents and code for AI coding assistants, and hand coding tasks to the cheapest model that can do them. The code is on GitHub.
Apps, libraries and tools I’ve built.
Rank cities around the world by what you’d keep after tax, what a month costs, which visas you can get and how each place fits the way you live.
A calendar of 13 identical 28-day months, with each year starting on the first Monday on or after the spring equinox.
A PHP client for publishing articles to Apple News, with a document builder for the whole Apple News Format.
An AI coding orchestrator that sends each task to the cheapest model that can handle it, from a free local model up to Claude, and plugs into Claude Code over MCP.
A command-line tool for looking after a lot of GitHub repositories at once, with reports on their health, on who has access and on what each developer did.
Notes on how I build things.
How TurboPush’s chunked upload protocol is written down in PROTOCOL.md, how a small Node suite checks any server against it over HTTP, and the two bugs it found in my own PHP endpoint.
How RSS to JSON stops a feed URL from reaching private addresses on the server’s own network, by checking every address a host resolves to, pinning the connection to the one it checked, and checking every redirect again.
How the Solar Calendar serves a feed people can subscribe to in their calendar app, and a badge with today’s date, from a small Cloudflare Worker that runs the same date code as the app.
The products I have worked on most recently, from their code on GitHub.
Apple News API Latest release v2.2.0, 18 October 2026
Twenty years on the web, the last eleven at Bright Sites, which makes publishing software.
Development Lead
Senior Developer
Web Developer, contract
Lead Developer
For work, a question about one of the products, or anything else, send me a message and I will reply by email.