Engineering, delivery, and building things which last.

Under the Hood

How Estimation Works (And Why It Doesn't)

The cone of uncertainty, the planning fallacy, story points, throughput-based forecasting, and Monte Carlo simulation, why software estimation is so hard, and what actually works.

Read article

Under the Hood · The AI Field Guide

Knowledge, Logic, and Constraints

Reasoning from facts and rules, the way the AI textbooks of the 1980s thought we'd build minds. Propositional and first-order logic. Knowledge bases. Datalog. Modern descendants. SAT solvers, SMT solvers, and the production rule engines running insurance and banking. When if-this-then-that wins.

Read article

The Greenbox Story · Drawing the Lines

Domain-Driven Design: The Anti-Corruption Layer in Go

When one context needs to talk to another, the temptation is to import its types. The anti-corruption layer says no, translate at the boundary, and let each context own its own language.

Read article

The Greenbox Story · Drawing the Lines

Domain-Driven Design: Events Across Boundaries in Go

Bounded contexts don't help if they can't talk to each other. Domain events are how the Subscription context tells Billing that something happened, without knowing Billing exists.

Read article

The Greenbox Story · Drawing the Lines

Domain-Driven Design: Modelling the Subscription Context in Go

Charlotte said draw the boundaries. Tom said fine. Now someone has to write the code. This is what DDD looks like in Go, value objects, entities, aggregates, and the type system doing half the work.

Read article

The Greenbox Story · Drawing the Lines

Domain-Driven Design: Drawing the Boundaries

The codebase is becoming a monolith. Charlotte helps the team define bounded contexts so the architecture matches the business, and so LLMs generate code that fits.

Read article

Exam Room · Advanced GenAI

Designing Short-Term and Long-Term Memory for a Bedrock Chat Assistant

A customer-support assistant where the average conversation runs fifteen turns before it resolves, and returning users pick up two weeks later expecting the bot to remember they've been waiting on a refund. Two memory problems in one product (what's live in the current conversation and what persists across visits) and four plausible ways to build it. Bedrock Agents' built-in memory handles one half cleanly; the other half is where teams reach for DynamoDB or a knowledge base and get it wrong.

Read article

Under the Hood · The AI Field Guide

Search and Planning

Most of what people called 'AI' before deep learning was search. A* finding the route, alpha-beta playing the chess move, STRIPS sequencing the plan. The algorithms that run your map app, your build system, your warehouse robot, and your game opponent.

Read article

The Workshop

The Workshop: Business Model Canvas

A pattern for laying out how a business creates, delivers, and captures value on a single page of nine boxes, filled in customer-first order, so the team can see whether the whole thing actually holds together.

Read article

Under the Hood · Time

Time Is Wrong Everywhere All at Once

Your laptop's clock is wrong. So is the server's. So is every other computer on the network. The question isn't how to make them agree, it's what to do when they can't. From Lamport clocks to Google Spanner, the story of time in distributed systems.

Read article

Earlier writing

June 2026

Combining RAG and Fine-Tuning for a Legal Contract Assistant Exam Room · Advanced GenAI How to Build a Citations-Required RAG Over 50K Internal Documents Exam Room · Advanced GenAI

May 2026

Rules, Grammars, and Regex Under the Hood · The AI Field Guide The Salt in the Dish Consulting and Craft · Through the Kitchen Why Does Thursday Last Forever? Under the Hood · Time Picking a Bedrock Model for High-Volume RAG Exam Room · Advanced GenAI Prioritisation: What Changes First The Greenbox Story · Finding the Fit Choosing Between SageMaker, Bedrock, and Purpose-Built AI APIs Exam Room · GenAI The Boring Baseline That Wins Under the Hood · The AI Field Guide A Gentle Guide to Typography: From Chisels to Character Sets Under the Hood The Clock Inside You Under the Hood · Time Choosing Between Chains, Retrieval, and Agents for a GenAI Assistant Exam Room · GenAI Pricing Experiments: The Right Box at the Right Price The Greenbox Story · Finding the Fit How to Make a Bedrock Chatbot Audit-Ready with Guardrails and Watermarks Exam Room · GenAI Before the Transformer Under the Hood · The AI Field Guide The Workshop: Assumption Mapping The Workshop Can You Turn Back Time? Under the Hood · Time Forecasting Without Writing Python Exam Room · GenAI Business Model Canvas: Does This Actually Work? The Greenbox Story · Finding the Fit Grounding a Chatbot in Your Own PDFs Exam Room · GenAI After the Transformer Under the Hood · The AI Field Guide The Workshop: Jobs to be Done The Workshop Does Time Even Exist? Under the Hood · Time Choosing Between Prompting, RAG, and Fine-Tuning Exam Room · GenAI Assumption Mapping: Testing What You Believe The Greenbox Story · Finding the Fit How to Take a Foundation Model from Pick to Production Endpoint Exam Room · GenAI The Reranker You Didn't Know You Needed Under the Hood · The AI Field Guide The Knife in My Hand Consulting and Craft · Through the Kitchen

April 2026

Time Is Weirder Than You Think Under the Hood · Time Picking the AWS AI Service Tier for Each Feature Exam Room · GenAI Jobs to Be Done: Why Subscribers Actually Stay The Greenbox Story · Finding the Fit Choosing an S3 Storage Class for Cold Archives Exam Room · Architecture The Other Transformers Under the Hood · The AI Field Guide The Workshop: User Story Mapping The Workshop Ticks or Tocks? Under the Hood · Time Routing to the Closest Healthy Region Exam Room · Architecture Accessibility: A Product Decision, Not a Compliance Tick The Greenbox Story · Shipping What Matters What Day Is It? Under the Hood · Time The Workshop: Impact Mapping The Workshop User Story Mapping: Seeing the Whole The Greenbox Story · Shipping What Matters The Workshop: Sprint Planning The Workshop What Time Is It? Under the Hood · Time The Workshop: Example Mapping The Workshop Impact Mapping: Connecting Work to Goals The Greenbox Story · Shipping What Matters The Workshop: Event Storming a Process The Workshop The Workshop: Event Storming a Domain The Workshop Teaching Your LLM the Codebase: CLAUDE.md and AGENTS.md The Greenbox Story · Shipping What Matters Teaching Your LLM the Codebase The Greenbox Story · Shipping What Matters Behaviour-Driven Development: From Stories to Working Software The Greenbox Story · Shipping What Matters The Quiet Jar in the Fridge Consulting and Craft · Through the Kitchen Sprint Planning: Turning Sticky Notes into Delivery The Greenbox Story · From Chaos to Clarity To LLMs... and Beyond! Under the Hood · The AI Field Guide

March 2026

Example Mapping: Making Stories Concrete The Greenbox Story · From Chaos to Clarity How LLMs Actually Work Under the Hood · The AI Field Guide Event Storming: Building Shared Understanding The Greenbox Story · From Chaos to Clarity Retrospectives: Catching the Wrong Kind of Fast The Greenbox Story · From Chaos to Clarity The Value Is in Ideas, Not Code Consulting and Craft · In Practice Minimum Viable Product: The First Box The Greenbox Story · From Chaos to Clarity Customer Discovery: Before the First Line of Code The Greenbox Story · From Chaos to Clarity