<?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: Sharan</title>
    <description>The latest articles on DEV Community by Sharan (@sharan_k11n).</description>
    <link>https://dev.to/sharan_k11n</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%2F4158155%2Fa2fb3f26-b03e-485e-9be1-448d59d66697.png</url>
      <title>DEV Community: Sharan</title>
      <link>https://dev.to/sharan_k11n</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/sharan_k11n"/>
    <language>en</language>
    <item>
      <title>AlgosPeer: An Offline, Local-Inference DSA Mock Interview Agent Built for My Peers</title>
      <dc:creator>Sharan</dc:creator>
      <pubDate>Sun, 04 Oct 2026 09:42:10 +0000</pubDate>
      <link>https://dev.to/sharan_k11n/algospeer-o96</link>
      <guid>https://dev.to/sharan_k11n/algospeer-o96</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;h1&gt;
  
  
  AlgosPeer: An Offline, Local-Inference DSA Mock Interview Agent Built for My Roommate
&lt;/h1&gt;




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

&lt;p&gt;I built &lt;strong&gt;AlgosPeer&lt;/strong&gt; for my roommate and college peer, who is grinding through early-career technical evaluations and coding phone screens for software engineering roles. &lt;/p&gt;

&lt;h3&gt;
  
  
  The Problem
&lt;/h3&gt;

&lt;p&gt;Preparing for technical coding rounds is notorious for being high-stress and isolating. My roommate was encountering three major roadblocks:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;The Cost &amp;amp; Cloud Dependency Barrier:&lt;/strong&gt; Commercial mock interview platforms (like Interviewing.io or Exponent) charge $150–$250 per session. Even third-party AI interview tools lock students behind monthly recurring subscriptions, rate-limited cloud tokens, and require constant high-speed internet.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The "Awkward Roommate Interview" Dilemma:&lt;/strong&gt; When we tried doing peer mock interviews together, it was disorganized. As the interviewer, I either didn't remember the optimal Big-O bounds on the spot, didn't know how to drop subtle hints without accidentally blurting out the solution, or lacked a standardized rubric to give actionable feedback.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The "Thinking Aloud" Deficit:&lt;/strong&gt; Solving LeetCode quietly is completely different from a real interview, where interviewers fail candidates who go silent for 5 minutes. Candidates need to build the muscle memory of articulating hypotheses, clarifying constraints, and defending algorithmic trade-offs aloud.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  The Solution
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;AlgosPeer&lt;/strong&gt; is a 100% offline, local-inference Data Structures &amp;amp; Algorithms mock interview agent engineered with a &lt;strong&gt;Dual-Mode Architecture&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;🎙️ &lt;strong&gt;Solo AI Mode:&lt;/strong&gt; An automated, voice-driven mock interviewer that guides the candidate through a realistic 5-phase FAANG evaluation pipeline (&lt;em&gt;Clarification &amp;amp; Constraints ➔ Algorithmic Approach &amp;amp; Big-O ➔ Live Coding ➔ Dry Run &amp;amp; Edge Testing ➔ Post-Interview Debrief &amp;amp; Rubric Scorecard&lt;/em&gt;). Features 3 customizable interviewer personas (&lt;em&gt;FAANG Bar Raiser&lt;/em&gt;, &lt;em&gt;Supportive Senior Mentor&lt;/em&gt;, and &lt;em&gt;Pragmatic Tech Lead&lt;/em&gt;), Web Speech API Text-to-Speech narration, and a microphone "Think Aloud" speech recognition toggle.&lt;/li&gt;
&lt;li&gt;👥 &lt;strong&gt;Roommate Co-Pilot HUD:&lt;/strong&gt; When friends practice together, the roommate opens an &lt;strong&gt;Interviewer HUD &amp;amp; Cheat Sheet&lt;/strong&gt; on their laptop or secondary screen. It equips them with:

&lt;ul&gt;
&lt;li&gt;The complete optimal JavaScript &amp;amp; Python solutions with inline annotations.&lt;/li&gt;
&lt;li&gt;Formal mathematical proofs of Time and Space complexity.&lt;/li&gt;
&lt;li&gt;Phase-by-phase &lt;strong&gt;Probing Questions&lt;/strong&gt; with side-by-side guides on &lt;em&gt;What a Good Answer Sounds Like&lt;/em&gt; vs &lt;em&gt;Red Flags&lt;/em&gt;.&lt;/li&gt;
&lt;li&gt;A &lt;strong&gt;Traps &amp;amp; Candidate Pitfalls&lt;/strong&gt; checklist to catch subtle bugs before the candidate runs tests.&lt;/li&gt;
&lt;li&gt;Live 1-to-5 star rubric sliders and a private interviewer scratchpad.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;🪜 &lt;strong&gt;Calibrated 4-Tier Hint Ladder:&lt;/strong&gt; Progressive hints (Conceptual Nudge ➔ Algorithmic Strategy ➔ Data Structure Choice ➔ Implementation Insight) that prevent giving away answers and deduct score points accordingly.&lt;/li&gt;
&lt;li&gt;⚡ &lt;strong&gt;In-Browser Code Execution Sandbox:&lt;/strong&gt; A CodeMirror 6 code editor with dark IDE theme, automated test assertion engine (pass/fail badges, execution duration in milliseconds, stdout logs capture), and custom edge-case test addition.&lt;/li&gt;
&lt;li&gt;📊 &lt;strong&gt;Post-Interview Rubric Scorecard:&lt;/strong&gt; Instant evaluation across 5 core competencies (Clarification, Algorithmic Rigor, Code Quality, Test Coverage, and Verbal Communication), animated confetti celebration for passing rounds, and a 1-click exportable Markdown debrief report.&lt;/li&gt;
&lt;/ul&gt;




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

&lt;ul&gt;
&lt;li&gt;🌐 &lt;strong&gt;Live Deployed App:&lt;/strong&gt; &lt;a href="https://sharan-s-dev.github.io/Algospeer/" rel="noopener noreferrer"&gt;https://sharan-s-dev.github.io/Algospeer/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Local Development / Offline Access:&lt;/strong&gt; &lt;a href="http://localhost:5173/" rel="noopener noreferrer"&gt;http://localhost:5173/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Curated Interview Problem Bank:&lt;/strong&gt; 8 classic, high-frequency interview patterns (Two Sum, Valid Parentheses, Best Time to Buy and Sell Stock, Longest Substring Without Repeating Characters, Merge Intervals, Number of Islands, Coin Change, and Search in Rotated Sorted Array).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Dual Perspective:&lt;/strong&gt; Candidates code in an uncluttered IDE while the interviewer / roommate HUD runs synchronously.&lt;/li&gt;
&lt;/ul&gt;




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


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/sharan-s-dev" rel="noopener noreferrer"&gt;
        sharan-s-dev
      &lt;/a&gt; / &lt;a href="https://github.com/sharan-s-dev/Algospeer" rel="noopener noreferrer"&gt;
        Algospeer
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-weekend-2026-10-01" rel="nofollow"&gt;Hacktoberfest Weekend Challenge: Build for a Friend&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;AlgosPeer: An Offline, Local-Inference DSA Mock Interview Agent Built for My Roommate&lt;/h1&gt;
&lt;/div&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;What I Built&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;I built &lt;strong&gt;AlgosPeer&lt;/strong&gt; for my roommate and college peer, who is grinding through early-career technical evaluations and coding phone screens for software engineering roles.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;The Problem&lt;/h3&gt;
&lt;/div&gt;
&lt;p&gt;Preparing for technical coding rounds is notorious for being high-stress and isolating. My roommate was encountering three major roadblocks:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;The Cost &amp;amp; Cloud Dependency Barrier:&lt;/strong&gt; Commercial mock interview platforms (like Interviewing.io or Exponent) charge $150–$250 per session. Even third-party AI interview tools lock students behind monthly recurring subscriptions, rate-limited cloud tokens, and require constant high-speed internet.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The "Awkward Roommate Interview" Dilemma:&lt;/strong&gt; When we tried doing peer mock interviews together, it was disorganized. As the interviewer, I either didn't remember the optimal Big-O bounds on the spot, didn't know how to drop subtle hints without accidentally blurting…&lt;/li&gt;
&lt;/ol&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/sharan-s-dev/Algospeer" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;🔗 &lt;strong&gt;GitHub Repository:&lt;/strong&gt; &lt;a href="https://github.com/sharan-s-dev/Algospeer" rel="noopener noreferrer"&gt;https://github.com/sharan-s-dev/Algospeer&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The complete source code is open source and structured as a clean, modular React 19 + TypeScript + Vite project:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Repository Structure:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;src/services/localLLM.ts&lt;/code&gt;: Multi-backend offline inference engine (WebGPU WebLLM + Ollama + LM Studio + Offline Heuristic fallback).&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;src/services/codeRunner.ts&lt;/code&gt;: Sandboxed in-browser JavaScript/Python test assertion runner with timeout and console capture.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;src/services/speechService.ts&lt;/code&gt;: Native Web Speech API speech synthesis (TTS) &amp;amp; continuous voice recognition (STT).&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;src/services/evaluator.ts&lt;/code&gt;: 5-dimension competency rubric calculator and markdown debrief generator.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;src/components/RoommateCribSheet.tsx&lt;/code&gt;: The peer interviewer HUD with cheat sheets, probing questions, and live rating controls.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;src/components/Header.tsx&lt;/code&gt;, &lt;code&gt;ProblemPanel.tsx&lt;/code&gt;, &lt;code&gt;CodeEditorPanel.tsx&lt;/code&gt;, &lt;code&gt;TestResultsPanel.tsx&lt;/code&gt;, &lt;code&gt;HintLadderModal.tsx&lt;/code&gt;, &lt;code&gt;WhiteboardPanel.tsx&lt;/code&gt;, &lt;code&gt;ScorecardModal.tsx&lt;/code&gt;, &lt;code&gt;SettingsModal.tsx&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;




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

&lt;p&gt;AlgosPeer is built entirely around &lt;strong&gt;open-source AI and client-side inference&lt;/strong&gt;:&lt;/p&gt;

&lt;h3&gt;
  
  
  1. In-Browser Local Inference with WebLLM &amp;amp; WebGPU
&lt;/h3&gt;

&lt;p&gt;We integrated &lt;code&gt;@mlc-ai/web-llm&lt;/code&gt; to execute open-weight LLMs directly inside the browser using WebGPU acceleration:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Supported Models:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;Qwen2.5-Coder-1.5B-Instruct-q4f16_1-MLC&lt;/code&gt; (Fast, lightweight coding model requiring ~1GB VRAM).&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;Llama-3.2-1B-Instruct-q4f16_1-MLC&lt;/code&gt; (Ultra-compact mobile/laptop-friendly model, ~800MB).&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;SmolLM2-1.7B-Instruct-q4f16_1-MLC&lt;/code&gt; (High efficiency on commodity laptops).&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;Qwen2.5-Coder-7B-Instruct-q4f16_1-MLC&lt;/code&gt; (Deep algorithmic reasoning for machines with 6GB+ VRAM).&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Zero Cloud Footprint:&lt;/strong&gt; Model weights are downloaded directly from open-source repositories and cached in browser IndexedDB. Once cached, the entire interview runs 100% offline—even with Wi-Fi turned off.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  2. Local Model Server Integration (Ollama &amp;amp; LM Studio)
&lt;/h3&gt;

&lt;p&gt;For developers who already run models on their local machine:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;1-click connection to &lt;strong&gt;Ollama&lt;/strong&gt; (&lt;code&gt;http://localhost:11434&lt;/code&gt;) and &lt;strong&gt;LM Studio / LocalAI&lt;/strong&gt; (&lt;code&gt;http://localhost:1234/v1&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;Auto-fetches installed models via &lt;code&gt;/api/tags&lt;/code&gt; so candidates can use their own fine-tuned or quantized models (such as &lt;code&gt;qwen2.5-coder:7b&lt;/code&gt;, &lt;code&gt;llama3.2:3b&lt;/code&gt;, or &lt;code&gt;deepseek-r1:7b&lt;/code&gt;).&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  3. Zero-Setup Offline Heuristic Fallback Engine
&lt;/h3&gt;

&lt;p&gt;To ensure any student with an older laptop or integrated GPU can immediately practice without downloading multi-gigabyte models, we engineered an embedded deterministic state-machine expert evaluator. It analyzes question keywords, verifies Big-O expressions, inspects candidate code structure, and triggers phase-appropriate dialogue instantly.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Modern Web Architecture
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Frontend Stack:&lt;/strong&gt; React 19, TypeScript, Vite, Tailwind CSS, PostCSS.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Code Editor:&lt;/strong&gt; CodeMirror 6 (&lt;code&gt;@uiw/react-codemirror&lt;/code&gt;) customized with One Dark theme, line numbers, bracket auto-closing, and &lt;code&gt;Ctrl + Enter&lt;/code&gt; test triggers.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Audio &amp;amp; Voice:&lt;/strong&gt; Browser-native Web Speech API for zero-latency speech synthesis with customizable pitch/speed and real-time microphone transcript streaming.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Visuals &amp;amp; UX:&lt;/strong&gt; Production-grade developer workbench (Linear/CoderPad dark engineering palette, tactile controls, JetBrains Mono typography, Unix execution terminal with diff inspection, and VS Code bottom status bar).&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;Demo Video&lt;/p&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/s_0VLvICWgc" width="710" height="399"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

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

&lt;p&gt;Open innovation is the cornerstone of why this project is possible:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Democratizing High-Stakes Career Preparation:&lt;/strong&gt;&lt;br&gt;
Closed APIs (OpenAI, Anthropic, Google Gemini Cloud) gate intelligent tutoring behind paywalls, subscription tiers, and per-token pricing. For cash-strapped college students or job seekers from underrepresented backgrounds, spending $20/month per tool or $200 for mock interviews is prohibitive. Open-weight models (Qwen 2.5 Coder, Llama 3.2, SmolLM) dismantle this economic barrier, giving every student access to a world-class FAANG bar raiser on their own hardware for free.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Total Privacy &amp;amp; Psychological Safety:&lt;/strong&gt;&lt;br&gt;
Technical interviews are intimidating. Candidates often feel self-conscious when making mistakes or asking elementary questions. Because AlgosPeer runs locally with open-source models, candidate speech transcripts, whiteboard drawings, and buggy early code never leave the local device. There is no telemetry, no cloud logging, and no fear of judgment.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Offline Resilience:&lt;/strong&gt;&lt;br&gt;
Students frequently study in transit, in basements, in libraries with firewalled networks, or in areas with intermittent connectivity. Closed APIs completely fail the moment an internet connection drops. Open local inference guarantees that an interview session never stutters, drops, or times out.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;




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

&lt;p&gt;This project was architected, scaffolded, built, debugged, and verified with &lt;strong&gt;Antigravity IDE&lt;/strong&gt; using pair programming:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Initialized a full-featured React 19 + TypeScript + Vite project.&lt;/li&gt;
&lt;li&gt;Implemented comprehensive TypeScript interfaces, problem datasets with Big-O proofs, sandbox execution runners, Web Speech integrations, and CodeMirror 6 setups.&lt;/li&gt;
&lt;li&gt;Resolved build and bundler constraints (&lt;code&gt;verbatimModuleSyntax&lt;/code&gt;, unused locals, and Tailwind CSS compilation pipelines).&lt;/li&gt;
&lt;li&gt;Embedded peer-specific interview features like the Roommate Interviewer HUD and Hint Ladder.&lt;/li&gt;
&lt;/ul&gt;




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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Build for a Friend&lt;/strong&gt; (Engineered specifically for my roommate and peers preparing for early-career SWE technical evaluations).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Most Impactful Open-Source AI Project&lt;/strong&gt; (Empowering students with 100% offline, local-inference AI mock interviews using WebGPU, WebLLM, and Ollama).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Best Developer Tool / Career Tech&lt;/strong&gt; (Bridging the gap between silent LeetCode practice and collaborative, vocal technical interviews).&lt;/li&gt;
&lt;/ul&gt;

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