Writing on Rails, AI-assisted development, and what machines can't create.

Articles on code craft, architecture, and the human judgment that separates working software from software that lasts.

The guardrails non-technical founders skip when building with AI

The mistakes founders make building software with AI cluster around four missing guardrails: the boundaries AI quietly crosses, code you cannot read, the happy path mistaken for the feature, and a stack that gets rewritten three times. Real failures, real quotes, and the rule to put in place for each.

How much of your codebase should AI write? A trust-zone breakdown

The names are the system's nouns. 70% of the Rails code I ship is AI-written; the 30% I keep is the part that names the system. Trust zones, the defensive-code creep that follows when naming collapses, and why architecture matters more than ever now that agents generate code faster than anyone can read it.

Building with Claude Code in Your Rails App

What working with me looks like when we build features in a Rails app with AI: spec, tests as a readable definition of done, "go" lock gate, implement, verify. The development loop for non-technical founders.

The Middle Loop

ThoughtWorks identified a new category of engineering work between coding and delivery. Nobody has named it yet. I've been doing it.

First Principles

Constraints as understanding — why working within limits produces the deepest insight.

Gambit

Strategic sacrifice — accepting complexity now for positional advantage later.

The Practice

Embodied mastery vs. pattern-matching — AI as collaborator, not replacement.

The Crumbling Codebase

Technical debt as physical decay — and the energy required to reverse it.