# Neeraj Butola > Neeraj Butola’s open notebook: web applications, cloud systems, projects, and notes on what I learn along the way. This is a personal portfolio and technical notebook about web applications, cloud systems, and AI engineering. Use the Markdown article links below to read complete posts without the website navigation. The HTML article URLs are canonical for citation. ## Read the site - [Complete content in Markdown](): Public profile, experience, skills, projects, contact details, and the articles listed below. - [Complete content as text](): The same Markdown-formatted content served as plain text. - [This index in Markdown](): The same index as /llms.txt. ## Profile and projects - [Home](): I build web applications and cloud systems, and write about what I learn along the way. - [About](): Background, experience, education, certifications, and toolkit. - [Projects](): Web applications, experiments, and the things I’ve built along the way. - [Contact](): Public email and social profiles. - [Blog](): Practical guides to web development and AI engineering, with diagrams, worked examples, and interview questions on LLM inference and caching. ## Articles - [Context Engineering Explained](): Learn how context engineering gives an AI the right instructions, history, facts and tools, using a complete customer-return example. - [Prompt Injection Explained: Direct and Indirect Attacks](): Learn how direct and indirect prompt injection work, why tool access raises the risk, and how backend permissions, approval, and testing reduce harm. - [LLM Model Routing Explained](): Learn how LLM model routing works. Compare pre-call routing and cascading, with diagrams and interview tips on answer quality, cost, and latency. - [Semantic Caching Explained](): Learn semantic caching with interview answers on false matches, similarity thresholds, tenant isolation, stale answers and when caching is worth the cost. - [KV Cache Explained](): Learn how KV caching works, then practice interview questions on queries, GQA memory estimates, context length, cache invalidation and concurrency. - [Prefill vs Decode Explained](): Understand prefill and decode, with interview questions on first-token latency, slow generation, GPU bottlenecks, streaming and speculative decoding. - [Prompt Caching Explained](): Learn prompt caching with a support-bot example and interview answers on prefix matching, cache misses, policy updates, latency and cost trade-offs. - [AI agents should finish work, not just narrate it](): A useful agent needs a clear outcome, bounded tools, recoverable state, and evidence that its actions actually worked. - [Choosing an LLM that is good enough for the job](): Turn model selection into a small engineering experiment: define success, compare total cost, and keep an escape hatch. - [From an impressive AI demo to evidence you can use](): A small evaluation process for separating an exciting example from a system you can depend on. - [What rate limits reveal about inference capacity](): Queues, concurrency, and retries explain more about a slow AI feature than a vague claim that the model needs more compute. - [Before adding Redis, draw the request path](): Local memory, shared caches, and databases solve different problems. Start with the time your request actually spends waiting. - [LLM quantization, without the alphabet soup](): What 4-bit and 8-bit models change, why a smaller download is not the whole memory budget, and how to choose a usable build. - [Why input and output tokens cost different amounts](): A practical tour of prefill, decoding, and the costs that hide behind a seemingly simple chat request. - [The permission behind the Connect button](): Third-party integrations extend your trust boundary. A practical way to reason about scopes, tokens, secrets, and revocation. - [Optimistic uploads: make the wait happen earlier](): Start transferring a selected file while someone writes the caption. The speedup is simple; the lifecycle deserves more thought. - [A smaller model can be part of a better system](): Parameter counts are one clue. Context, evaluation, architecture, and the surrounding workflow decide whether an AI feature is useful. - [Choosing how your website renders](): CSR, SSR, static generation, and hybrid pages explained through the work they move between the server, browser, and build. ## Optional - [RSS feed](): Published article summaries and canonical links. - [Sitemap](): Canonical website pages. - [Resume](): Resume page and downloadable document. - [Editorial policy](): How articles are researched and maintained. - [Privacy policy](): Website privacy information.