Writing on Engineering
-
DHH's Campfire Benchmark Is Flawed, and Still Right
DHH had agents port Campfire to Elixir, Go and Rust. The Elixir numbers are wrong, the argument holds, and none of these languages is where this ends.
-
Migrating Off InventoryBase Without Stopping the Business
How I moved a property inventory agency's 14 years of InventoryBase data, 60,000+ inspections and 4 TB of photos, to its own platform while staff kept working.
-
Twilio Flex for Charities: Lessons From a Coaching Contact Centre
Building a Twilio Flex contact centre for a UK children's charity: one configurable desk, conversations that survive, and Salesforce records that match.
-
Rails Engines as Products: Extract Only After Proof
A Rails engine should be extracted only after its boundary has survived production work. The Responsa case shows what moves out, what stays, and why now.
-
Rails MVP in Weeks: How Hotwire Holds Up in Production
A Rails MVP plan from a production operations workspace: where Hotwire makes server-rendered work fast, and where a frontend state layer earns its cost.
-
Native iOS Push Notifications: Permission and Restraint
How to design native iOS push notifications people keep enabled: ask at the right moment, choose local or remote delivery, and test state on real devices.
-
Compound Engineering With Codex: Keeping Agents Honest
How I keep AI-assisted engineering from becoming a pile of plausible diffs: committed instructions, bounded specs, tests, reviews, and records left behind.
-
RAG vs Fine-Tuning: Choose the Right System for Work
A practical RAG vs fine-tuning decision guide that covers retrieval quality, retraining costs, and when a prompt with structured extraction is enough.
-
Tests as Contracts for AI Coding Agents in Production
Tests are the specification an AI coding agent can execute. Real import and audio-app examples show how narrow contracts make generated code stay honest.
-
OpenAI API Integration Checklist for Production Apps
A production checklist for OpenAI API features: strict response contracts, validation, failure paths, cost limits, versioned prompts and deploy-time evals.