AI in production
Most of what I write is about the part of LLM work that demos skip: the schema around the model, validation and fallbacks, evals that catch regressions, and keeping the token bill predictable. If you read one thing here, start with the five-part series that builds a feature end to end.
Five levers for LLM cost that matter more than a clever prompt
Model per task, fewer tokens, caching, batching and measuring every request: the cost controls I rely on when LLMs run inside a real product.
LLMs in production: the hard part is the contract around the model
What I learned putting OpenAI, Anthropic and Gemini behind an accounting product: schemas, deterministic checks, confidence thresholds and a human review queue.
Rules first, LLM second: categorizing Colombian bank transactions
In Nora, my personal-finance app, the LLM is the last resort, not the first step. Here's the pipeline and why every AI answer becomes a rule.
Three ways LLMs fail in production, and what to do about each
API errors, broken output and answers that look right but aren't. Each one needs a different defense.
Building an LLM feature, part 1: plan before you prompt
A hands-on series on planning, designing and shipping an LLM feature, using the transaction categorizer in my finance app Nora. Part 1: the problem, the success criteria, and deciding where the model belongs.
Building an LLM feature, part 2: design the system around the model
Architecture, data model and the contract with the model for Nora's transaction categorizer: async processing, confidence scores, idempotency and rules that learn.
Building an LLM feature, part 3: build the rules, the model call and the service
The code behind Nora's categorizer: a rules-first decision function, a batched LLM call with a schema-enforced enum, and a background service that saves answers and learns rules.
Building an LLM feature, part 4: test and evaluate it
Unit tests for the deterministic parts, a golden set for the model, and an eval script that reports accuracy, coverage and confident mistakes and can fail CI.
Building an LLM feature, part 5: ship it and keep it healthy
Running Nora's categorizer in production: graceful degradation, timeouts and retries, cost tracking, logs you can query, privacy, and the loop that makes the model less necessary over time.
Other topics
- AI in production9LLM features that survive real users: contracts, evals, cost.
- Agents & automation3Agents, MCP servers and bots that do real work.
- Architecture6Frontend and backend structure that scales with the team.
- Backend, security & infra3Auth, data pipelines and the infrastructure under it all.
- Leadership & delivery2Leading small teams and shipping under constraints.