<?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: Ganesh R Dhakali</title>
    <description>The latest articles on DEV Community by Ganesh R Dhakali (@ganeshrd_22).</description>
    <link>https://dev.to/ganeshrd_22</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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4102900%2F5c155e5b-2cee-42e2-beca-942b219e220e.png</url>
      <title>DEV Community: Ganesh R Dhakali</title>
      <link>https://dev.to/ganeshrd_22</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ganeshrd_22"/>
    <language>en</language>
    <item>
      <title>Meet the Builder: How I went from intern to shipping a production RAG assistant</title>
      <dc:creator>Ganesh R Dhakali</dc:creator>
      <pubDate>Mon, 31 Aug 2026 14:36:56 +0000</pubDate>
      <link>https://dev.to/ganeshrd_22/meet-the-builder-how-i-went-from-intern-to-shipping-a-production-rag-assistant-2hbg</link>
      <guid>https://dev.to/ganeshrd_22/meet-the-builder-how-i-went-from-intern-to-shipping-a-production-rag-assistant-2hbg</guid>
      <description>&lt;h2&gt;
  
  
  Contents
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Who I am&lt;/li&gt;
&lt;li&gt;How I got here&lt;/li&gt;
&lt;li&gt;What I build every day&lt;/li&gt;
&lt;li&gt;The bug I'm proudest of fixing&lt;/li&gt;
&lt;li&gt;Why the Gen AI Academy fits how I build&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  - Where I want to take this next
&lt;/h2&gt;

&lt;h2&gt;
  
  
  Who I am
&lt;/h2&gt;

&lt;p&gt;I'm &lt;strong&gt;Ganesh Dhakali&lt;/strong&gt;, a Gen AI full-stack developer based in Bengaluru. I build AI-powered products — the part of the stack where a large language model stops being a demo and becomes something real users depend on.&lt;/p&gt;

&lt;p&gt;My north star as an engineer is simple: &lt;strong&gt;the data is the moat, the AI is the interface.&lt;/strong&gt; A model is only as good as the context you can put in front of it, and getting that context right — retrieval, grounding, latency, scale — is the work I actually enjoy.&lt;/p&gt;

&lt;h2&gt;
  
  
  How I got here
&lt;/h2&gt;

&lt;p&gt;I started as an intern and converted to a full-time engineer on the strength of one thing: shipping an AI feature end to end, from an empty database to a streaming response in a user's browser. I didn't come from a research background or a big-tech pipeline. I learned by building the whole thing myself — backend, frontend, the data plumbing in between — and debugging it in production when it broke.&lt;/p&gt;

&lt;p&gt;That "figure it out and ship it" path is the one I want to keep walking. I like owning a feature from architecture to deployment, and I like problems where the answer isn't in a tutorial.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I build every day
&lt;/h2&gt;

&lt;p&gt;I build &lt;strong&gt;RAG-powered conversational assistants&lt;/strong&gt; — systems that let people ask plain-language questions and get grounded answers drawn from a real knowledge base, not made-up ones.&lt;/p&gt;

&lt;p&gt;Under the hood, this is the kind of system I love working on:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A &lt;strong&gt;retrieval-augmented generation&lt;/strong&gt; pipeline orchestrated as a multi-node graph — session validation, intent classification, retrieval, context assembly, streamed response, persistence.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Vector search over pgvector&lt;/strong&gt;, with an embedding pipeline that turns a large knowledge base into something a model can actually reason over.&lt;/li&gt;
&lt;li&gt;An &lt;strong&gt;LLM layer I deliberately kept swappable&lt;/strong&gt; — one that runs a local model in development and a hosted frontier model in production, switched by a single config value, so the model stays a replaceable part rather than something welded into the code.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Real-time token streaming&lt;/strong&gt; to the frontend, so answers feel alive instead of arriving in one lump.
I care about doing this the disciplined way: secure APIs, proper auth, clean Git flow, separate QA and production environments, and logging the model's calls so I can actually see what it's doing.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The bug I'm proudest of fixing
&lt;/h2&gt;

&lt;p&gt;Here's the war story I tell people, because it captures why I like this work.&lt;/p&gt;

&lt;p&gt;After a bulk load of embeddings, my vector search started returning &lt;strong&gt;zero results&lt;/strong&gt; — no error, no exception, no stack trace. Everything &lt;em&gt;looked&lt;/em&gt; fine. I traced it down to the vector index having been built on an empty table, which left its internal clusters meaningless, so every similarity query silently matched nothing.&lt;/p&gt;

&lt;p&gt;The fix was small once I understood it — rebuild the index after every bulk load — but &lt;em&gt;finding&lt;/em&gt; it meant reasoning about how the database actually organizes vectors, not just how the API is supposed to behave. That's the layer I like living in: close enough to the metal to know why something breaks, not just that it did.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why the Gen AI Academy fits how I build
&lt;/h2&gt;

&lt;p&gt;When I looked at the &lt;strong&gt;Google Cloud Gen AI Academy APAC&lt;/strong&gt;, it didn't feel like a course — it felt like a map of exactly where my own work is heading.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Agents.&lt;/strong&gt; I already orchestrate my pipeline as a graph of steps. Thinking about those steps as first-class, deployable &lt;strong&gt;agents&lt;/strong&gt; is the natural next evolution of how I build — and it's a direction I want to go deeper on.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Model Context Protocol (MCP).&lt;/strong&gt; Right now every data source in my systems is a bespoke integration I hand-wrote. &lt;strong&gt;MCP&lt;/strong&gt; is the standard I'd been wanting: expose a tool or a data source once, and let any agent use it through a common interface. For a product that keeps adding new kinds of data, that's the clean way to scale — and it's exactly the kind of infrastructure problem I want to work on.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AI-ready databases.&lt;/strong&gt; My whole retrieval layer lives on Postgres and pgvector, so a production-grade, vector-native database tier isn't a new concept for me — it's the tier my current stack grows into. Treating embeddings as a real database workload rather than a bolted-on extension is how I already think.
That's what drew me in: this isn't a program that would teach me a topic from scratch. It lines up, point for point, with the systems I already build and the ones I want to build next.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Where I want to take this next
&lt;/h2&gt;

&lt;p&gt;I want to keep building &lt;strong&gt;production AI, not prototypes&lt;/strong&gt; — systems that real people use, that scale from a small knowledge base to a large one, that stay maintainable when the model or the data source changes underneath them.&lt;/p&gt;

&lt;p&gt;Concretely, the directions I'm most excited about are the ones this program is built around: agent-based architectures, MCP-driven integrations, and databases that treat vectors as a first-class citizen. I came into this able to ship a RAG assistant on my own. What I'm after now is the vocabulary, the tooling, and the scale patterns to build the next one &lt;em&gt;right&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;If that's the kind of work you do too, I'd love to compare notes.&lt;/p&gt;

&lt;p&gt;— &lt;strong&gt;Ganesh Dhakali&lt;/strong&gt; · &lt;a href="//www.linkedin.com/in/ganesh-dhakali-2218g"&gt;linkedin&lt;/a&gt;&lt;/p&gt;

</description>
      <category>googlecloud</category>
      <category>machinelearning</category>
      <category>genai</category>
      <category>ai</category>
    </item>
  </channel>
</rss>
