Code for Humans and Machines | Adam Tornhill | Substack
Code for Humans and Machines
Designing AI-aware software in practice through practical refactoring patterns and principles.
By Adam Tornhill
Compressed Cognition: The Cost of Faster Coding
Agentic coding collapses the timeline of software decisions. What we gain in speed, we pay for in decision density and mental energy. Here's a deep dive…
May 7•Adam Tornhill
An opinionated (and mainly correct) guide to naming
Naming in software goes way beyond any aesthetics. Good naming minimizes reconstruction work. Here is the style and habits that I've picked up.
Jun 23•Adam Tornhill
Hidden Design Decisions: Refactoring Control Coupling
Boolean flags often compress important design decisions into hidden behavior, leading to the classic problem of control coupling.
Jun 16•Adam Tornhill
CLEAR: Software Design Principles for the Agentic Age
Traditional design principles optimize for human maintainability. CLEAR optimizes for safe evolution through explicit structure under AI-assisted…
Jun 9•Adam Tornhill
Why Merge Conflicts became the new Agentic Bottleneck
Revisiting some techniques from Your Code as a Crime Scene in the light of agentic coding. Specifically, how a socio-technical fit becomes even more…
Jun 2•Adam Tornhill
A Blast from the Past: SDD and the Illusion of Known Scope
Implementation was never just typing. It's discovery and learning. Tooling changed, human problem solving didn’t.
May 28•Adam Tornhill
Make the Domain Explicit: From Procedural Mess to Local Reasoning
The more code hides, the more humans and agents have to reconstruct before making a safe change. In this article, we break apart a complex procedural…
May 21•Adam Tornhill
How Much of my Writing is AI-Generated?
Writing is learning. LLMs remove that component.
May 19•Adam Tornhill