Writing & Ideas
Thoughts on AI engineering, LLM systems, and building software that scales.

5 Things That Break When an AI Demo Goes to Production
Why AI demos fail in production: explore 5 critical failure modes in latency, noisy inputs, cost, hallucinations, and evals, plus practical …

Chatbot vs. Agent: The One-Line Test for Your Architecture
Chatbot vs agent: learn the one-line test to choose the right AI architecture, compare latency, costs, and failure modes, and avoid unnecessary …

What an AI Engineer Actually Does All Day: 5 Workflows Behind the Prompts
An honest look at what an AI engineer does all day: data cleanup, evals, latency and cost tuning, guardrails, and talking to users to ship reliable …

Reverse Engineer Anything (REA): Setup and Use Cases
Reverse Engineer Anything (REA) connects an AI coding agent to tools that inspect compiled software, packaged applications, and browser behavior. It …

Tracing a Python API with OpenTelemetry
The report always sounds the same: “the app is slow sometimes.” Not on every request, not for every user, and not reproducible on demand — …

Rate Limiting an API: Token Bucket, Sliding Window, and Redis
Most rate limiters in production aren’t wrong because someone picked the wrong algorithm — they’re wrong because someone picked an …

Small, Fast, Reproducible Python Docker Images
Most Python Docker images are bad in the same three ways at once: they’re huge, they rebuild from scratch on every code change because the …

Structured Outputs from LLMs That Don't Break in Production
The demo works every time: ask the model to return JSON matching a schema, json.loads() the response, move on. Then it ships, and three weeks in, …

Cutting LLM Costs Without Shipping a Worse Agent
The instinctive move when an LLM bill gets uncomfortable is to swap the model for a cheaper one and call it done. Sometimes that’s genuinely …

Building an MCP Server in Python
Most MCP tutorials show you a “hello world” tool — one function, two arguments, a print statement — and stop right where the actual …

Human-in-the-Loop Agents with LangGraph
The pitch for autonomous agents is always “it handles the whole task end to end.” The reality of shipping one is that almost nobody …

LangChain vs LangGraph: When You Actually Need a Graph
Ask a team why they moved from LangChain to LangGraph and you’ll usually get a shrug and “the agent kept doing weird stuff.” That …