DEV Community

Harshit Singh Parmar
Harshit Singh Parmar

Posted on

I Built Placement Prep Buddy with Gemma for a Friend Preparing for Interviews

Hacktoberfest Weekend Challenge: Build for a Friend Submission 🤝

This is a submission for the Hacktoberfest Weekend Challenge: Build for a Friend

What I Built

I built Placement Prep Buddy, a lightweight Streamlit application that creates a focused 15-minute interview-practice session.

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.

Each generated session includes:

  • Three focused practice questions
  • A useful hint for each question
  • Concise answers or explanations
  • One follow-up challenge to test understanding

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

Demo

Main interface

The learner enters an interview topic, chooses a difficulty level, and optionally specifies a weak area.

Placement Prep Buddy main interface showing interview topic, difficulty selection, weak-area input, and Generate practice set button

Loading state

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.

Placement Prep Buddy showing the message that Gemma is creating a personalized practice set

Generated practice set

The app returns a concise practice session with questions, hints, explanations, and a follow-up challenge.

Gemma-generated interview practice set with questions, hints, explanations, and a follow-up challenge

Code

The complete source code is available on GitHub:

View the Placement Prep Buddy repository

The repository includes setup instructions, a .env.example file, and a .gitignore configuration to prevent API keys from being committed.

How I Built It

I built the application with:

  • Python
  • Streamlit
  • Google GenAI SDK
  • Gemma through the Gemini API
  • python-dotenv for environment-variable management
  • AntiGravity IDE for scaffolding and refining the project

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.

Gemma is the core AI component of the application: it generates the personalized study material that makes Placement Prep Buddy useful.

To improve the user experience, I added:

  • Input validation for a missing interview topic
  • A visible loading state while the API request is running
  • Clear error handling for missing API keys or failed requests
  • A concise interface focused on a single study task

Why Does Open Innovation Matter?

Gemma is an open-weight model, and that matters for this project because it keeps the future design flexible.

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.

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.

In a future version, the same application could use a locally served or self-hosted Gemma model. That could offer:

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

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.

Prize Categories

  • Best Use of Gemma

What I Learned

Building this prototype taught me how to:

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

Future Improvements

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

Top comments (0)