Stories
The systems I build and run, and the experiments that got out of the lab. Different scales, same standard.
I built a database my AI can't corrupt
Five hundred markdown files, twelve record types, and a thousand lines of Python that reject any write that breaks the schema. My AI operates the database. It is not allowed to corrupt it.
I stopped prompting my agents. I started compiling them
Intent goes in as a brief. Agents act as compiler passes. Eval gates act as the typechecker. The output only ships if it passes every check. I treat AI agents like a compiler, not a slot machine.
My digital colleague started dumb. Now it runs three businesses
It began as a Telegram bot that forwarded messages to Claude. Now it has a seven-layer memory, ten enforcement layers, a trust ramp, and 500+ tests. The intelligence is in the system around the model, not the model.
My accountant sends screenshots. I turn them into permanent tools
A WhatsApp screenshot of financial tasks. Thirty minutes later, three command-line tools that did not exist before. The difference between doing the work and building the thing that does the work forever.
Two medical sites, two countries, off WordPress without losing a ranking
Two slow WordPress sites for an osteopathy network, rebuilt from scratch in Next.js. Around 250 condition pages each, a shared design system, and a test suite whose only job is to make sure Google never noticed the move.
A historic estate had an embarrassing website. I rebuilt it overnight
A guest at Quinta da Bella Vista in Sintra, the former home of Arthur Conan Doyle. The property was stunning, the website was a slow template. By morning it was a full Next.js site. The point is not the speed. It is that the gap is gone.
I don't just run the ads. I built the loop that tells me which clicks become patients
Most people running ads stop at the click. I built a measurement loop that follows it from ad, to booking, to treatment, per location, every week. Cost per patient, not cost per click.
I ship changes from my phone, because I built the loop that makes the laptop optional
Telegram message in, governed agent loop in the middle, preview URL out in two minutes. The device stops mattering once the pipeline is solid enough. This site is the proof.
Five agents, five copies of the repo, one website in thirty minutes
I built one client site by hand in an afternoon. The next one I split across five agents in five isolated git worktrees, all running at once. Thirty minutes, no collisions.
I put an AI agent in a box and told it to build
A Docker container, three markdown files, and an agent that reads them, builds a complete app, tests its own work, and fixes its mistakes. No human in the loop. Until something breaks.
From Notion to nothing, and that was the plan
Everything lived in Notion. Then I deleted it. Not because Notion was bad, but because I'd built a black box I couldn't control.
A 3D skull you can click. Connected to a knowledge graph
22 skull bones as a 3D model. 120+ nodes of cranial osteopathy knowledge. Click a bone, the graph lights up. Click the graph, the skull rotates. Built for OsteosOnline.
6,000 music genres in one graph. Built in a weekend
Every genre from everynoise.com as an interactive knowledge graph. Click a node, hear a 30-second Spotify preview. Start minimal, explore endlessly.
150 years of osteopathy, mapped as a knowledge graph
From A.T. Still in 1874 to today's European regulation landscape. 100+ nodes mapping the founders, techniques, schools, legal battles, and movements that shaped the profession.