Teams have always had mechanisms for collective learning. Retrospectives, post-incident reviews, lunch-and-learns. The best of these share a property: they convert individual experience into shared practice. What one person encountered in a debugging session or a production incident becomes something the whole team knows. The knowledge escapes the individual and enters the team’s infrastructure: its […]
Principles of Mechanical Sympathy
Over the past decade, hardware has seen tremendous advances, from unified memory that’s redefined how consumer GPUs work, to neural engines that can run billion-parameter AI models on a laptop. And yet, software is still slow, from seconds-long cold starts for simple serverless functions, to hours-long ETL pipelines that merely transform CSV files into rows […]
Fragments: April 2
As we see LLMs churn out scads of code, folks have increasingly turned to Cognitive Debt as a metaphor for capturing how a team can lose understanding of what a system does. Margaret-Anne Storey thinks a good way of thinking about these problems is to consider three layers of system health: Technical debt lives in […]
Harness engineering for coding agent users
The term harness has emerged as a shorthand to mean everything in an AI agent except the model itself – Agent = Model + Harness. That is a very wide definition, and therefore worth narrowing down for common categories of agents. I want to take the liberty here of defining its meaning in the bounded […]
Encoding Team Standards
When a team has worked together long enough, certain practices become invisible. The senior engineer who rejects a pull request does not consult a checklist; she recognizes, almost instantly, that the error handling is incomplete, that the abstraction is premature, that the naming does not follow the team’s conventions. The same instincts shape how she […]
Fragments: March 26
Anthropic carried a study, done by getting its model to interview some 80,000 users to understand their opinions about AI, what they hope from it, and what they fear. Two things stood out to me. It’s easy to assume there are AI optimists and AI pessimists, divided into separate camps. But what we actually found […]
Architecture Decision Record
An Architecture Decision Record (ADR) is a short document that captures and explains a single decision relevant to a product or ecosystem. Documents should be short, just a couple of pages, and contain the decision, the context for making it, and significant ramifications. They should not be modified if the decision is changed, but linked […]
Fragments: March 19
David Poll points out the flawed premise of the argument that code review is a bottleneck To be fair, finding defects has always been listed as a goal of code review – Wikipedia will tell you as much. And sure, reviewers do catch bugs. But I think that framing dramatically overstates the bug-catching role and […]
Context Anchoring
When I work with a colleague on a feature that spans several days, we keep a shared document. Not formal documentation: a working record. What we decided, why, what we rejected, what questions remain open. If either of us is absent for a day, the other picks up where we left off. Neither of us […]
Fragments: March 16
Annie Vella did some research into how 158 professional software engineers used AI, her first question was: Are AI tools shifting where engineers actually spend their time and effort? Because if they are, they’re implicitly shifting what skills we practice and, ultimately, the definition of the role itself. She found that participants saw a shift […]




