Blog
Thoughts on software, specifications, and the future of development.
Your Specs Are Trapped in Chat Logs
Every AI conversation where you describe what your software should do is a specification you wrote and then threw away. The knowledge is there. It's just locked in the wrong place.
Determinism Isn't Going Anywhere
AI is great when you need creativity and latitude. It's computationally wasteful when the process is already known. Deterministic systems aren't legacy — they're the endgame.
The Study of Apps
Code became the source of truth by accident. We think specifications should be. Here's why — and what AI makes possible.
Agentic Workflows Are Just Automated Specifications
An AI agent executing a business process is really just running a spec. If the spec is wrong, the agent is wrong. Here's why that matters.
The Discovery Phase Nobody Wants to Pay For
The highest-leverage investment a team can make is understanding requirements before writing code. So why does everyone skip it?
AI Doesn't Replace the Spec Problem
LLMs can generate code faster than ever. But without specifications, there's nothing to verify it against. More code, less understanding.
The Locked Spec
What happens when a specification is validated, signed off, and locked? It becomes a building block that AI and teams can trust forever.
Why Natural Language Specs Aren't Vague
The obvious objection to natural language specifications is precision. Here's how to make them rigorous enough to be machine-actionable, without inventing a new formalism.
The Programmer's Oath, Revisited
Uncle Bob proposed a professional oath for programmers. Now that AI agents write code too, what should that oath look like?
The Cost of Reimplementation
HTTP clients, date parsers, cryptographic algorithms, rebuilt from scratch in every language. How much has the industry spent solving the same problems over and over?
Software's Missing Middle
Every other high-stakes profession has an institutional layer between intent and implementation. Software skipped that step. What would a 'building code' for software actually look like?
Technical Debt Is Specification Debt
Teams don't accumulate bad code, they accumulate missing or drifted specifications. The code is a symptom. The spec is the disease.