<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Parbhat Kapila</title>
    <description>The latest articles on DEV Community by Parbhat Kapila (@parbhatkapila).</description>
    <link>https://dev.to/parbhatkapila</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3573411%2Fa35ab820-9182-4560-a1d1-08af79611979.jpg</url>
      <title>DEV Community: Parbhat Kapila</title>
      <link>https://dev.to/parbhatkapila</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/parbhatkapila"/>
    <language>en</language>
    <item>
      <title>What It Actually Takes to Run a RAG System in Production</title>
      <dc:creator>Parbhat Kapila</dc:creator>
      <pubDate>Thu, 12 Feb 2026 15:24:30 +0000</pubDate>
      <link>https://dev.to/parbhatkapila/what-it-actually-takes-to-run-a-rag-system-in-production-6jh</link>
      <guid>https://dev.to/parbhatkapila/what-it-actually-takes-to-run-a-rag-system-in-production-6jh</guid>
      <description>&lt;p&gt;RAG systems are easy to demo.&lt;/p&gt;

&lt;p&gt;They’re difficult to operate.&lt;/p&gt;

&lt;p&gt;A typical prototype retrieves a few documents, sends them to an LLM, and returns a reasonable answer. It works with a small dataset and no real traffic. The problems start when the system is exposed to live usage, larger document sets, and strict latency expectations.&lt;/p&gt;

&lt;p&gt;When I moved a retrieval system into production with 10,000+ documents and real users, the first constraint was latency. Users don’t tolerate slow responses. Retrieval needed to stay under 200ms consistently, even under concurrent load. That ruled out naive chunking and default indexing strategies.&lt;/p&gt;

&lt;p&gt;Instead of splitting documents purely by token length, chunking was structured around semantic boundaries. This reduced irrelevant matches and improved retrieval precision without increasing context size. On the database side, approximate nearest-neighbor indexing was tuned carefully to balance recall and query time. Search parameters were not left at defaults: they were adjusted until latency became predictable rather than variable.&lt;/p&gt;

&lt;p&gt;Caching was introduced not as an optimization, but as a requirement. Repeated queries occur frequently in real systems. Storing embeddings and high-frequency retrieval results in Redis eliminated redundant computation and stabilized response times.&lt;/p&gt;

&lt;p&gt;Cost became the second constraint.&lt;/p&gt;

&lt;p&gt;Embedding large documents repeatedly is expensive. Early versions of the pipeline reprocessed identical content and passed excessive context to the model. That works at low volume. It breaks at scale. Deduplication via hashing, batched embedding requests, and dynamic context sizing significantly reduced token consumption. The goal was not theoretical efficiency; it was preventing costs from compounding with growth.&lt;/p&gt;

&lt;p&gt;Reliability exposed another layer of complexity. A production system cannot depend on a single model provider. Rate limits and outages are not hypothetical; they happen. Introducing a provider abstraction layer with automatic fallback and retry logic made failures manageable. Instead of hard downtime, the system degraded gracefully.&lt;/p&gt;

&lt;p&gt;Accuracy required tradeoffs. Increasing top-k retrieval improves recall but increases latency and token usage. Reducing it improves speed but risks missing context. A static configuration wasn’t sufficient. Retrieval depth became dynamic, adjusted based on similarity spread and query characteristics. That preserved response quality without sacrificing performance targets.&lt;/p&gt;

&lt;p&gt;Some issues don’t show up in tutorials. Updating embedding models invalidates stored vectors. Schema migrations affect vector dimensions. Prompt changes quietly increase token usage. These are operational problems, not academic ones. They required versioned embeddings, strict schema control, and continuous token auditing.&lt;/p&gt;

&lt;p&gt;A prototype proves that something is possible.&lt;/p&gt;

&lt;p&gt;Production proves that it’s sustainable.&lt;/p&gt;

&lt;p&gt;The real engineering work in AI systems isn’t generating correct answers. It’s managing latency ceilings, cost growth, provider instability, and system evolution without breaking live workflows.&lt;/p&gt;

&lt;p&gt;That’s the difference between experimenting with AI and running it as infrastructure.&lt;/p&gt;

</description>
      <category>llm</category>
      <category>performance</category>
      <category>rag</category>
      <category>systemdesign</category>
    </item>
    <item>
      <title>I’m building an AI video system that resolves the entire editing pipeline from one sentence</title>
      <dc:creator>Parbhat Kapila</dc:creator>
      <pubDate>Wed, 04 Feb 2026 19:34:00 +0000</pubDate>
      <link>https://dev.to/parbhatkapila/im-building-an-ai-video-system-that-resolves-the-entire-editing-pipeline-from-one-sentence-49f2</link>
      <guid>https://dev.to/parbhatkapila/im-building-an-ai-video-system-that-resolves-the-entire-editing-pipeline-from-one-sentence-49f2</guid>
      <description>&lt;p&gt;Most AI video tools still treat editing as a user responsibility.&lt;/p&gt;

&lt;p&gt;You give them a prompt, and then you’re dropped into timelines, templates, and a pile of small decisions. At that point, the “AI” is just helping you operate the UI.&lt;/p&gt;

&lt;p&gt;I’m building CUTLINE with a different goal: resolve the entire video pipeline from a single sentence.&lt;/p&gt;

&lt;p&gt;One line goes in. The system decides the script, visual pacing, voice, captions, music, and exports a finished 1080p video. No timelines. No templates. No watermark.&lt;/p&gt;

&lt;p&gt;What I care about isn’t how clever the output looks on a demo. It’s whether the system stays predictable when used repeatedly, under real constraints, and with messy inputs.&lt;/p&gt;

&lt;p&gt;Most of the hard work hasn’t been prompts. It’s been orchestration, defaults, and deciding where the system should not ask the user anything.&lt;/p&gt;

&lt;p&gt;Still early, but I’m curious how others here think about building AI systems versus AI tools, especially in creative workflows.&lt;/p&gt;

&lt;p&gt;If you want to see what I’m working on, it’s here:&lt;br&gt;
&lt;a href="http://www.parbhat.dev" rel="noopener noreferrer"&gt;www.parbhat.dev&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Building the video tool I wish existed while shipping SaaS products</title>
      <dc:creator>Parbhat Kapila</dc:creator>
      <pubDate>Tue, 03 Feb 2026 09:02:21 +0000</pubDate>
      <link>https://dev.to/parbhatkapila/building-the-video-tool-i-wish-existed-while-shipping-saas-products-47fc</link>
      <guid>https://dev.to/parbhatkapila/building-the-video-tool-i-wish-existed-while-shipping-saas-products-47fc</guid>
      <description>&lt;p&gt;I’ve been building something I wish existed when I was shipping and scaling SaaS products.&lt;/p&gt;

&lt;p&gt;CUTLINE is an AI-directed video editing system that turns a single sentence into a finished short video — handling visuals, pacing, and voice automatically.&lt;/p&gt;

&lt;p&gt;It’s built as a real system: predictable output, repeatable workflows, and behavior that holds up as usage scales.&lt;/p&gt;

&lt;p&gt;Not templates. Not generators. Real edited videos.&lt;/p&gt;

&lt;p&gt;Going live soon. Happy to share details or walk through how it works under the hood.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.parbhat.dev" rel="noopener noreferrer"&gt;www.parbhat.dev&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>ai</category>
      <category>saas</category>
      <category>startup</category>
    </item>
    <item>
      <title>What building real repositories taught me</title>
      <dc:creator>Parbhat Kapila</dc:creator>
      <pubDate>Mon, 26 Jan 2026 18:21:03 +0000</pubDate>
      <link>https://dev.to/parbhatkapila/what-building-real-repositories-taught-me-2h25</link>
      <guid>https://dev.to/parbhatkapila/what-building-real-repositories-taught-me-2h25</guid>
      <description>&lt;p&gt;Building RepoDoc has shifted my focus from features to behavior over time.&lt;/p&gt;

&lt;p&gt;Large repositories introduce history, ambiguity, and edge cases that don’t show up in small examples. The challenge isn’t producing output, but keeping the system stable and understandable as complexity grows.&lt;/p&gt;

&lt;p&gt;That constraint has ended up shaping the product more than any individual feature.&lt;/p&gt;

&lt;p&gt;Good tools don’t just work once. They keep working as things get messy.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.parbhat.dev/" rel="noopener noreferrer"&gt;Check It&lt;/a&gt;&lt;/p&gt;

</description>
      <category>architecture</category>
      <category>devjournal</category>
      <category>softwareengineering</category>
      <category>tooling</category>
    </item>
    <item>
      <title>Why RepoDoc treats documents as immutable</title>
      <dc:creator>Parbhat Kapila</dc:creator>
      <pubDate>Sat, 24 Jan 2026 08:26:53 +0000</pubDate>
      <link>https://dev.to/parbhatkapila/why-repodoc-treats-documents-as-immutable-2gm9</link>
      <guid>https://dev.to/parbhatkapila/why-repodoc-treats-documents-as-immutable-2gm9</guid>
      <description>&lt;p&gt;In RepoDoc, documents are facts.&lt;/p&gt;

&lt;p&gt;Everything else, summaries, diffs, embeddings, and confidence scores are interpretations.&lt;/p&gt;

&lt;p&gt;That separation gives us:&lt;/p&gt;

&lt;p&gt;safe re-processing&lt;/p&gt;

&lt;p&gt;explainable AI outputs&lt;/p&gt;

&lt;p&gt;long-term trust in the system&lt;/p&gt;

&lt;p&gt;If your product explains change, your system can’t change the past.&lt;br&gt;
&lt;a href="https://repodoc.parbhat.dev/rl" rel="noopener noreferrer"&gt;Try Yourself&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>architecture</category>
      <category>documentation</category>
      <category>softwareengineering</category>
    </item>
  </channel>
</rss>
