From the team

Notes from the work: practical writing on web and mobile development, enterprise integration, content systems, data, and generative AI.

All posts

71 posts

Cost Controls for an LLM Feature: Caching, Routing, Budgets

Latest / AI Engineering

Cost Controls for an LLM Feature: Caching, Routing, Budgets

Five controls to put in the request path of an LLM feature, from token limits to per-user budgets, so the model bill is predictable before it arrives.

Escalating When Unsure: Designing the Agent-to-Person Handoff

AI Engineering

Escalating When Unsure: Designing the Agent-to-Person Handoff

When an AI agent should stop, what it hands a person, who owns that queue, and how the decision gets back to the agent. For teams running support agents.

Measuring a RAG System: Retrieval, Faithfulness and Refusals

AI Engineering

Measuring a RAG System: Retrieval, Faithfulness and Refusals

How to score a RAG system in two parts, retrieval and answers, plus the questions it should refuse. For teams that cannot tell if the last change helped.

Product Photo Inspection: Build the Labelled Set First

AI Engineering

Product Photo Inspection: Build the Labelled Set First

For teams planning visual inspection of products or shelves: how to collect, label and split photos so the model's test score holds up on the real line.

Explaining a Risk Score to the Person Who Has to Act on It

AI Engineering

Explaining a Risk Score to the Person Who Has to Act on It

For teams putting a model score in front of reviewers: turning feature contributions into plain reasons a person can check, and recording it when they disagree.

Shadow Runs and Canaries: Testing a Model on Live Traffic

AI Engineering

Shadow Runs and Canaries: Testing a Model on Live Traffic

How to let a new model version meet live traffic in stages, using a shadow run, a canary and a decision log, with rollback as a config change.

Turning Customer Reviews into Issues a Team Can Fix

AI Engineering

Turning Customer Reviews into Issues a Team Can Fix

Why a weekly sentiment score rarely changes anything, and how to pull named issues from reviews, keep their counts comparable and give each one an owner.

Testing an Agent by Replaying Real Tasks in a Sandbox

AI Engineering

Testing an Agent by Replaying Real Tasks in a Sandbox

How to test an AI agent against recorded tasks and sandboxed tools, judge the end state rather than the path, and catch regressions when the prompt changes.

Hosted LLM or Open-Weight in Your Own Cloud: Cost and Data

AI Engineering

Hosted LLM or Open-Weight in Your Own Cloud: Cost and Data

Hosted model APIs and open-weight models in your own cloud differ on data, operations, updates and lock-in. A decision rule for teams choosing where to run.

Churn Prediction: Turning a Risk Score into an Action

AI Engineering

Churn Prediction: Turning a Risk Score into an Action

How to define churn, set the alert threshold from team capacity, route each reason to an owner, and hold back a control group to see whether the calls worked.

Access Control in RAG: Answers Only from What the Asker May See

AI Engineering

Access Control in RAG: Answers Only from What the Asker May See

Document permissions get lost on the way into a retrieval index. How to tag each chunk with its readers, filter inside the query, and why filtering later leaks.

Structured Extraction from Emails and PDFs: JSON You Can Trust

AI Engineering

Structured Extraction from Emails and PDFs: JSON You Can Trust

How to turn supplier invoices arriving as emails and PDFs into records you can post: a schema, checks against your masters, capped retries and safe writes.

Working on something in this space?

Talk it through with an engineer first.

A 30-minute call, no charge. You describe the process or system, we ask questions, and you leave knowing whether it is worth scoping.

Book a requirements call

Talk to an engineer

Have a requirement worth building?

Book a 30-minute call with an engineer, at no charge. Tell us the problem and the systems involved, and you leave with questions answered and a suggested first step, not a sales deck.