<?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: Harshit Singh Parmar</title>
    <description>The latest articles on DEV Community by Harshit Singh Parmar (@harshit_singh_parmar).</description>
    <link>https://dev.to/harshit_singh_parmar</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%2F4146823%2F212ee4fa-a13d-4b8b-9ec7-e0e148b9d25d.jpg</url>
      <title>DEV Community: Harshit Singh Parmar</title>
      <link>https://dev.to/harshit_singh_parmar</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/harshit_singh_parmar"/>
    <language>en</language>
    <item>
      <title>I Built Placement Prep Buddy with Gemma for a Friend Preparing for Interviews</title>
      <dc:creator>Harshit Singh Parmar</dc:creator>
      <pubDate>Sat, 03 Oct 2026 15:27:38 +0000</pubDate>
      <link>https://dev.to/harshit_singh_parmar/i-built-placement-prep-buddy-with-gemma-for-a-friend-preparing-for-interviews-dmn</link>
      <guid>https://dev.to/harshit_singh_parmar/i-built-placement-prep-buddy-with-gemma-for-a-friend-preparing-for-interviews-dmn</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 &lt;strong&gt;Placement Prep Buddy&lt;/strong&gt;, a lightweight Streamlit application that creates a focused 15-minute interview-practice session.&lt;/p&gt;

&lt;p&gt;It is designed for a friend preparing for software-engineering interviews who felt overwhelmed by massive, unstructured question banks. Instead of searching through dozens of questions, they can enter one interview topic, select a difficulty level, optionally mention a weak area, and receive a short targeted practice set.&lt;/p&gt;

&lt;p&gt;Each generated session includes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Three focused practice questions&lt;/li&gt;
&lt;li&gt;A useful hint for each question&lt;/li&gt;
&lt;li&gt;Concise answers or explanations&lt;/li&gt;
&lt;li&gt;One follow-up challenge to test understanding&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The goal is simple: make it easier to practise one concept at a time without turning interview preparation into an overwhelming task.&lt;/p&gt;

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

&lt;h3&gt;
  
  
  Main interface
&lt;/h3&gt;

&lt;p&gt;The learner enters an interview topic, chooses a difficulty level, and optionally specifies a weak area.&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%2Fxbo9zg0g856xmam42osy.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%2Fxbo9zg0g856xmam42osy.png" alt="Placement Prep Buddy main interface showing interview topic, difficulty selection, weak-area input, and Generate practice set button" width="800" height="375"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Loading state
&lt;/h3&gt;

&lt;p&gt;Generation time can vary, so the app immediately shows a loading indicator. This lets the learner know that their personalized practice set is being generated instead of making the app feel stuck.&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%2Fb1spf6cqg0b1wmn9rr05.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%2Fb1spf6cqg0b1wmn9rr05.png" alt="Placement Prep Buddy showing the message that Gemma is creating a personalized practice set" width="800" height="375"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Generated practice set
&lt;/h3&gt;

&lt;p&gt;The app returns a concise practice session with questions, hints, explanations, and a follow-up challenge.&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%2Fdy4ioux3rcz5ffx11sgs.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%2Fdy4ioux3rcz5ffx11sgs.png" alt="Gemma-generated interview practice set with questions, hints, explanations, and a follow-up challenge" width="800" height="375"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;The complete source code is available on GitHub:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/harshit-parmar07/placement-prep-buddy" rel="noopener noreferrer"&gt;View the Placement Prep Buddy repository&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The repository includes setup instructions, a &lt;code&gt;.env.example&lt;/code&gt; file, and a &lt;code&gt;.gitignore&lt;/code&gt; configuration to prevent API keys from being committed.&lt;/p&gt;

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

&lt;p&gt;I built the application with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Python&lt;/li&gt;
&lt;li&gt;Streamlit&lt;/li&gt;
&lt;li&gt;Google GenAI SDK&lt;/li&gt;
&lt;li&gt;Gemma through the Gemini API&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;python-dotenv&lt;/code&gt; for environment-variable management&lt;/li&gt;
&lt;li&gt;AntiGravity IDE for scaffolding and refining the project&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The user provides an interview topic, selected difficulty, and optional weak area. The Streamlit app sends a structured prompt to Gemma, asking it to create a concise 15-minute practice set tailored to the selected difficulty, with exactly three questions, hints, explanations, and a follow-up question.&lt;/p&gt;

&lt;p&gt;Gemma is the core AI component of the application: it generates the personalized study material that makes Placement Prep Buddy useful.&lt;/p&gt;

&lt;p&gt;To improve the user experience, I added:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Input validation for a missing interview topic&lt;/li&gt;
&lt;li&gt;A visible loading state while the API request is running&lt;/li&gt;
&lt;li&gt;Clear error handling for missing API keys or failed requests&lt;/li&gt;
&lt;li&gt;A concise interface focused on a single study task&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;Gemma is an open-weight model, and that matters for this project because it keeps the future design flexible.&lt;/p&gt;

&lt;p&gt;For this prototype, I accessed Gemma through the Gemini API. That let me build and test a working app quickly within the challenge timeframe. The current version requires an internet connection because it uses an API.&lt;/p&gt;

&lt;p&gt;The current prototype does not yet provide offline or local privacy benefits. The important difference from relying only on a closed-model API is that Gemma's available weights provide a route to running and adapting the model independently, rather than permanently depending on one hosted endpoint.&lt;/p&gt;

&lt;p&gt;In a future version, the same application could use a locally served or self-hosted Gemma model. That could offer:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;More control over a learner’s private study data&lt;/li&gt;
&lt;li&gt;The ability to customize or fine-tune the model for interview preparation&lt;/li&gt;
&lt;li&gt;The ability to swap models based on available hardware or cost&lt;/li&gt;
&lt;li&gt;A path toward offline or low-connectivity study sessions&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Open innovation makes the project more adaptable: the app can begin as a quick API-based prototype while retaining the possibility of local, privacy-focused deployment later.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;Best Use of Gemma&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;Building this prototype taught me how to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Design a small AI feature around a real user problem&lt;/li&gt;
&lt;li&gt;Prompt an LLM for structured educational output&lt;/li&gt;
&lt;li&gt;Handle loading and failure states in an AI-powered web app&lt;/li&gt;
&lt;li&gt;Keep secrets out of source control with &lt;code&gt;.env&lt;/code&gt; and &lt;code&gt;.gitignore&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Use an open-weight model through an API while planning for local inference later&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Future Improvements
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Local Gemma inference for a privacy-focused and offline-capable version&lt;/li&gt;
&lt;li&gt;Progress tracking across topics&lt;/li&gt;
&lt;li&gt;Retrieval from a learner’s own notes&lt;/li&gt;
&lt;li&gt;Answer evaluation and personalized feedback&lt;/li&gt;
&lt;li&gt;Voice input for hands-free practice&lt;/li&gt;
&lt;/ul&gt;

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