<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Salman Zafar — Blog</title><description>I take LLM-powered systems from prototype to production — agentic workflows, RAG pipelines, and multi-agent orchestration — and lead the teams that ship them.</description><link>https://salmanzafar.dev/</link><item><title>Hello, world — why this site exists</title><link>https://salmanzafar.dev/blog/hello-world/</link><guid isPermaLink="true">https://salmanzafar.dev/blog/hello-world/</guid><description>Who I am, what I build, and what I&apos;ll write about here: agentic systems, RAG, and shipping LLM software to production.</description><pubDate>Fri, 17 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Context engineering is the job now</title><link>https://salmanzafar.dev/blog/context-engineering-is-the-job/</link><guid isPermaLink="true">https://salmanzafar.dev/blog/context-engineering-is-the-job/</guid><description>Prompt wording is a rounding error next to what the model can see and when. The discipline that replaced prompt engineering, and how we practice it.</description><pubDate>Tue, 14 Apr 2026 00:00:00 GMT</pubDate></item><item><title>Why I built promptev on BYOK (and never stored a customer&apos;s data)</title><link>https://salmanzafar.dev/blog/why-promptev-is-byok/</link><guid isPermaLink="true">https://salmanzafar.dev/blog/why-promptev-is-byok/</guid><description>Bring-your-own-key looked like a commercial handicap. It turned out to be the architecture decision that makes enterprise conversations short.</description><pubDate>Tue, 24 Mar 2026 00:00:00 GMT</pubDate></item><item><title>Prompt injection is an agent problem now</title><link>https://salmanzafar.dev/blog/prompt-injection-is-an-agent-problem/</link><guid isPermaLink="true">https://salmanzafar.dev/blog/prompt-injection-is-an-agent-problem/</guid><description>A chatbot that gets injected says something embarrassing. An agent that gets injected does something. Defense notes from systems with tools.</description><pubDate>Tue, 17 Feb 2026 00:00:00 GMT</pubDate></item><item><title>RAG in 75+ languages: what breaks first</title><link>https://salmanzafar.dev/blog/rag-in-75-languages/</link><guid isPermaLink="true">https://salmanzafar.dev/blog/rag-in-75-languages/</guid><description>Building retrieval that works in Urdu, Arabic, and Tagalog as well as it does in English. Spoiler: the embeddings were the least of it.</description><pubDate>Tue, 20 Jan 2026 00:00:00 GMT</pubDate></item><item><title>Documents lie about being documents</title><link>https://salmanzafar.dev/blog/building-multimodal-context-engine/</link><guid isPermaLink="true">https://salmanzafar.dev/blog/building-multimodal-context-engine/</guid><description>Building a multimodal context engine — scanned PDFs, screenshots, charts, audio — and why &apos;just extract the text&apos; is where pipelines go to die.</description><pubDate>Tue, 16 Dec 2025 00:00:00 GMT</pubDate></item><item><title>MCP quietly fixed the worst part of building agents</title><link>https://salmanzafar.dev/blog/mcp-changed-agent-integrations/</link><guid isPermaLink="true">https://salmanzafar.dev/blog/mcp-changed-agent-integrations/</guid><description>Before the Model Context Protocol, every agent-to-tool integration was a bespoke adapter. Notes from moving production systems onto MCP.</description><pubDate>Tue, 11 Nov 2025 00:00:00 GMT</pubDate></item><item><title>GraphRAG is great. You probably don&apos;t need it.</title><link>https://salmanzafar.dev/blog/graphrag-when-its-worth-it/</link><guid isPermaLink="true">https://salmanzafar.dev/blog/graphrag-when-its-worth-it/</guid><description>We run both plain RAG and GraphRAG in production. A field guide to which questions actually need the graph — and which just need better chunking.</description><pubDate>Tue, 30 Sep 2025 00:00:00 GMT</pubDate></item><item><title>Human-in-the-loop is not a checkbox</title><link>https://salmanzafar.dev/blog/human-in-the-loop-is-not-a-checkbox/</link><guid isPermaLink="true">https://salmanzafar.dev/blog/human-in-the-loop-is-not-a-checkbox/</guid><description>Approval gates that people rubber-stamp are worse than no gates at all. Designing HITL that survives contact with busy humans.</description><pubDate>Tue, 19 Aug 2025 00:00:00 GMT</pubDate></item><item><title>How we cut LLM inference cost by 35% without touching quality</title><link>https://salmanzafar.dev/blog/cutting-llm-inference-cost/</link><guid isPermaLink="true">https://salmanzafar.dev/blog/cutting-llm-inference-cost/</guid><description>Model routing, caching, and context compression — in the order they paid off. No heroics, mostly plumbing.</description><pubDate>Tue, 15 Jul 2025 00:00:00 GMT</pubDate></item><item><title>Stop testing prompts by vibes</title><link>https://salmanzafar.dev/blog/evals-as-ci/</link><guid isPermaLink="true">https://salmanzafar.dev/blog/evals-as-ci/</guid><description>We gate every prompt and retrieval change behind an eval suite, the same way we gate code behind tests. Here&apos;s the setup, and what it caught.</description><pubDate>Tue, 03 Jun 2025 00:00:00 GMT</pubDate></item><item><title>What shipping RAG to 500+ enterprise users actually taught me</title><link>https://salmanzafar.dev/blog/shipping-rag-to-enterprise-users/</link><guid isPermaLink="true">https://salmanzafar.dev/blog/shipping-rag-to-enterprise-users/</guid><description>Chunking strategies and vector databases are the easy 20%. The hard 80% is access control, stale documents, and users who ask questions no document answers.</description><pubDate>Tue, 22 Apr 2025 00:00:00 GMT</pubDate></item><item><title>Most &apos;AI agents&apos; are just workflows (and that&apos;s fine)</title><link>https://salmanzafar.dev/blog/most-ai-agents-are-workflows/</link><guid isPermaLink="true">https://salmanzafar.dev/blog/most-ai-agents-are-workflows/</guid><description>The industry keeps calling everything an agent. Most production systems I&apos;ve shipped are workflows with LLM steps — and that&apos;s usually the right call.</description><pubDate>Fri, 14 Mar 2025 00:00:00 GMT</pubDate></item></channel></rss>