<?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: Kartikey Tiwari</title>
    <description>The latest articles on DEV Community by Kartikey Tiwari (@ktiwari05).</description>
    <link>https://dev.to/ktiwari05</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%2F4157234%2Fd203c38e-fb3c-47f5-87aa-6100f1616c1f.png</url>
      <title>DEV Community: Kartikey Tiwari</title>
      <link>https://dev.to/ktiwari05</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ktiwari05"/>
    <language>en</language>
    <item>
      <title>Interview Buddy: understand the concept, then find your words</title>
      <dc:creator>Kartikey Tiwari</dc:creator>
      <pubDate>Sun, 04 Oct 2026 17:22:59 +0000</pubDate>
      <link>https://dev.to/ktiwari05/interview-buddy-understand-the-concept-then-find-your-words-55fo</link>
      <guid>https://dev.to/ktiwari05/interview-buddy-understand-the-concept-then-find-your-words-55fo</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;I built this for my friend Raj, who is preparing for Java backend developer interviews.&lt;br&gt;
The practice target is medium difficulty. I chose a small starting point: refreshing&lt;br&gt;
backend concepts and turning an explanation into words he can rehearse aloud.&lt;br&gt;
This is one part of that preparation, not a complete Java backend interview curriculum.&lt;/p&gt;

&lt;p&gt;I built Interview Buddy, a local companion for practising Java backend interview concepts.&lt;br&gt;
It takes one question and explains it four ways: a clear explanation, a simpler&lt;br&gt;
analogy, a small example, and a concise interview answer. The aim is to help someone&lt;br&gt;
move from recognising a concept to explaining it without looking at the screen.&lt;/p&gt;

&lt;p&gt;I used public Indian developer discussions to sharpen the design. A&lt;br&gt;
&lt;a href="https://www.reddit.com/r/developersIndia/comments/1wqvi58/backend_ai_in_2026_what_should_i_actually_prepare/" rel="noopener noreferrer"&gt;September 26 post&lt;/a&gt;&lt;br&gt;
described uncertainty about dividing time between DSA, backend fundamentals, and AI.&lt;br&gt;
A &lt;a href="https://www.reddit.com/r/developersIndia/comments/1w71odp/as_an_interviewer_what_are_you_expecting_from_a/" rel="noopener noreferrer"&gt;September 4 post&lt;/a&gt;&lt;br&gt;
described understanding AI-written code while struggling to write independently.&lt;br&gt;
These are individual accounts, not a survey of hiring practices. They helped me&lt;br&gt;
choose starter questions and keep the workflow focused on understanding.&lt;/p&gt;

&lt;p&gt;The interface offers starting points for databases, Spring Boot constructor injection,&lt;br&gt;
design tradeoffs, Java HashMap,&lt;br&gt;
and project decisions. After each answer, it asks the learner to look away and say&lt;br&gt;
the idea in their own words. Switching modes keeps the question fixed, so the&lt;br&gt;
learner can connect the explanation to an example and then to an interview response.&lt;/p&gt;
&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://raw.githubusercontent.com/KTiwari05/interview-buddy-hf26/main/submission/demo/interview-buddy-demo.mp4" rel="noopener noreferrer"&gt;Watch or download the video walkthrough (MP4)&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%2Fv1lzdnksds32vndbf55i.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fv1lzdnksds32vndbf55i.jpg" alt="Interview Buddy interface with Java and Spring Boot starters" width="729" height="1823"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The 60-second walkthrough uses a database-indexing question in the four modes,&lt;br&gt;
then shows a Java HashMap example. It uses real local Qwen replies. Generation waiting time is edited&lt;br&gt;
out; measured timings are visible in the app and recorded in the evidence notes.&lt;/p&gt;
&lt;h2&gt;
  
  
  Code
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/KTiwari05/interview-buddy-hf26" rel="noopener noreferrer"&gt;Interview Buddy source on GitHub&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The application code is MIT licensed. Qwen3 4B model weights are not bundled with&lt;br&gt;
the project and retain their Apache 2.0 license.&lt;/p&gt;
&lt;h2&gt;
  
  
  How I Built It
&lt;/h2&gt;

&lt;p&gt;The frontend uses React and Vite. A FastAPI endpoint selects an instruction for the&lt;br&gt;
requested mode and calls Qwen3 4B through Ollama's local chat API using httpx.&lt;br&gt;
React Markdown renders explanations and code blocks without enabling raw HTML.&lt;br&gt;
The prompts target medium difficulty Java backend practice, and code examples&lt;br&gt;
default to Java or SQL. The application server itself is written in Python.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Question + mode → React → FastAPI → Ollama → Qwen3 4B
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;I kept the implementation small: no account system, database, RAG, agents, or paid&lt;br&gt;
model API. Questions and replies stay in browser memory; the app does not save&lt;br&gt;
conversations. Choosing another mode sends the original question with a different&lt;br&gt;
instruction rather than pretending to maintain a long conversation.&lt;/p&gt;

&lt;p&gt;One live check exposed a detail I would have missed with mocks alone. Qwen returned&lt;br&gt;
a reasoning prefix despite thinking being disabled. I added Qwen's &lt;code&gt;/no_think&lt;/code&gt;&lt;br&gt;
instruction and removed a remaining prefix before displaying the final answer,&lt;br&gt;
then added a regression test. A later check hit the response token limit, so I&lt;br&gt;
shortened the instructions and increased the generation budget. Slow inference is&lt;br&gt;
still a limitation on this computer.&lt;/p&gt;

&lt;p&gt;Seven backend tests passed, and the production frontend build completed. I checked&lt;br&gt;
all four modes with real Qwen replies both through the API and in the browser.&lt;br&gt;
I also checked blank input, starter-question resets, and a 375-pixel phone layout&lt;br&gt;
without horizontal overflow. The captured browser replies took approximately&lt;br&gt;
66–223 seconds on this computer. I ran one generated SQL indexing example in&lt;br&gt;
SQLite and confirmed its query plan used the index; that does not validate every&lt;br&gt;
answer the model might generate. The repository's verification notes preserve&lt;br&gt;
the scope of these checks.&lt;/p&gt;

&lt;p&gt;After aligning the prompts and starters with Java backend preparation, I reran the&lt;br&gt;
tests and build. A real Java HashMap snippet generated in 82.17 seconds, compiled,&lt;br&gt;
and returned the expected word counts. A broader full-program request hit the&lt;br&gt;
answer limit; the interface displayed the error and recovered on a focused snippet&lt;br&gt;
request. This version works best with one concrete concept or small example at a time.&lt;/p&gt;

&lt;p&gt;I have not measured whether the app improves interview outcomes. Friend feedback&lt;br&gt;
is also pending. This version gives a focused practice workflow; its explanations&lt;br&gt;
can still contain errors and should be checked against technical documentation.&lt;/p&gt;

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

&lt;p&gt;Qwen3 4B does the core work: each explanation is generated by an open-weight model&lt;br&gt;
running through Ollama on this computer. Once dependencies and weights are&lt;br&gt;
downloaded, the inference path uses local endpoints and does not require a paid&lt;br&gt;
model account or send the question to a hosted model provider.&lt;/p&gt;

&lt;p&gt;I can inspect and change the prompts, reproduce a bad reply, and change the model&lt;br&gt;
configuration. I tested Qwen3 4B; other models are not yet verified. This gives me&lt;br&gt;
control over the learning workflow, with a clear tradeoff: local hardware limits&lt;br&gt;
response speed and the model's answers still need scrutiny.&lt;/p&gt;

&lt;p&gt;The benefit is control over where inference runs and how explanations are requested.&lt;br&gt;
I am not claiming that this small model is more accurate than a closed model.&lt;/p&gt;

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

&lt;p&gt;Codex helped review the brief, research public discussions, implement the app,&lt;br&gt;
run checks, and prepare this post. I reviewed the results before publication.&lt;/p&gt;

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

&lt;p&gt;I am entering the overall challenge. This implementation uses Qwen and Ollama;&lt;br&gt;
I am not claiming any partner prize category.&lt;/p&gt;

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