Blog
Notes on AI engineering
Practical articles on AI agents, RAG, LLM integrations, evals and security — from real projects, no fluff.
Designing tools for LLM agents: names, schemas, outputs and errors that models get right
How to design the tools your AI agent calls: choosing the right granularity, writing descriptions and schemas, shaping responses for token efficiency, actionable errors, permissions, and testing tool quality with evals.
AI agent architecture: when to build a workflow and when you really need an agent
A practical guide to LLM application architecture: augmented LLM, prompt chaining, routing, parallelization, orchestrator-workers, evaluator-optimizer and autonomous agents — with selection criteria, code sketches and production pitfalls.
Structured outputs from LLMs: JSON schemas, validation and reliable extraction
How to get reliable JSON from language models: structured output modes, tool calling, constrained decoding, schema design, validation with Pydantic and Zod, retries and the trade-offs with reasoning quality.
Prompt engineering for developers: writing, testing and versioning production prompts
A developer's guide to production prompts: structure, roles, examples, XML tags, reasoning, output control, templates, versioning and how to change prompts safely with evals.
AI agents in CI/CD: automating issues, fixes and maintenance with GitHub Actions
How to run coding agents inside your CI/CD pipeline: use cases that pay off, a secure GitHub Actions setup, permissions and secrets, prompt injection risks, cost control and when to keep humans in the loop.