Skip to content
akshat.katiyar

The blog

Notes on engineering,
systems, and craft.

What I'm building, breaking, and learning. New posts appear here first, and in the RSS feed.

12 posts

01How Dragonfly Outruns Redis — A Backend Engineer's TourDragonfly serves millions of QPS on a single box where Redis caps around 100k. I read the source to find out which three decisions — and one fast-path trick — actually do the work.12 min readsystemsarchitectureperformance02Deterministic AI: Let the Model Interpret, Let Code DecideThe reliable way to ship LLM features isn't a better prompt — it's shrinking the model's job until everything around it is plain, testable code.3 min readaillmsystems03Two AI Coding Agents, Not One: How I Actually ShipMost engineers now run Cursor and Claude Code in parallel — here's how I split the work between them, and why code-review discipline matters more than ever.5 min readaitoolsproductivity04Evals as CI: Catching Agent Regressions Before They ShipLLM features rot silently — a prompt tweak or model upgrade quietly breaks a case you fixed weeks ago. The fix: run evals in CI like tests.6 min readllmevalsagents05When to Use an LLM Agent vs Plain CodeAgents add latency, non-determinism, and real cost per run — so plain code is the default. Here's the decision framework I actually use.5 min readaiagentsllm06A Go Event Pipeline at 100k Events/Day, Sub-200msHow we built a serverless SQS → Lambda → DynamoDB pipeline in Go that handles 100k events a day at sub-200ms end-to-end latency with 99.99% uptime — and what broke along the way.6 min readgoawssystems07MCP in Practice: Tools for an Agent Without the N×M MessMCP collapses the N×M agent-tool integration problem into one server per tool — here's what that means for how you actually design and scope tool contracts.5 min readmcpagentsllm08Cutting PostgreSQL Query Latency on a Reporting EndpointA slow reporting endpoint, a missing composite index, an unsargable predicate, and what EXPLAIN ANALYZE actually told us — a debugging walkthrough.5 min readpostgresbackendperformance09Python or Go? How I Actually Choose for a Backend ServiceA practical decision framework from shipping real services in both — concrete tiebreakers most teams underweight before they're forced to care.4 min readpythongobackend10Context Engineering Is the New Prompt EngineeringPrompt engineering tunes the question; context engineering controls what tokens the model even sees — and the job is keeping that set ruthlessly small.5 min readaillmcontext-engineering11Building a RAG Pipeline in Python You Can Actually TestRAG feels untestable because generation is non-deterministic — the move is to decompose the pipeline into layers and test each one differently.5 min readragllmpython12Routing Between LLMs Without Blowing the BudgetHow I built a routing layer for a bank's GenAI chatbot that cut resolution time ~30% while keeping model spend controlled — and when not to bother.5 min readllmaiarchitecture