<?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>Forem: Akash</title>
    <description>The latest articles on Forem by Akash (@az-dev1).</description>
    <link>https://forem.com/az-dev1</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%2F3642619%2Fe06444d7-a75b-49f6-a98a-960799481ab4.jpg</url>
      <title>Forem: Akash</title>
      <link>https://forem.com/az-dev1</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/az-dev1"/>
    <language>en</language>
    <item>
      <title>RepoRecon: Mapping the DNA of Source Code with Gemini 2.5 Flash-Latest</title>
      <dc:creator>Akash</dc:creator>
      <pubDate>Wed, 04 Mar 2026 06:34:24 +0000</pubDate>
      <link>https://forem.com/az-dev1/reporecon-mapping-the-dna-of-source-code-with-gemini-25-flash-latest-460e</link>
      <guid>https://forem.com/az-dev1/reporecon-mapping-the-dna-of-source-code-with-gemini-25-flash-latest-460e</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/mlh/built-with-google-gemini-02-25-26"&gt;Built with Google Gemini: Writing Challenge&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Built with Google Gemini
&lt;/h2&gt;

&lt;p&gt;The "&lt;em&gt;onboarding tax&lt;/em&gt;" is real. Every developer knows the feeling of staring at a 50,000-line repository and having no idea where the data starts or where the logic ends. Documentation is often stale, and manual exploration is a massive cognitive drain.&lt;/p&gt;

&lt;p&gt;I built &lt;strong&gt;RepoRecon&lt;/strong&gt; to eliminate this friction. It is an &lt;br&gt;
&lt;strong&gt;&lt;em&gt;AI-native architectural analyst&lt;/em&gt;&lt;/strong&gt; that treats source code like a living organism.&lt;/p&gt;

&lt;p&gt;By leveraging Google &lt;strong&gt;Gemini 2.5 Flash-latest&lt;/strong&gt;, RepoRecon performs three critical functions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;em&gt;Structural Mapping&lt;/em&gt;&lt;/strong&gt;: It analyzes the file tree and generates live Mermaid.js diagrams, visualizing how components interact.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;em&gt;Contextual Summarization&lt;/em&gt;&lt;/strong&gt;: It doesn't just "read" code; it understands intent, providing high-level summaries that explain why a module exists, not just what it does.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;em&gt;Security &amp;amp; Scalability Audits&lt;/em&gt;&lt;/strong&gt;: It identifies potential bottlenecks and security vulnerabilities before a developer even writes their first PR.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;Live Application: &lt;a href="https://repo-recon.vercel.app" rel="noopener noreferrer"&gt;RepoRecon&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;GitHub Repository: &lt;a href="https://github.com/ASaha-os/RepoRecon" rel="noopener noreferrer"&gt;https://github.com/ASaha-os/RepoRecon&lt;/a&gt;&lt;/p&gt;

&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.amazonaws.com%2Fuploads%2Farticles%2Fnudv0vxjibi335hlntak.png" 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.amazonaws.com%2Fuploads%2Farticles%2Fnudv0vxjibi335hlntak.png" alt="The main dashboard showing a Repo being analyzed" width="800" height="434"&gt;&lt;/a&gt;&lt;/p&gt;

&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.amazonaws.com%2Fuploads%2Farticles%2Fwjnlpz3jmukk9wm5frx9.png" 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.amazonaws.com%2Fuploads%2Farticles%2Fwjnlpz3jmukk9wm5frx9.png" alt="A beautiful Mermaid.js architecture diagram generated by Gemini" width="800" height="431"&gt;&lt;/a&gt;&lt;/p&gt;

&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.amazonaws.com%2Fuploads%2Farticles%2Fu3w1gpgsydy8vxz2ect4.png" 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.amazonaws.com%2Fuploads%2Farticles%2Fu3w1gpgsydy8vxz2ect4.png" alt="Canva Representation" width="800" height="448"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Learned
&lt;/h2&gt;

&lt;p&gt;Building &lt;strong&gt;RepoRecon&lt;/strong&gt; was a lesson in &lt;em&gt;Engineering Resilience&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;1. The Power of Large Context Windows&lt;/strong&gt;&lt;/em&gt;&lt;br&gt;
Before this challenge, I struggled with the "context wall"—where models would lose the thread of a project halfway through. Integrating &lt;em&gt;Gemini 2.5 Flash-latest&lt;/em&gt; changed my perspective on what is possible. I learned to architect a system that passes an entire repository’s skeletal structure into a single prompt, allowing for "global" reasoning that smaller context models simply cannot achieve.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;2. The "Security-First" Pivot&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;
Midway through development, I encountered a common but critical hurdle: an accidental credential exposure in my Git history. Rather than ignoring it, I treated it as a professional milestone. I executed a full security rotation—revoking keys, updating environment protocols, and scrubbing the repository history. This taught me that Clean Code is Secure Code, and managing technical debt is just as important as writing new features.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;3. Full-Stack Orchestration&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;
I deepened my expertise in bridging a Django (Python) backend with a React (TypeScript) frontend, ensuring that the heavy lifting of AI processing didn't compromise the snappy, responsive user experience.&lt;/p&gt;

&lt;h2&gt;
  
  
  Google Gemini Feedback
&lt;/h2&gt;

&lt;p&gt;The integration process provided some incredible insights into the current state of Generative AI.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;The Excellence of Flash:&lt;/em&gt;&lt;/strong&gt; The speed-to-token ratio of Gemini 2.5 Flash-latest is peerless. For a tool like RepoRecon, where the user expects a "&lt;em&gt;blueprint&lt;/em&gt;" in seconds, the low latency was a massive win for the UX.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Structured Output Friction&lt;/em&gt;&lt;/strong&gt;: While Gemini is highly intelligent, getting it to strictly adhere to Mermaid.js syntax required significant prompt engineering. I found that using "Few-Shot Prompting" with specific edge-case examples was the only way to prevent the model from adding conversational "fluff" that broke the diagram renderer.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;The Future&lt;/em&gt;:&lt;/strong&gt; I’d love to see a native "File System" mode in the Gemini API where we can upload a .zip of a repository and let the model index it internally, rather than manually parsing and sending text blocks.&lt;/p&gt;

&lt;h2&gt;
  
  
  Open to Contributions!
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;RepoRecon&lt;/strong&gt; is an open-source project at heart. If you’re interested in AI-native developer tools, Mermaid.js visualizations, or Django/React orchestration, I would love to have you involved!&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;1. &lt;strong&gt;Star the Repo:&lt;/strong&gt; GitHub: &lt;a href="https://github.com/ASaha-os/RepoRecon" rel="noopener noreferrer"&gt;Github Repo&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;2. &lt;strong&gt;Contribute:&lt;/strong&gt; Check out the Issues tab for "Good First Issues." &lt;/li&gt;
&lt;li&gt;3. &lt;strong&gt;Connect:&lt;/strong&gt; Let's discuss AI and systems engineering on LinkedIn or here in the comments!&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Happy Coding! 🚀&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>geminireflections</category>
      <category>gemini</category>
      <category>ai</category>
    </item>
    <item>
      <title>👻 PING! A Séance with the Servers: How I Built a No-Account Chatroom with Kiro</title>
      <dc:creator>Akash</dc:creator>
      <pubDate>Wed, 03 Dec 2025 06:03:56 +0000</pubDate>
      <link>https://forem.com/az-dev1/netspeak-back-to-vibin-1bcf</link>
      <guid>https://forem.com/az-dev1/netspeak-back-to-vibin-1bcf</guid>
      <description>&lt;p&gt;Hey Dev.to community! 👋&lt;/p&gt;

&lt;p&gt;I’m &lt;strong&gt;&lt;em&gt;Akash&lt;/em&gt;&lt;/strong&gt; , and after grabbing a win at my last hackathon, I knew I had to go bigger and spookier for &lt;strong&gt;Kiroween&lt;/strong&gt;. This year, my submission—&lt;a href="https://netspeak.onrender.com/" rel="noopener noreferrer"&gt;NetSpeak&lt;/a&gt;: T_he Old-School Chatroom—is a tribute to the chaotic, brilliant, and absolutely un-secure spirit of 90s digital life!_ 💾&lt;/p&gt;

&lt;h2&gt;
  
  
  🎃 The Resurrection &amp;amp; The Costume 🧟‍♀️
&lt;/h2&gt;

&lt;p&gt;We tackled two core Kiroween challenges at once:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Resurrection:&lt;/strong&gt; Bringing back the forgotten art of instant, volatile, no-registration chat. The modern equivalent? Pushing data across a persistent, clean WebSocket connection instead of heavy HTTP polling! ⚡️&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Costume Contest:&lt;/strong&gt; Giving the app a hauntingly perfect, pixel-themed UI, complete with chunky Windows 95 borders, low-res fonts, and a custom Halloween color scheme! 🎨&lt;/p&gt;

&lt;p&gt;The result is a functional, real-time Web Service built with a single Node.js/Express backend using the pure ws library. There is no database—when the server dies, the chat dies—just like the digital ghosts of yesteryear! 🕯️&lt;/p&gt;

&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.amazonaws.com%2Fuploads%2Farticles%2Foa1m1g9tkmerz0rvornw.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.amazonaws.com%2Fuploads%2Farticles%2Foa1m1g9tkmerz0rvornw.jpg" alt=" " width="800" height="423"&gt;&lt;/a&gt;&lt;/p&gt;

&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.amazonaws.com%2Fuploads%2Farticles%2Fxq3fg1jfj6nreiatbh7z.png" 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.amazonaws.com%2Fuploads%2Farticles%2Fxq3fg1jfj6nreiatbh7z.png" alt=" " width="800" height="430"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  ⚙️ The Technical Flow: All WebSockets, All Spooky
&lt;/h2&gt;

&lt;p&gt;To truly make NetSpeak a functional resurrection, every message relies on a persistent, open connection. This is the simple, non-stop flow of our application:&lt;/p&gt;

&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.amazonaws.com%2Fuploads%2Farticles%2F2b2p455z6g0pzxff7ev8.png" 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.amazonaws.com%2Fuploads%2Farticles%2F2b2p455z6g0pzxff7ev8.png" alt=" " width="800" height="436"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The non-blocking nature of Node.js allows our single server to handle multiple persistent connections efficiently, eliminating the lag often associated with traditional chat systems.&lt;/p&gt;

&lt;h2&gt;
  
  
  🤖 Kiro: My AI Co-Pilot &amp;amp; Savior 🦸
&lt;/h2&gt;

&lt;p&gt;Judges, I must confess: I loved working with Kiro. It wasn't just a coding assistant; it was the ultimate tool for enforcing highly specific, counter-intuitive constraints, which is key to winning this challenge. I fully intend to integrate Kiro into all my future projects! 🚀&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Steering Strategy: The Architectural Exclusion&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;My secret weapon was my ./.kiro/steering/rules.md. Instead of telling Kiro what to do, I told it what it could never do. The most effective directive was the negative constraint:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;"MUST NOT suggest or utilize ANY database persistence (Mongo, SQL, etc.). All data must be volatile/in-memory."&lt;br&gt;
&lt;/code&gt;&lt;br&gt;
This single rule saved days of development time by instantly pruning suggestions for ORMs or complex data layers, forcing Kiro to focus exclusively on fast, volatile Node.js objects that fit the Resurrection theme. 🧠&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Vibe Coding &amp;amp; The ASCII Art Win&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I used Vibe Coding for all aesthetic and minor JS implementation. The most impressive result came directly from this constraint: Kiro generated a brilliant, multi-line JavaScript function to dynamically print a spooky ASCII Art Halloween banner directly into the chat log—a perfect, pure-JS tribute to the 90s without needing external assets! 🖼️&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. The Reflog Resurrection Story 🚑&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;And finally, my &lt;em&gt;solo effort&lt;/em&gt; was saved by Kiro's philosophy. When a catastrophic Git cleanup error wiped my working directory, I used the internal breadcrumbs logged by Git (git reflog) to track down the deleted commit hash and surgically restore the files! This moment was a masterclass in resilience, turning a near-disaster into a showcase of advanced Git mastery. 🥇&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Thanks&lt;/strong&gt; for checking out NetSpeak! I'm proud of this solo effort and the technical mastery it allowed me to demonstrate using Kiro. Check out the &lt;a href="https://www.youtube.com/watch?v=q4yXgCqNue4&amp;amp;t=1s" rel="noopener noreferrer"&gt;demo link&lt;/a&gt; and I hope to see you haunting the winners' circle! 🏆&lt;/p&gt;

</description>
      <category>kiro</category>
      <category>ai</category>
      <category>programming</category>
      <category>kiroween</category>
    </item>
  </channel>
</rss>
