Consulting and Craft

The practice of building software, and the lessons that keep turning up. Direct essays on engineering practice, plus shorter pieces from the kitchen that turn out to be about software too.

Consulting and Craft · In Practice

The Value Is in Ideas, Not Code

LLMs have made code implementation almost trivial. The bottleneck has shifted from writing code to knowing what to ask for. Your library of patterns, concepts, and hard-won experience is now your competitive advantage.

Read article

Consulting and Craft · Through the Kitchen

The Quiet Jar in the Fridge

My last sourdough starter died through a quiet chain of postponed feeds. I'm starting a new one today. Most of what I'm learning as I begin again, I wish I'd known a decade earlier about codebases.

Read article

Consulting and Craft · Through the Kitchen

The Knife in My Hand

A sharp knife is safer than a dull one. Pick the right tool for the job, then put in the practice. Speed comes from practice, not pressure. A few focussed, well-maintained, well-practised tools will more predictably take you further than the latest beautiful shiny offering.

Read article

Consulting and Craft · Through the Kitchen

The Salt in the Dish

There are four kinds of salt in my kitchen drawer and they are not interchangeable. This post is about salt. Most of it is actually about dependencies, and about the discipline of knowing what you're putting into the dish before you put it in.

Read article

Consulting and Craft · In Practice

The Price of Everything

Pricing isn't a finance decision; it's a product decision. The journey from a gut-feel launch number to validated unit economics is one of the hardest things a small team has to do, and one of the most consequential.

Read article

Consulting and Craft · Through the Kitchen

The Probe in the Meat

I own four kitchen thermometers, each for a different kind of cooking, and the differences between them are the differences between the kinds of decisions they help me make. Most of what I've learned about observability, I could have learned from a brisket, a vat of hot oil, a batch of caramel, and a steak.

Read article

Consulting and Craft · In Practice

Technical Debt Is a Loan, Not a Crime

Calling something 'tech debt' is usually an accusation. It shouldn't be. Used deliberately, debt is a tool: ship something imperfect, learn from the market, pay it back with what you learned. Used carelessly, it compounds until the interest swallows the principal.

Read article

Consulting and Craft · Through the Kitchen

Resting the Meat

You take the steak off the heat and the hardest part begins: doing nothing. Most of what I've learned about shipping software, I learned from a piece of resting beef.

Read article

Consulting and Craft · Hands On

Triaging Maintenance Requests with a Bedrock Classifier

The first pilot out of an AI envisioning session is usually a classifier, because classifying is the cheapest, most measurable thing a model does. We take one pick, routing a property agency's inbound maintenance requests, all the way to code: a Bedrock Converse call that returns structured JSON, a schema you can trust, PII guardrails, a confidence threshold that hands the hard ones to a human, and an eval set that tells you whether any of it works.

Read article

Consulting and Craft · Hands On

Answering Tenant Questions from the Lease with Bedrock

The second pick from an AI envisioning session is a retrieve-and-answer pilot: let tenants ask questions and answer them from the lease and handbook, with citations to the actual clause. We build it on Bedrock, and most of the work isn't the model. It's making sure each tenant only ever sees their own lease, that the answer is grounded in a real clause, and that the system says 'I'm not sure, I'll pass this to your property manager' instead of inventing a notice period.

Read article

Consulting and Craft · In Practice

The Language of Tests

Your test says 'should return 200.' RFC 2119 says 'should' means 'there may exist valid reasons to ignore this.' If it's actually a hard requirement, your test has a specification bug, and the LLM that wrote it doesn't know the difference.

Read article

Consulting and Craft · Hands On

Keeping an AI Pilot Honest After It Ships

Launching an AI pilot is the start of the measurement, not the end of it. Models change under you, the inputs drift, and a guardrail that held last quarter quietly stops holding. This is the unglamorous machinery that keeps a shipped pilot trustworthy: the eval set as a merge gate, drift you can see, an adversarial suite you run on purpose, a human-feedback loop that improves the data, and a calm path for when something goes wrong.

Read article

Consulting and Craft · Hands On

Catching Rent Arrears Without a Model

The most useful outcome of an AI envisioning session is sometimes the idea it sends away. A property agency wanted to 'predict' which tenants would fall into arrears; the honest answer was a rule, not a model. This is the boring, reliable thing built in full: a query over the ledger, a few thresholds, an escalation ladder, and the reasons it beats the model nobody needed.

Read article