<?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: Sundar Raj</title>
    <description>The latest articles on DEV Community by Sundar Raj (@rajsundar7).</description>
    <link>https://dev.to/rajsundar7</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%2F560903%2Fd633a07c-ef2f-4f7a-8042-ffaa402487f7.jpeg</url>
      <title>DEV Community: Sundar Raj</title>
      <link>https://dev.to/rajsundar7</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/rajsundar7"/>
    <language>en</language>
    <item>
      <title>From Circuits to Conversations: Deploying My First AI Agent on Cloud Run</title>
      <dc:creator>Sundar Raj</dc:creator>
      <pubDate>Thu, 20 Aug 2026 06:22:34 +0000</pubDate>
      <link>https://dev.to/rajsundar7/from-circuits-to-conversations-deploying-my-first-ai-agent-on-cloud-run-3ei</link>
      <guid>https://dev.to/rajsundar7/from-circuits-to-conversations-deploying-my-first-ai-agent-on-cloud-run-3ei</guid>
      <description>&lt;p&gt;I spend most of my working days a few layers below software — designing GaN MOSFET power stages, sensing circuits, and auxiliary supplies for automotive and data center hardware. So when I joined Google's Accelerate AI with Cloud Run (Gen AI Academy APAC, Cohort 3), I wasn't sure how much of it would click. Turns out, building an AI agent isn't so different from designing a well-behaved circuit: you define clear inputs, constrain the outputs, and make sure nothing misbehaves under edge cases.&lt;/p&gt;

&lt;p&gt;The Build: An AI Barista That Doesn't Hallucinate&lt;/p&gt;

&lt;p&gt;The project was a "Coffee Shop Journey" — Track 1 tasked me with building a customer-facing AI Barista agent. The requirements were simple to state, but the details mattered:&lt;/p&gt;

&lt;p&gt;The agent should recommend drinks and pastries only from an actual menu — no invented items.&lt;br&gt;
It should ask exactly one clarifying question when a request is vague ("something sweet" → hot or cold?).&lt;br&gt;
It should respect dietary constraints like dairy-free tags and allergens.&lt;/p&gt;

&lt;p&gt;I used Google's Agent Development Kit (ADK) to define the agent logic with LlmAgent, backed by Gemini. The interesting design choice was grounding: instead of pasting the entire menu into the system prompt, I gave the agent a get_menu() tool that reads a local menu.json file at runtime. It's the same instinct I'd apply in hardware — don't hardcode what can be looked up dynamically. It keeps the prompt lean and means the menu can change without redeploying anything (in production, you'd swap this for Firestore).&lt;/p&gt;

&lt;p&gt;Wrapping It in Streamlit, Deploying to Cloud Run&lt;/p&gt;

&lt;p&gt;The agent got a Streamlit front end — a chat interface with a sidebar showing the live menu, tags, and allergens. Deployment was where Cloud Run's source-based deploy genuinely surprised me: no Dockerfile, no manual container config.&lt;/p&gt;

&lt;p&gt;bash&lt;br&gt;
gcloud run deploy coffee-barista --source . --region asia-south1 ...&lt;/p&gt;

&lt;p&gt;Cloud Run's Buildpacks inspected the directory, found requirements.txt and the Python files, and built a production container automatically. As someone used to bring-up involving actual hardware validation, watching a full build-and-deploy pipeline finish in under five minutes was satisfying in a different way.&lt;/p&gt;

&lt;p&gt;Security Wasn't an Afterthought&lt;/p&gt;

&lt;p&gt;One detail I appreciated: the codelab pushed least-privilege IAM from the start. Instead of running the service under the default Compute Engine service account (which carries broad Editor permissions), I created a dedicated barista-agent-sa scoped to exactly one role — roles/aiplatform.user. If the app is ever compromised, the blast radius is contained to "can call Gemini," not "can touch the whole project." It's the same defense-in-depth thinking I apply to protection circuits — isolate the fault, don't let it propagate.&lt;/p&gt;

&lt;p&gt;What's Live&lt;/p&gt;

&lt;p&gt;The agent is deployed and answering questions in real time:&lt;/p&gt;

&lt;p&gt;coffee-barista-445013685264.asia-south1.run.app&lt;/p&gt;

&lt;p&gt;Ask it for something dairy-free, something vague, or something that isn't on the menu — it holds its ground.&lt;/p&gt;

&lt;p&gt;Why This Matters to Me&lt;/p&gt;

&lt;p&gt;I work on hardware that increasingly exists to serve AI workloads — power delivery for AI servers, sensing for safety-critical systems. Understanding the software layer that actually runs on top of that hardware, even at a beginner level, makes me a better engineer at the board level too. Knowing how an agent grounds itself, what a token-cost tradeoff looks like, or why an IAM role matters isn't just software trivia — it's context that shapes better system-level design decisions.&lt;/p&gt;

&lt;p&gt;On to Track 2 next: using Gemma 4 and BigQuery to help this coffee shop pick its next physical location.&lt;/p&gt;

</description>
      <category>agents</category>
      <category>ai</category>
      <category>cloud</category>
      <category>software</category>
    </item>
  </channel>
</rss>
