Blog
Notes from building and scaling production software.
Working with AI coding agents without losing the plotAgents write code faster than any of us.AI Agents4 min readEvals are the unit tests of LLM featuresPrompts and models change constantly, and LLM features regress silently.LLMs3 min readDesigning MCP tools your agents can't easily misuseThe Model Context Protocol makes it easy to expose your product to AI agents.AI Agents4 min readCaching in Next.js 16: a practical guide to Cache ComponentsCache Components makes caching explicit with "use cache", cacheLife, and Suspense.Next.js4 min readRAG that support teams can trust: validation, fallbacks, and reviewRetrieval-augmented generation is easy to demo and hard to run in production.LLMs3 min readDurable workflows: retries, timeouts, and human approvalsBusiness processes that span minutes or days don't fit in a request handler.Architecture3 min readPostgres is probably enoughQueues, full-text search, vector search, and flexible documents can all live in one Postgres database for longer than most teams expect.Databases3 min readIdempotency keys: making payment APIs safe to retryNetworks fail, users double-click, and webhooks get delivered twice.Payments4 min read















