-
A 45-year-old computer learns to invent computer names
My Tandy Color Computer from 1981 starts from random numbers and, a minute later, invents computer names that never existed. Post one of five on how it does that.
-
What Sixteen Models Did With the Same Eight Principles
313 trials across sixteen models, one Rust scenario, the same eight engineering intents. Lift ranged from 0.00 to 0.89 depending only on which model read them — and the strongest model in the set was nowhere near the top.
-
The Spec for the Work Isn't the Spec for the Thing
I looked at GitHub's spec-kit when it launched a year ago, found it incomplete, and carried on with my own line of work. Coming back to it, I can finally name what was missing: it builds a project spec, and I keep wanting a product spec.
-
Modelling Engineering Intent Made My Guidance Measurable
I'd been trying to test my agent guidance for a couple of years, and every attempt died in the same place. What changed wasn't the harness — it was modelling engineering intent as structured records, which made the guidance specific enough to measure at all.
-
A Leaf on the Wind, at Machine Speed
Agents have changed the economics of producing and repairing software. They haven't changed the physics of entropy.
-
When Intent Moves Faster Than Code
Agents build code so fast that intent has become the bottleneck. And in a large codebase, the friction between fluid intent and rigid structure becomes the thing that actually limits how fast you can move.
-
Seven Coding Agents, One Space Invaders Clone
Anthropic is splitting their subscription on June 15, and unattended Claude Code is off my menu. I ran the same Bevy build through seven coding-agent profiles to see what could replace it. Three of them produced playable games. Four shipped binaries that crash on launch. The cost spread between the working ones is six-to-one, and the gameplay is indistinguishable.
-
Every Codebase Is an Uncompiled Knowledge Base
Karpathy's LLM Knowledge Base architecture is a powerful contribution, but it draws a false boundary between code and knowledge. Your codebase is the largest uncompiled knowledge base in your organization — and agents can now extract what's inside it.
-
Code Is Knowledge
Code isn't just instructions for machines. It's a record of how an organization thinks — about customers, domains, risks, and trade-offs. We've always known this. Now we have tools that can make it explicit.
-
Intent in Motion
A product's source code is a point-in-time snapshot of intent in motion. When an organization protects the artifact more than the community that gave it meaning, you learn what they actually believe.
-
GenAI Didn't Kill Rigor — It Moved It
The old bottleneck was implementation. The new bottleneck is ambiguity. And the rigor that used to live in coordination now needs to live in specification, context, and evaluation.
-
Know Your Principles
Comprehension debt isn't just about AI-generated code you don't understand. It's about not being able to articulate the principles that make your codebase navigable in the first place.
-
Finding Your True Worth
Your value isn't in typing code—it's in what you know. In a GenAI world, that tacit knowledge is more precious than ever.
-
The Agent That Won't Defect
Why agentic coding might be our best defense against the social dynamics that create tech debt
-
The Hacker Manifesto at Forty
Forty years ago, a frustrated teenager wrote a manifesto from jail. It still resonates — and still defines what it means to be a hacker.
-
Building Consistent AI Imagery with Structured Prompts
How I built a reusable system for generating consistent blog imagery using JSON schemas, the OpenAI image API, and Claude Code skills.
-
We Fixed the Glitch
Part one of four on Russell Ackoff's problem treatments. Today: absolution, or the fine art of hoping problems wander off on their own.
-
What Do You Design?
-
Gen AI in Software Development, Not Coding 1
-
Tacit Knowledge
-
It Will Do Whatever Fool Thing You Ask It
-
It Will Do Whatever Fool Thing You Ask It
-
Agents are Hard
-
What Is a Developer? Part 2 - Test Boundaries
-
The Bionic Developer
-
What Is a Developer?
-
Retro Computing and Stewardship
-
London and Chicago Style TDD, A Design Perspective
-
What AI Tells Us About Ourselves
-
Structured Semantics
-
The Bionic Coach
-
Systemic Oppression and Machine Learning
-
A Quick Update - Trying to Dig Myself Out
-
Leveraging Iteration and Decoupling
-
Diversion #1: Agents
-
Diversion #2: LangChain & Pydantic
-
Complex Example
-
Thinking over Typing 2.0
-
Simplistic Example
-
Is Machine Learning a Threat to You?
-
There Is No Agility Without Technical Agility
-
I care not for this agile coach, bring me another!
-
Splitting Product Design and Implementation
-
Cross-Functional Agile Teams
-
The Work
-
The Work
-
Agile Enough
-
The Spaces Between
-
Making a Small Pencil Tray
-
Functional Decomposition and Customer Centricity
-
Diversity is Critical
-
The Cloud Native Virus
-
Group Kata Facilitation
-
Pair Chain Exercise
-
How To Build Good Software vs. Learn a Technology
-
The Thing You Need On Your Radar
-
Four Things Impeding Your Software Teams
-
Coding Is Social
-
A Nurturing Culture
-
Lenses
-
What is an Agile Technical Practices Coach?
-
Who are you?
-
Oppression in Machine Learning
-
Exploring Farming Metaphors for Software Development
-
Coaching for “likability”
-
Revolution
-
The Worthiness of the Fizzbuzz Kata
-
A Leaf on the Wind
-
What is a Hacker?
-
AI Programmers Will Take Our Jobs!
-
The Long Road
-
In Memory of Nancy Diamond
-
Act on Fact, Not Conjecture
-
Testing Against The Edges
-
2016 Big Steps Forward
-
The Fable
-
Why Kata?
-
Retrospective on 2015
-
Lightweight Accountability
-
Avoid Technical Debt with Planning
-
Technical Debt and The Big Rewrite
-
Wicked Code
-
Signed and Encrypted Email on OSX and iOS
-
Lies, Damned Lies, and Code Comments
-
Why a Worker's Cooperative
-
7 Simple Steps to a Successful Software Project
-
The Chaos in the Matryoshka
-
Changes
-
Decisions In The Dark
-
Cannibal: A simple Object permissions framework for Ruby
-
Software Development Is About People
-
An American iPad in Canada
-
iPhone Applications and Intermediate Tooling Considered Harmful
-
Apple: Thank You for Leaving Flash Out
-
Java EE 6 Mess, Continued
-
Testable Java EE 6
-
Java EE 6, Untestable?
-
Using Java EE 6, Without Java
-
Java EE 6 and Netbeans 6.8 Released
-
CRTC, Hear Our Plea
-
Securing Data on a USB Drive on Mac OS X
-
Agility, Software Development Estimates and Buying a House
-
Continuous Improvement: Tools or Process?
-
The Concept of Millitasks
-
What You Want vs. What You Need
-
Outsource? Yes! Offshore? NO!!!
-
Doctors are people too
-
My Ongoing Battle with Pseudomyxoma Peritonei (PMP)
-
Doing Waterfall Badly
-
SSL-Explorer killed by Barracuda ?! Forked as Adito ?!
-
Software For Business Is Not Just A Tagline
-
Today
-
Off To Find My Shoes
-
Taking a stand, saying NO to software development quotes
-
Integrity, Transparency and Trust
-
Dissapointed In Dell
-
VMware ESXi At Long Last
-
iPhone Blogging 2.0
-
iPhone Blogging
-
Wishing for the days of XML Deploy-time configuration??!!
-
Performance Profiling with JBoss Seam - Part 2
-
Performance Profiling with JBoss Seam - Part 1
-
Living with Maven2
-
Keeping A Lid On It
-
Learn Your Tools, Learn Others Too
-
Software Development Estimates
-
Database Queries - Programmatic Criteria vs. EQL?
-
Why, oh why, Wordpress, have you made it so difficult to publish code snippets.
-
Wow, this isn't the Web Services I used to know...
-
Like we needed more proof that DRM is a BAD IDEA
-
Property Binding in UIs
-
Am I a whiny little bitch because I want Java6 on my Mac?
-
Disappointed.
-
Sanitizing your input considered harmful.
-
Simplicity Lessons from EasyBrandingTools.com
-
Lies, Damned Lies, and Software Development Estimates
-
Keep It Simple, (Not So) Stupid
-
End User Experience - Why, Microsoft, why?
-
Using 'Open Source' Commercially
-
Unit Testing: It's About Confidence
-
Speak Clearly from Experience
-
Software Developers
-
Communicate on Their Terms
-
Hello again!
-
How to answer 'What's wrong with PHP?'