<?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: Karthik Unnikrishnan</title>
    <description>The latest articles on DEV Community by Karthik Unnikrishnan (@karthikunni).</description>
    <link>https://dev.to/karthikunni</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%2F4016508%2F5df9bd7b-ed74-4d0d-a8fb-811067df752a.jpg</url>
      <title>DEV Community: Karthik Unnikrishnan</title>
      <link>https://dev.to/karthikunni</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/karthikunni"/>
    <language>en</language>
    <item>
      <title>From 4,000+ Applications to 250 Builders: Building a Multi-Agent Video Pipeline at the Google DeepMind Bangalore Hackathon</title>
      <dc:creator>Karthik Unnikrishnan</dc:creator>
      <pubDate>Mon, 03 Aug 2026 17:18:56 +0000</pubDate>
      <link>https://dev.to/karthikunni/from-4000-applications-to-250-builders-building-a-multi-agent-video-pipeline-at-the-google-4gao</link>
      <guid>https://dev.to/karthikunni/from-4000-applications-to-250-builders-building-a-multi-agent-video-pipeline-at-the-google-4gao</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Frfs54arg5g4tszpg4rkm.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Frfs54arg5g4tszpg4rkm.jpg" alt=" " width="800" height="800"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F5kw4pmi3r56psrwyray2.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F5kw4pmi3r56psrwyray2.jpg" alt=" " width="800" height="1067"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F1opyre0phqzn632kgmu5.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F1opyre0phqzn632kgmu5.jpg" alt=" " width="800" height="604"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;

&lt;p&gt;Got selected out of 4,000+ applicants for the Google DeepMind Bangalore Hackathon 2026 (250 builders made it in). My teammate  and I merged two hackathon tracks — &lt;strong&gt;Conversational Video &amp;amp; Motion with Omni Flash&lt;/strong&gt; and &lt;strong&gt;Local-First Agents with Gemma 4&lt;/strong&gt; — into one pipeline: a multi-turn conversational video orchestration agent that asks clarifying questions and iteratively refines its output, backed by on-device reasoning for state management. No trophy this time, but a working prototype and a lot of lessons. Here's the build.&lt;/p&gt;

&lt;h2&gt;
  
  
  The selection
&lt;/h2&gt;

&lt;p&gt;Google DeepMind and Cerebral Valley ran this hackathon in Bangalore, and the numbers alone made it feel different from the college-circuit events I'd been doing: &lt;strong&gt;4,000+ applications, 250 seats.&lt;/strong&gt; Getting the acceptance email didn't fully register until I was actually in the room — this wasn't a campus event anymore, it was a room full of people who build for a living.&lt;/p&gt;

&lt;h2&gt;
  
  
  The idea: merging two tracks instead of picking one
&lt;/h2&gt;

&lt;p&gt;The hackathon offered several tracks. Two stood out to me and Rohan:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Conversational Video &amp;amp; Motion with Omni Flash&lt;/strong&gt; — generate and iterate on video through natural conversation&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Local-First Agents with Gemma 4&lt;/strong&gt; — on-device reasoning and autonomous decision-making&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Instead of choosing one, we asked: what if the video generation system &lt;em&gt;was&lt;/em&gt; the agent? So we built a pipeline where:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Gemini Omni Flash + NB2 Lite&lt;/strong&gt; handle multi-turn conversational video orchestration — the system doesn't just take a prompt and spit out a video. It asks clarifying questions, holds context across turns, and iteratively refines the output based on what the user actually meant.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Gemma 4&lt;/strong&gt; runs on-device for state management and decision-making — tracking where the conversation is, what's already been generated, what still needs clarifying, and deciding the next action locally instead of round-tripping everything through a heavier model.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The result was an agent that blends reasoning, local intelligence, and multimodal generation into a single loop, rather than three separate systems bolted together.&lt;/p&gt;

&lt;h2&gt;
  
  
  What building under a deadline like this actually felt like
&lt;/h2&gt;

&lt;p&gt;Tight deadlines are a hackathon constant, but the density of the room changes the pressure. Every table around us was shipping something legitimately interesting, which is equal parts motivating and intimidating. Having a partner who's good at both brainstorming &lt;em&gt;and&lt;/em&gt; debugging (thanks, Rohan) mattered more here than in any hackathon I'd done before — there wasn't time to context-switch between "figuring out the architecture" and "fixing why the state manager is out of sync."&lt;/p&gt;

&lt;h2&gt;
  
  
  The outcome
&lt;/h2&gt;

&lt;p&gt;We didn't place. No trophy this round. But we left with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A working end-to-end prototype of the conversational video + local agent pipeline&lt;/li&gt;
&lt;li&gt;Direct exposure to how a team like DeepMind's frames the "agentic + multimodal" problem space&lt;/li&gt;
&lt;li&gt;Genuinely useful conversations with other builders working on adjacent problems&lt;/li&gt;
&lt;li&gt;Insights from &lt;strong&gt;Amit Vadi&lt;/strong&gt; and &lt;strong&gt;Ray Del Vecchio&lt;/strong&gt;, who spoke at the event&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Why I'm writing this up
&lt;/h2&gt;

&lt;p&gt;Hackathons are noisy — you build for 24-48 hours, present, and the artifact usually dies in a GitHub repo somewhere. Writing it up is partly documentation for myself (what worked, what I'd do differently) and partly a way of tracking how the &lt;em&gt;kind&lt;/em&gt; of problems I'm choosing to work on has shifted — from single-model chatbots to multi-agent, multimodal, local-first systems.&lt;/p&gt;

&lt;p&gt;If you're building anything similar — conversational video generation, on-device agent state management, or just curious about how Omni Flash and Gemma 4 play together — I'd genuinely like to compare notes. Drop a comment or find me on GitHub.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;This is part of an ongoing hackathon log — you can find the earlier entries (including two first-place wins and a near-miss with a legal-aid kiosk built on a multi-agent swarm) on &lt;a href="https://karthik-unni.github.io/blog.html" rel="noopener noreferrer"&gt;my blog&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>hackathon</category>
      <category>buildinpublic</category>
      <category>genai</category>
    </item>
    <item>
      <title>I Had Never Touched a Mobile Core Network. Then I Shipped a PR to Magma's Production Codebase</title>
      <dc:creator>Karthik Unnikrishnan</dc:creator>
      <pubDate>Sun, 05 Jul 2026 17:40:13 +0000</pubDate>
      <link>https://dev.to/karthikunni/i-had-never-touched-a-mobile-core-network-then-i-shipped-a-pr-to-magmas-production-codebase-2b23</link>
      <guid>https://dev.to/karthikunni/i-had-never-touched-a-mobile-core-network-then-i-shipped-a-pr-to-magmas-production-codebase-2b23</guid>
      <description>&lt;p&gt;A few weeks ago I had never touched a mobile core network. I didn't know what an EPC was, what AGW stood for, or why anyone would run a 4G stack on their laptop.&lt;/p&gt;

&lt;p&gt;Today I've deployed one, fixed a production bug in it, and shipped a PR that's now part of the codebase. Here's how that happened.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is Magma?
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://magmacore.org" rel="noopener noreferrer"&gt;Magma&lt;/a&gt; is a Linux Foundation Networking project — an open-source mobile core network platform that lets you deploy 4G and 5G infrastructure without expensive proprietary hardware. Think of it as the software that sits between your phone and the internet when you're on a cellular network.&lt;/p&gt;

&lt;p&gt;I joined as a mentee with basically zero telecom knowledge. What followed was one of the most intense technical learning experiences I've had.&lt;/p&gt;

&lt;h2&gt;
  
  
  Deploying the stack
&lt;/h2&gt;

&lt;p&gt;The first challenge was just getting the thing running. Magma's Access Gateway (AGW) runs inside Docker containers, and the setup involves coordinating a lot of moving parts — orchestration, subscriber databases, the gateway itself. Getting through that process from scratch forced me to actually understand what each component does, not just follow steps.&lt;/p&gt;

&lt;h2&gt;
  
  
  Finding the Ubuntu 24.04 breakage
&lt;/h2&gt;

&lt;p&gt;Once the environment was running, I started auditing the Dockerfiles. The project had accumulated dependencies that silently broke on newer Ubuntu:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;python3-distutils&lt;/code&gt; — removed in Ubuntu 24.04, so installs fail quietly&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;libssl1.1&lt;/code&gt; — not available on 24.04, replaced by &lt;code&gt;libssl3&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These aren't the kind of errors that scream at you. You have to actually check whether what the Dockerfile is requesting still exists in the target OS.&lt;/p&gt;

&lt;h2&gt;
  
  
  The fix: 14 files, one PR
&lt;/h2&gt;

&lt;p&gt;The fix wasn't just swapping package names:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Updated the &lt;code&gt;subscriberdb&lt;/code&gt; Dockerfile to use Ubuntu 24.04 as base&lt;/li&gt;
&lt;li&gt;Replaced deprecated packages with their 24.04 equivalents&lt;/li&gt;
&lt;li&gt;Updated the GitHub Actions CI workflow to test against a matrix of &lt;code&gt;ubuntu-20.04&lt;/code&gt; and &lt;code&gt;ubuntu-24.04&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Traced the breakage across 14 files where OS assumptions were baked in&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The CI matrix means future contributors will catch OS-specific breakage before it ships — that felt meaningful. Not just fixing something, but making it harder to break again.&lt;/p&gt;

&lt;h2&gt;
  
  
  What surprised me
&lt;/h2&gt;

&lt;p&gt;Open-source maintenance is a lot of archaeology. Code accumulates assumptions — about the OS, about which packages exist, about the Python version installed — and nobody documents them because at the time they were obvious. Finding them means reading carefully and asking what the code &lt;em&gt;expects&lt;/em&gt;, not just what it does.&lt;/p&gt;

&lt;p&gt;The second surprise: telecom infra sounds intimidating, but it's just software running in containers, with logs you can read like anything else.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's next
&lt;/h2&gt;

&lt;p&gt;I recently graduated from the Magma mentorship program (spring 2026 cohort) — &lt;a href="https://www.credly.com/badges/adad8227-2748-4473-8297-faa8493f1704/public_url" rel="noopener noreferrer"&gt;credential here&lt;/a&gt;. Continuing to contribute to Magma while going deeper on the ML side — agentic AI frameworks, research papers, and projects connecting both worlds.&lt;/p&gt;

&lt;p&gt;Originally posted on &lt;a href="https://karthik-unni.github.io/posts/magma-experience.html" rel="noopener noreferrer"&gt;my blog&lt;/a&gt; — I write about ML, systems, and open source there.&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>networking</category>
      <category>beginners</category>
      <category>linux</category>
    </item>
  </channel>
</rss>
