Skip to content
AI-native builder & writer

I build production AI systems (retrieval, fine-tuning, agents on the edge) and write about the engineering underneath the hype.

Now Eval harnesses, and working out continual-learning for real-world RAG.
Working threads the two I'm deepest in
Writing 15 published
07 July AI Memory Is Cosmetic essay 10 June Home-Cooked Software: I Built My Wife the App the Market Was Never Going to Make essay 02 June 107 Sub-Agents, All on Opus: Guarding Claude Code's Most Expensive Default build-log 26 May The CloudFormation Recovery AWS Documents in Halves incident 12 May We Were Going to Build More Vector Servers. AWS Sold Us Storage Instead. architecture 06 May 7 Models, 2 Deployment Targets, and the Part That Actually Mattered Was Calibration build-log The full archive →
Shipped selected · live & open-source
FormRecap Form abandonment recovery for the rest of us. Captures partial submissions in real-time and sends magic-link recovery emails that restore the user's exact form state. 100% Cloudflare-native. Cloudflare Workers · Durable Objects · D1 Skopia Privacy-first web analytics you self-host on your own Cloudflare account. Cookieless visitor identity from a daily-rotating HMAC, exact rollups written by a Durable Object, and a 554-byte tracker, all on the free tier. Cloudflare Workers · Durable Objects · Workers Analytics Engine The Goblin's Game Parlour A Cloudflare-native RAG app that answers tabletop rules questions from the actual rulebook, with every ruling grounded in the text and cited so you can check it. Hybrid retrieval, cross-encoder reranking, and a prompt-injection eval, all on Workers AI. Cloudflare Workers · Agents SDK · Durable Objects FormRecap LoRA Classifier 7 LoRA adapters across 4 model families for form abandonment classification. The best fine-tune hit F1 = 0.96 on a 6-class task where every general-purpose baseline scored 0.06. Dual-deployed on Modal for power and Cloudflare Workers AI for production inference. Llama 3.2 3B · Gemma 2B · QLoRA / DoRA All work →
All threads the notebook's index