<?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: Liyander Rishwanth</title>
    <description>The latest articles on DEV Community by Liyander Rishwanth (@liyander_rishwanth_52c5f7).</description>
    <link>https://dev.to/liyander_rishwanth_52c5f7</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%2F4192232%2F4ffc8da3-05ba-4ea0-b069-0b9e2806ddfe.jpg</url>
      <title>DEV Community: Liyander Rishwanth</title>
      <link>https://dev.to/liyander_rishwanth_52c5f7</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/liyander_rishwanth_52c5f7"/>
    <language>en</language>
    <item>
      <title>Building an AI Interviewer That Teaches Instead of Just Evaluating</title>
      <dc:creator>Liyander Rishwanth</dc:creator>
      <pubDate>Sun, 18 Oct 2026 14:13:17 +0000</pubDate>
      <link>https://dev.to/liyander_rishwanth_52c5f7/building-an-ai-interviewer-that-teaches-instead-of-just-evaluating-59ii</link>
      <guid>https://dev.to/liyander_rishwanth_52c5f7/building-an-ai-interviewer-that-teaches-instead-of-just-evaluating-59ii</guid>
      <description>&lt;p&gt;Most interview preparation tools focus on answering more questions. But I wanted to explore a different question:&lt;/p&gt;

&lt;p&gt;What happens when an interview preparation tool focuses on helping users understand their mistakes?&lt;/p&gt;

&lt;p&gt;That idea led me to build N.O.V.A., an AI-based technical interview preparation platform.&lt;/p&gt;

&lt;h2&gt;
  
  
  The learning loop
&lt;/h2&gt;

&lt;p&gt;Its learning workflow follows six stages:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Ask a technical question appropriate to the candidate's level.&lt;/li&gt;
&lt;li&gt;Evaluate the response for accuracy, clarity, completeness, and reasoning.&lt;/li&gt;
&lt;li&gt;Ask adaptive follow-up questions.&lt;/li&gt;
&lt;li&gt;Explain the underlying concept when the candidate gets stuck.&lt;/li&gt;
&lt;li&gt;Track weaknesses and misconceptions.&lt;/li&gt;
&lt;li&gt;Use that performance history to build a personalized preparation plan.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;One feature I'm particularly interested in is the "I don't know" mode.&lt;/p&gt;

&lt;p&gt;It's designed to turn uncertainty into a learning opportunity. The system explains the concept and then gives the candidate another opportunity to demonstrate understanding.&lt;/p&gt;

&lt;p&gt;The larger goal is to move away from memorizing answers and toward understanding technical concepts.&lt;/p&gt;

&lt;h2&gt;
  
  
  How it's built
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Stack.&lt;/strong&gt; N.O.V.A. is a Next.js app (App Router, React 19, Tailwind) with SQLite as the database: the built-in &lt;code&gt;node:sqlite&lt;/code&gt; locally, and Turso (libSQL embedded replica) in the cloud, so the app can redeploy on a host with an ephemeral disk without losing data. Models are served through NVIDIA's OpenAI-compatible API, and the API key is encrypted at rest and never sent to the browser.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;One prompt per job, not one giant prompt.&lt;/strong&gt; Instead of a single "be an interviewer" prompt, each role is a separate agent with its own prompt file: interviewer, question generator, answer evaluator, teacher, coding interviewer, code reviewer, system-design evaluator, hiring committee, and so on. Each returns strict JSON, which makes outputs testable and lets me swap or tune one agent without breaking the others.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What "I don't know" actually does.&lt;/strong&gt; When a candidate says they don't know, the attempt is recorded with a score of 0 (so it still counts against that topic), and the teacher agent produces a structured lesson rather than free text:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;a plain-language explanation&lt;/li&gt;
&lt;li&gt;a detailed technical explanation&lt;/li&gt;
&lt;li&gt;a real-world example&lt;/li&gt;
&lt;li&gt;an optional diagram (layers, flow, or sequence)&lt;/li&gt;
&lt;li&gt;a concise interview-ready answer&lt;/li&gt;
&lt;li&gt;common mistakes&lt;/li&gt;
&lt;li&gt;follow-up questions&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The candidate can then retry the question, continue, or get a similar one. The lesson is saved to their notes, and the miss goes into a mistake notebook with spaced-repetition reviews (1 → 2 → 4 → 7 → 15 → 30 days).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Mastery and readiness.&lt;/strong&gt; Every scored answer updates a per-topic mastery value with an exponential moving average, so recent performance counts more than old performance. Weak topics (low mastery) drive the next daily plan, and a readiness score is recalculated after each session.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Designing for latency.&lt;/strong&gt; Reasoning models were the biggest UX problem: some calls took 20–70 seconds and truncated JSON. What helped:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A "fast" mode that turns model thinking down where supported (e.g. &lt;code&gt;reasoning_effort: low&lt;/code&gt;, or thinking disabled on Nemotron 3). On NVIDIA's hosted API, Nemotron 3 Super answered in about 3s this way.&lt;/li&gt;
&lt;li&gt;Only the interviewer's reply sits between an answer and the next question. Scoring runs in the background, and the next question is generated while the candidate is still answering.&lt;/li&gt;
&lt;li&gt;If the model takes more than 12s on the first question, or returns invalid JSON, the app falls back to a curated, human-checked question bank with keyword-coverage scoring, and the report labels it as such. The app works end to end even with the AI switched off.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Running code safely.&lt;/strong&gt; Coding and SQL practice run entirely in the browser: Python via Pyodide in a Web Worker with a time limit, and SQL on SQLite compiled to WebAssembly. Reference solutions stay on the server until the candidate solves the problem.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I'm still figuring out
&lt;/h2&gt;

&lt;p&gt;The hard question isn't generating feedback. It's knowing whether the feedback actually helps. Right now I look at whether mastery on a topic goes up after an "I don't know" lesson plus a later retry, but I'd love better ideas.&lt;/p&gt;

&lt;p&gt;I'd appreciate feedback from developers and educators on how to evaluate whether this type of learning system is actually effective.&lt;/p&gt;

&lt;p&gt;Project: &lt;a href="https://nova-50046556708.development.catalystappsail.in" rel="noopener noreferrer"&gt;https://nova-50046556708.development.catalystappsail.in&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>career</category>
      <category>interview</category>
      <category>learning</category>
    </item>
  </channel>
</rss>
