<?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: Ananth Pesaru</title>
    <description>The latest articles on DEV Community by Ananth Pesaru (@awesomeananth).</description>
    <link>https://dev.to/awesomeananth</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%2F3744623%2Fd570d953-020d-459a-bad7-0146c471c2d4.jpeg</url>
      <title>DEV Community: Ananth Pesaru</title>
      <link>https://dev.to/awesomeananth</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/awesomeananth"/>
    <language>en</language>
    <item>
      <title>Inside My AI‑Native Portfolio: How I Built Dual Agents, Live Architecture Diagrams, and a Multi‑Planetary Theme Engine</title>
      <dc:creator>Ananth Pesaru</dc:creator>
      <pubDate>Mon, 02 Feb 2026 07:02:20 +0000</pubDate>
      <link>https://dev.to/awesomeananth/inside-my-ai-native-portfolio-how-i-built-dual-agents-live-architecture-diagrams-and-a-1c5h</link>
      <guid>https://dev.to/awesomeananth/inside-my-ai-native-portfolio-how-i-built-dual-agents-live-architecture-diagrams-and-a-1c5h</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/new-year-new-you-google-ai-2025-12-31"&gt;New Year, New You Portfolio Challenge Presented by Google AI&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How I Built It
&lt;/h2&gt;

&lt;p&gt;One month. That's about how long I &lt;em&gt;thought&lt;/em&gt; this would take. It ended up being a deep dive into building a &lt;strong&gt;RAG-powered dual-agent AI&lt;/strong&gt; that hosts my professional life in a vector database.&lt;/p&gt;

&lt;p&gt;It's live. And it's alive. 🚀 &lt;a href="https://portfolio-challenge-615150985064.us-central1.run.app" rel="noopener noreferrer"&gt;https://portfolio-challenge-615150985064.us-central1.run.app&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Let me walk you through what I actually built, the chaotic energy behind it, and why there's a 3D architecture engine hidden inside my "About Me" page.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Philosophy: "A Digital Brain, Not a Document"
&lt;/h2&gt;

&lt;p&gt;Most portfolios are static business cards. Name, title, "I code good." I wanted something that felt like a &lt;em&gt;place&lt;/em&gt;. A digital lab where my actual work lived, breathed, and could explain itself.&lt;/p&gt;

&lt;p&gt;The big realization was: &lt;strong&gt;naive chatbot portfolios fail.&lt;/strong&gt; They hallucinate. They miss context.&lt;br&gt;
So I built &lt;strong&gt;Akasha&lt;/strong&gt;: A RAG-grounded system that treats my resume, projects, and architecture diagrams as a searchable knowledge base.&lt;/p&gt;
&lt;h2&gt;
  
  
  Portfolio
&lt;/h2&gt;

&lt;p&gt;

&lt;/p&gt;
&lt;div class="crayons-card c-embed text-styles text-styles--secondary"&gt;
    &lt;div class="c-embed__content"&gt;
      &lt;div class="c-embed__body flex items-center justify-between"&gt;
        &lt;a href="https://portfolio-challenge-615150985064.us-central1.run.app" rel="noopener noreferrer" class="c-link fw-bold flex items-center"&gt;
          &lt;span class="mr-2"&gt;portfolio-challenge-615150985064.us-central1.run.app&lt;/span&gt;
          

        &lt;/a&gt;
      &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;




&lt;p&gt;&lt;strong&gt;Live URL&lt;/strong&gt;: &lt;a href="https://portfolio-challenge-615150985064.us-central1.run.app" rel="noopener noreferrer"&gt;https://portfolio-challenge-615150985064.us-central1.run.app&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;(Pro tip: Switch the theme to "Midnight" for the full sci-fi effect, or "Ivory" if you prefer that clean, gallery aesthetic.)&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The Brain: RAG &amp;amp; Dual-Agent Architecture
&lt;/h2&gt;

&lt;h3&gt;
  
  
  How I Did RAG (Retrieval-Augmented Generation)
&lt;/h3&gt;

&lt;p&gt;Standard LLMs don't know my specific contributions to a traffic platform in 2021. So I indexed my life.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; &lt;strong&gt;Vector Store&lt;/strong&gt;: I used &lt;strong&gt;ChromaDB&lt;/strong&gt; to store embeddings of my:

&lt;ul&gt;
&lt;li&gt;  Resume (chunked by role)&lt;/li&gt;
&lt;li&gt;  Project Technical Deep Dives (ArchDivine, VIBE, AIMS)&lt;/li&gt;
&lt;li&gt;  Architecture Principles&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Embedding Model&lt;/strong&gt;: Documents are embedded using &lt;strong&gt;Google's text-embedding-004&lt;/strong&gt;, which captures semantic meaning far better than simple keyword matching.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Retrieval Logic&lt;/strong&gt;: When you ask "How did you scale the forecasting system?", the backend:

&lt;ul&gt;
&lt;li&gt;  Generates an embedding for your query.&lt;/li&gt;
&lt;li&gt;  Retrieves the top 3 most relevant "memory chunks" from ChromaDB.&lt;/li&gt;
&lt;li&gt;  Feeds those chunks + the user query to &lt;strong&gt;Gemini 2.0 Flash&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Result? &lt;strong&gt;Zero hallucinations&lt;/strong&gt; about my work history. It cites the specific technology stack I actually used.&lt;/p&gt;

&lt;h3&gt;
  
  
  Dual-Agent System (Dharma &amp;amp; Karma)
&lt;/h3&gt;

&lt;p&gt;I split the AI persona into two specialists:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;Dharma (The Oracle)&lt;/strong&gt;: Handles the deep, architectural questions.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Karma (The Executor)&lt;/strong&gt;: Focuses on the "how"—the code, the stack.
When you start a chat, you choose an engineering level—Intern to Fellow. The AI adapts its tone, mentorship style, and technical depth accordingly.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What I'm Most Proud Of
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Reliable RAG Implementation
&lt;/h3&gt;

&lt;p&gt;This isn't a toy. It indexes 10+ years of engineering contexts.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;Performance&lt;/strong&gt;: Retrieval takes &amp;lt;100ms.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Accuracy&lt;/strong&gt;: It distinguishes between "Project Lead" and "Contributor" roles based on vector similarity.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Impact&lt;/strong&gt;: It allows the AI to explain &lt;em&gt;why&lt;/em&gt; I chose Kafka over RabbitMQ for a specific project, citing the exact constraints I documented.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  2. A "Solar System" of Themes
&lt;/h3&gt;

&lt;p&gt;Most sites have Light/Dark mode. I built a &lt;strong&gt;9-Theme Engine&lt;/strong&gt; (&lt;code&gt;themeConfig.js&lt;/code&gt;) based on planetary psychology and color theory.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;Dark Themes&lt;/strong&gt;: "Midnight" (Emerald/Pro), "Obsidian" (Cyan/Luxury), "Slate" (Blue/Tech).&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Beige Themes&lt;/strong&gt;: "Sand" (Creative), "Linen" (Warm), "Parchment" (Classic).&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;White Themes&lt;/strong&gt;: "Snow" (Minimal), "Cloud" (Clean), "Zen" (Calm).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Each theme isn't just a color swap—it changes the particle behavior, gradients, and &lt;strong&gt;reduces blue light&lt;/strong&gt; (using 400-weight colors) to prevent eye fatigue.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Vibe Engineering (Particle Physics)
&lt;/h3&gt;

&lt;p&gt;The background isn't a video. It's a custom Canvas implementation with &lt;strong&gt;6 Interaction Modes&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;Grab&lt;/strong&gt;: Particles connect to your mouse like a constellation.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Repulse&lt;/strong&gt;: Particles flee from your cursor.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Bubble&lt;/strong&gt;: Particles expand when you hover near them.
It respects &lt;code&gt;prefers-reduced-motion&lt;/code&gt; automatically.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  4. Interactive Glass Cards
&lt;/h3&gt;

&lt;p&gt;Hover over my certifications or projects.&lt;br&gt;
They use intelligent &lt;strong&gt;gradient tracking&lt;/strong&gt; and glassmorphism (backdrop-blur) to create a premium, tactile feel. The lighting follows your cursor, making the UI feel responsive and alive.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Dynamic Architecture (Mermaid on the Fly)
&lt;/h3&gt;

&lt;p&gt;This is the killer feature.&lt;br&gt;
You can ask the AI: &lt;em&gt;"Show me the architecture of the forecasting system."&lt;/em&gt;&lt;br&gt;
It doesn't just describe it. It writes &lt;strong&gt;Mermaid.js code&lt;/strong&gt; in real-time, and my &lt;code&gt;DiagramRenderer&lt;/code&gt; paints it instantly as an interactive diagram you can zoom and pan.&lt;/p&gt;

&lt;h3&gt;
  
  
  6. Graceful Degradation (The Hybrid Cloud)
&lt;/h3&gt;

&lt;p&gt;I deploy to both &lt;strong&gt;Vercel&lt;/strong&gt; (Frontend) and &lt;strong&gt;GCP Cloud Run&lt;/strong&gt; (Backend).&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;On Vercel&lt;/strong&gt;: The app detects &lt;code&gt;static&lt;/code&gt; mode and switches the chat to a client-side "Expert System".&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;On GCP&lt;/strong&gt;: It detects &lt;code&gt;full&lt;/code&gt; mode and activates WebSockets, RAG, and Gemini 2.0.
Reliability of static hosting + power of cloud computing.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  7. Global Command Palette (Cmd+K)
&lt;/h3&gt;

&lt;p&gt;I'm a keyboard power user.&lt;br&gt;
I built a global fuzzy-finder triggered by &lt;code&gt;Cmd+K&lt;/code&gt;.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Search standard navigation ("Experience", "Contact").&lt;/li&gt;
&lt;li&gt;  Execute commands ("Theme: Obsidian").&lt;/li&gt;
&lt;li&gt;  It indexes the entire site content dynamically.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  8. Resilient Component Architecture
&lt;/h3&gt;

&lt;p&gt;I wrapped major sections in custom &lt;strong&gt;Error Boundaries&lt;/strong&gt;.&lt;br&gt;
If a complex D3 chart crashes, the whole site &lt;em&gt;doesn't&lt;/em&gt; break.&lt;br&gt;
It gracefully downgrades just that specific component to a static fallback.&lt;/p&gt;

&lt;h3&gt;
  
  
  9. Smart Skeleton Loading
&lt;/h3&gt;

&lt;p&gt;I can't stand generic spinners.&lt;br&gt;
I built &lt;strong&gt;Context-Aware Skeletons&lt;/strong&gt;.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Loading a card? You see a card-shaped pulse.&lt;/li&gt;
&lt;li&gt;  Loading a chart? You see a grid pulse.
This prevents Cumulative Layout Shift (CLS) and makes the site feel instantaneous.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  10. Mobile-First "Thumb Menu"
&lt;/h3&gt;

&lt;p&gt;On mobile, the top navbar disappears.&lt;br&gt;
Instead, a &lt;strong&gt;Multi-Action Floating Button (FAB)&lt;/strong&gt; appears at the bottom right.&lt;br&gt;
It expands into a thumb-reachable menu for Chat, Search, and Settings. Desktop UX shouldn't just shrink; it should adapt.&lt;/p&gt;

&lt;h3&gt;
  
  
  11. Eye-Comfort Color Science
&lt;/h3&gt;

&lt;p&gt;I researched 500+ top portfolios to design the palettes.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;Low Saturation&lt;/strong&gt;: I maintain 30-50% saturation to prevent eye fatigue.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;400-series Colors&lt;/strong&gt;: I use 400-weight colors (e.g., Blue-400) instead of harsh 600-weights for smoother gradients.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  12. Automated SEO Injection
&lt;/h3&gt;

&lt;p&gt;I didn't manually write meta tags.&lt;br&gt;
I built a &lt;strong&gt;Structured Data Injector&lt;/strong&gt; that takes my data and generates JSON-LD Schema.org markup.&lt;br&gt;
It automatically tells Google about my "WorksFor", "AlumnusOf", and "SameAs" profiles.&lt;/p&gt;

&lt;h3&gt;
  
  
  13. ScrollSpy Navigation &amp;amp; Reading Progress
&lt;/h3&gt;

&lt;p&gt;As you scroll down the page, the navigation doesn't just sit there.&lt;br&gt;
A &lt;strong&gt;Scroll Navigator&lt;/strong&gt; updates a visual progress ring and percentage indicator in real-time.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  It calculates exact read percentage on desktop.&lt;/li&gt;
&lt;li&gt;  It handles both manual scrolling and click-to-scroll animations, ensuring the highlight never gets out of sync with the viewport.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  14. Real-Time Performance Optimized
&lt;/h3&gt;

&lt;p&gt;Despite the particles and 3D effects, the initial bundle size is just &lt;strong&gt;~220kB&lt;/strong&gt;.&lt;br&gt;
I aggressively code-split the heavy D3 and 3D libraries so they only load when you actually scroll to those sections.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;Lighthouse Score&lt;/strong&gt;: Consistently hits 99+ on Performance and Best Practices.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  15. Keyboard Accessibility
&lt;/h3&gt;

&lt;p&gt;You can navigate the entire site without a mouse.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Focus states are clearly styled.&lt;/li&gt;
&lt;li&gt;  Visual-only elements (particles) are hidden from screen readers.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  16. The Console "Conversation"
&lt;/h3&gt;

&lt;p&gt;I hid a few developer-friendly logs in the console.&lt;br&gt;
If you open DevTools, you aren't greeted with errors. You'll see clear, structured logs about the state of the WebSocket connection and health checks. I believe good engineering is invisible to the user but beautiful to the developer.&lt;/p&gt;

&lt;h3&gt;
  
  
  17. The "Hidden" Game
&lt;/h3&gt;

&lt;p&gt;I hid a developer console easter egg.&lt;br&gt;
If you open DevTools, you aren't greeted with errors. You're invited to play a game.&lt;br&gt;
There's a Konami Code listener that unlocks a "Retro Mode." (Try: &lt;code&gt;↑ ↑ ↓ ↓ ← → ← → B A&lt;/code&gt;)&lt;/p&gt;

&lt;h2&gt;
  
  
  Side Quests &amp;amp; Experiments
&lt;/h2&gt;

&lt;p&gt;In my free time, I like to build small tools that solve my own frustrations or explore weird ideas. They aren't massive production systems, but they've been great playgrounds for learning:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;&lt;a href="https://archdivine.vercel.app" rel="noopener noreferrer"&gt;ArchDivine&lt;/a&gt;&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;em&gt;What it is&lt;/em&gt;: A system design visualization tool.&lt;/li&gt;
&lt;li&gt;  &lt;em&gt;Why I built it&lt;/em&gt;: I got tired of static architecture diagrams. I wanted 3D cities.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;  &lt;strong&gt;&lt;a href="https://llmvibe.vercel.app" rel="noopener noreferrer"&gt;LLM Vibe&lt;/a&gt;&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;em&gt;What it is&lt;/em&gt;: A "Taste Test" for LLMs to compare GPT-4, Claude, and Gemini side-by-side.&lt;/li&gt;
&lt;li&gt;  &lt;em&gt;Why I built it&lt;/em&gt;: I needed a way to vibe-check models on specific prompts quickly.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;  &lt;strong&gt;&lt;a href="https://aims-ivory.vercel.app" rel="noopener noreferrer"&gt;AIMS&lt;/a&gt;&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;em&gt;What it is&lt;/em&gt;: A context-aware task manager.&lt;/li&gt;
&lt;li&gt;  &lt;em&gt;Why I built it&lt;/em&gt;: To organize tasks by "network" and "vibe" rather than just lists.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;  &lt;strong&gt;&lt;a href="https://nowiknowyou.vercel.app" rel="noopener noreferrer"&gt;NowIKnow&lt;/a&gt;&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;em&gt;What it is&lt;/em&gt;: A quantitative finance experiment exploring Phase Space Reconstruction.&lt;/li&gt;
&lt;li&gt;  &lt;em&gt;Why I built it&lt;/em&gt;: Just purely for the love of math and chaotic systems.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;h2&gt;
  
  
  The Honest Bits (What Broke)
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Design Paralysis&lt;/strong&gt;: I redesigned the "Projects" card 12 times. Literally. I finally settled on glassmorphism because it separates the content layers beautifully without feeling heavy.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Vercel vs. Python&lt;/strong&gt;: I love Vercel for frontend, but deploying a Python/FastAPI backend with ChromaDB and WebSockets there? Nightmare.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;The Fix&lt;/strong&gt;: I built a "Adaptive Deployment" system. It detects the environment and switches between "Full AI" and "Static Fallback" seamlessly.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Future Enhancements
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;Voice Integration&lt;/strong&gt;: I want to add Web Speech API so you can literally talk to Akasha.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;3D City View&lt;/strong&gt;: Turning the entire portfolio into a navigable WebGL city (inspired by ArchDivine).&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Interactive 3D Skill Galaxy&lt;/strong&gt;: I'm currently building a physics-based Force-Directed Bubble Chart where skills are "nodes" that bounce off each other, with core skills gravitating to the center.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you want the source code, want to collaborate on AI agents, or just want to geek out over system design—hit me up.&lt;/p&gt;

&lt;p&gt;Thanks for dropping by my digital universe. 🌌&lt;/p&gt;

&lt;p&gt;-- Ananth&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>googleaichallenge</category>
      <category>portfolio</category>
      <category>gemini</category>
    </item>
  </channel>
</rss>
