<?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: Manwitha Gopal Sunkari</title>
    <description>The latest articles on DEV Community by Manwitha Gopal Sunkari (@manwitha_gopa_sunkar).</description>
    <link>https://dev.to/manwitha_gopa_sunkar</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%2F3910130%2F25bfff69-a94b-47d1-ab8b-58671a58e67b.png</url>
      <title>DEV Community: Manwitha Gopal Sunkari</title>
      <link>https://dev.to/manwitha_gopa_sunkar</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/manwitha_gopa_sunkar"/>
    <language>en</language>
    <item>
      <title>DryRunBuddy: A Zero-Spoiler Socratic DSA Coach Powered by Local AI</title>
      <dc:creator>Manwitha Gopal Sunkari</dc:creator>
      <pubDate>Mon, 05 Oct 2026 08:48:31 +0000</pubDate>
      <link>https://dev.to/manwitha_gopa_sunkar/dryrunbuddy-a-zero-spoiler-socratic-dsa-coach-powered-by-local-ai-20ji</link>
      <guid>https://dev.to/manwitha_gopa_sunkar/dryrunbuddy-a-zero-spoiler-socratic-dsa-coach-powered-by-local-ai-20ji</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-weekend-2026-10-01"&gt;Hacktoberfest Weekend Challenge: Build for a Friend&lt;/a&gt;&lt;/em&gt;(&lt;/p&gt;

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

&lt;p&gt;Preparing for technical interviews usually involves staring at a LeetCode problem, getting stuck, and asking an AI for a hint. The problem? AI models almost always over-explain and spit out the entire optimal code block, completely robbing the developer of the learning process and the "aha!" moment. I built DryRunBuddy to flip this script.&lt;/p&gt;

&lt;p&gt;I built this specifically for a close friend who is currently grinding for software engineering interviews. DryRunBuddy acts as a firm, supportive Socratic interviewer that lives directly in your browser. Instead of giving away the answer, it takes their written intuition or code and acts in three stages:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Socratic Coach:&lt;/strong&gt; Analyzes their logic, estimates complexity, provides a concrete edge-case where their logic breaks, and asks a mock follow-up question.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Code Debugger:&lt;/strong&gt; Analyzes their naive attempt line-by-line and provides a patched snippet of just the bugs.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Optimal Mentor:&lt;/strong&gt; Once they solve it, provides the optimal solution and a step-by-step dry-run execution trace.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;It comes pre-loaded with a curated studio of &lt;strong&gt;10 classic DSA patterns&lt;/strong&gt; containing intentional bugs, plus a &lt;strong&gt;Custom Problem&lt;/strong&gt; option. It even generates a markdown cheat-sheet and exports the entire session for their Obsidian vault!&lt;/p&gt;

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

&lt;p&gt;🧠 &lt;strong&gt;Try it live:&lt;/strong&gt; &lt;a href="https://sunkarimanwithagopal.github.io/dryrun-buddy/" rel="noopener noreferrer"&gt;sunkarimanwithagopal.github.io/dryrun-buddy/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;(Note: To get the actual zero-latency AI coaching, you must run Ollama locally with `OLLAMA_ORIGINS="&lt;/em&gt;"`. If you just want to see the UI and curated curriculum, toggle the "Instant Offline Engine" checkbox!)*&lt;/p&gt;

&lt;h3&gt;
  
  
  📸 Screenshots
&lt;/h3&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fux9dzzovfkif8ivf2k6l.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fux9dzzovfkif8ivf2k6l.png" alt=" " width="800" height="788"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;The DSA Studio:&lt;/strong&gt; The main interface featuring the curated problem list and the Quick Revision Notes.&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fahvve7uh9dtszpaihoat.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fahvve7uh9dtszpaihoat.png" alt=" " width="800" height="469"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Socratic Coaching:&lt;/strong&gt; The agent breaks down the intuition without revealing the solution.&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fzh3buzv8kr17hm83j2t8.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fzh3buzv8kr17hm83j2t8.png" alt=" " width="800" height="494"&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fignst7x9pbi2fbrvwiil.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fignst7x9pbi2fbrvwiil.png" alt=" " width="800" height="506"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Code
&lt;/h2&gt;

&lt;p&gt;{&lt;a href="https://github.com/SunkariManwithaGopal/dryrun-buddy" rel="noopener noreferrer"&gt;https://github.com/SunkariManwithaGopal/dryrun-buddy&lt;/a&gt;}&lt;/p&gt;

&lt;p&gt;DryRunBuddy is a privacy-first, zero-spoiler AI coach built for the Hacktoberfest 'Build for a Friend' challenge. It combines a vanilla web stack with Google's open-weight Gemma 2 model via Ollama to bring Socratic teaching directly to your local machine.&lt;/p&gt;

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

&lt;p&gt;DryRunBuddy is built on a deliberately lightweight, portable stack that requires zero backend infrastructure:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Core App:&lt;/strong&gt; 100% Vanilla HTML, JavaScript, and TailwindCSS (via CDN). It is essentially a single-page application (&lt;code&gt;index.html\&lt;/code&gt;) that can run from anywhere.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AI Planning Engine:&lt;/strong&gt; The brain of the operation is &lt;strong&gt;Gemma 2 (2B)&lt;/strong&gt;, Google's open-weight model. The app communicates directly with a local Ollama server using REST API calls. &lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Prompt Engineering:&lt;/strong&gt; I crafted highly rigid system prompts to force Gemma to respond in strict JSON formats. Depending on the current stage (Socratic, Debug, Solution), Gemma is explicitly instructed to &lt;em&gt;never&lt;/em&gt; write full solution code unless the final stage is unlocked.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  How It Works Under The Hood
&lt;/h3&gt;

&lt;p&gt;Here is the agent's decision flow:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Input:&lt;/strong&gt; The user selects a problem (or pastes a custom one), chooses their language (Java/C++/Python), and inputs their intuition/code.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Context Assembly:&lt;/strong&gt; The browser packages the problem statement, user approach, and code into a strict system prompt.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Local Inference:&lt;/strong&gt; The payload is sent to &lt;code&gt;http://localhost:11434/api/generate\&lt;/code&gt; (Ollama running Gemma 2).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Structured JSON Parsing:&lt;/strong&gt; The UI parses Gemma's JSON output (handling edge-cases and Markdown formatting) to populate the coaching UI.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fallback Safety:&lt;/strong&gt; If Ollama isn't running, the app gracefully falls back to an offline deterministic mode so the user can still practice the curated curriculum.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Why Does Open Innovation Matter?
&lt;/h2&gt;

&lt;p&gt;Open innovation was absolutely critical to making this tool actually useful for my friend:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Absolute Privacy:&lt;/strong&gt; Interview prep involves pasting proprietary or private assessment questions. Running Gemma locally means zero data is ever sent to a corporate cloud. My friend's data stays exclusively on their machine.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Zero Cost:&lt;/strong&gt; Grinding DSA takes hundreds of hours. A closed API would cost money per token and add up fast. Running open-weight Gemma locally is 100% free forever.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Control &amp;amp; Speed:&lt;/strong&gt; Open models allowed me to pick a lightweight, extremely fast model (Gemma 2:2B) that runs flawlessly on a standard laptop with zero latency and no internet connection required.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  My Agent Session
&lt;/h2&gt;

&lt;p&gt;Building this was an incredible pair-programming experience with my AI agent! We worked together to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Write the PowerShell commands to automatically boot up Ollama with CORS and pull the &lt;code&gt;gemma2:2b\&lt;/code&gt; model.&lt;/li&gt;
&lt;li&gt;Hunt down a tricky Javascript JSON-parsing bug that was breaking our UI. The agent used terminal scripts to isolate the exact line and patch the bracket!&lt;/li&gt;
&lt;li&gt;Implement the "Custom Problem" mode and a context-aware "Quick Revision Notes" data structure cheat-sheet feature in under 20 minutes!&lt;/li&gt;
&lt;/ul&gt;

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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Voice-to-Text Coaching:&lt;/strong&gt; Allowing the user to speak their intuition out loud using the Web Speech API, mimicking a real interview setting.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Support for More Languages:&lt;/strong&gt; Expanding beyond Java, C++, and Python to support Go, Rust, and JavaScript.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Prize Categories
&lt;/h2&gt;

&lt;p&gt;I am entering the following partner categories:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Best Use of Gemma:&lt;/strong&gt; DryRunBuddy uses Google's open-weight model, Gemma 2 (2B), as the exclusive AI reasoning engine to parse intuition, generate structured JSON Socratic feedback, and debug code locally.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>devchallenge</category>
      <category>weekendchallenge</category>
      <category>hf26challenge</category>
      <category>opensource</category>
    </item>
  </channel>
</rss>
