<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Sanjay Budhala</title><description>Notes on building LLM systems, ML infrastructure and the occasional mountain.</description><link>https://sanjaybudhala.com/</link><item><title>Batching LLM Requests: Static, Dynamic and Continuous</title><link>https://sanjaybudhala.com/blog/batching-llm-requests-static-dynamic-and-continuous/</link><guid isPermaLink="true">https://sanjaybudhala.com/blog/batching-llm-requests-static-dynamic-and-continuous/</guid><description>Static batching at output-length CV of about 1 keeps only 33% of its decode slots useful, and throughput falls from 168 to 61 tok/s. Each fix, from timeouts to continuous batching to chunked prefill, creates the next problem, measured on a GPT-2 engine built from scratch.</description><pubDate>Wed, 21 Oct 2026 00:00:00 GMT</pubDate><category>llm-inference</category><category>batching</category><category>kv-cache</category><category>performance</category></item><item><title>Why LLM Decoding Is Slow, and Why Batching Is (Almost) Free</title><link>https://sanjaybudhala.com/blog/why-llm-decoding-is-slow-and-why-batching-is-almost-free/</link><guid isPermaLink="true">https://sanjaybudhala.com/blog/why-llm-decoding-is-slow-and-why-batching-is-almost-free/</guid><description>A 100-token answer from GPT-2 needs 60 ms of math and takes 2 seconds. Following the bottleneck from a faster chip to the roofline, batching, the KV cache, GQA and goodput, measured on an inference engine built from scratch.</description><pubDate>Mon, 19 Oct 2026 00:00:00 GMT</pubDate><category>llm-inference</category><category>kv-cache</category><category>batching</category><category>performance</category></item><item><title>How LLMs Generate Text, and What the KV Cache Actually Fixes</title><link>https://sanjaybudhala.com/blog/llm-inference-math-problem-memory-problem/</link><guid isPermaLink="true">https://sanjaybudhala.com/blog/llm-inference-math-problem-memory-problem/</guid><description>Generation is a sequential loop, the naive version is quadratic, and the KV cache should make it 260x faster. Measured on GPT-2 built from scratch, it makes it 6x faster. Here is why.</description><pubDate>Mon, 19 Oct 2026 00:00:00 GMT</pubDate><category>llm-inference</category><category>kv-cache</category><category>performance</category></item><item><title>Agent Memory: Why Every Strategy Trades One Failure for Another</title><link>https://sanjaybudhala.com/blog/agent-memory-why-every-strategy-trades-one-failure-for-another/</link><guid isPermaLink="true">https://sanjaybudhala.com/blog/agent-memory-why-every-strategy-trades-one-failure-for-another/</guid><description>Four ways to give an agent memory — buffer, summarization, retrieval, and graph — tested hands-on, with the failure case that breaks each one.</description><pubDate>Thu, 30 Jul 2026 00:00:00 GMT</pubDate><category>agentic-ai</category><category>agent-memory</category></item><item><title>Building a Parameter-Aware Rate Limiter SDK with Redis, Lua, and MongoDB</title><link>https://sanjaybudhala.com/blog/building-a-parameter-aware-rate-limiter-sdk-with-redis-lua-and-mongodb/</link><guid isPermaLink="true">https://sanjaybudhala.com/blog/building-a-parameter-aware-rate-limiter-sdk-with-redis-lua-and-mongodb/</guid><description>A technical deep-dive into designing a distributed, parameter-aware rate limiting SDK that handles multi-tenant workloads with heterogeneous payload contracts.</description><pubDate>Wed, 15 Oct 2025 00:00:00 GMT</pubDate><category>system-design</category><category>infrastructure</category><category>distributed-systems</category><category>rate-limiting</category><category>microservices</category></item></channel></rss>