DEV Community

Kartik Sharma
Kartik Sharma

Posted on Fully Autonomous

Practice Room: a private Gemma interview coach for a friend

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

What I Built

A friend is preparing for junior software engineering interviews and struggling with confidence and clearing interviews. I don't know every factor behind that, so I focused on something small and useful: a private place to practice explaining their thinking.

Practice Room is a local interview coach. Choose a role, optionally add a job description, and practice five questions one at a time. After submitting an answer, get a strength, an improvement, a next step and a quote from your own words. Gemma can offer one follow-up. Skip, stop early, review saved sessions or delete your practice data whenever you need.

The timer is optional and counts up. Scores are coaching aids, not predictions of getting hired. There is no signup or audience.

Actual local Gemma coaching with a labeled synthetic candidate answer

Demo

Open the landing page and play the actual-model demo.

Direct MP4 recording.

The public page showcases the project; the working coach runs on your computer. The silent recording uses explicitly labeled synthetic candidate and job text, with real local Gemma 4B questions and feedback. It shows coaching, advancing, skipping, an early recap, saved review and deletion. Actual model waits are retained. No follow-up was offered in this recording; follow-up and complete five-question sessions are covered separately by browser tests.

Code

GitHub repository and setup guide.

Executed verification and limitations.

How I Built It

I started on October 3, 2026. React and TypeScript provide the practice studio; an Express server calls Ollama on the same machine. Gemma generates questions and reads submitted answers to produce coaching. Recaps reuse that coaching locally.

I initially tried Gemma 3 1B on an 8 GB Apple M1. Its output eventually passed format validation, but manual inspection found unsuitable coaching, so I rejected it. The final model is gemma3:4b, Q4_K_M. Real inference passed a separate smoke check and the recorded workflow.

Strict schemas validate inputs and outputs. Evidence must be an exact excerpt from the submitted answer. Malformed output gets at most two repair generations, then a recoverable error. A 90-second total limit and cancellation keep slow requests bounded. The app never substitutes fake coaching.

The final suite passed 15 browser tests, 5 server tests, accessibility checks and nine visual comparisons. Repeatable browser tests use a clearly labeled, isolated test adapter; real Gemma is verified separately. The new landing page also passed accessibility and overflow checks at mobile, tablet and desktop sizes.

Why Does Open Innovation Matter?

Practice answers can be tentative and personal. Running open-weight Gemma locally lets my friend try without sending their interview answers to a cloud AI service. After the initial model download, practice requests need only the local runtime. Finished sessions stay in the browser until deleted.

The trade-offs are real: the model download is about 3.3 GB, inference can be slow on this machine, and coaching can be inaccurate. Quote validation grounds the evidence but cannot guarantee every claim. Some reviewed feedback was harsh or could have focused better on the question. I document those limits rather than promise interview success.

My friend has not yet tested the app or supplied feedback. I haven't invented a testimonial or improvement metric.

My Agent Session

An AI coding assistant helped implement the project. An independent reviewer checked the implementation and actual-model output. The repository includes the fixed acceptance plan, bounded iteration log and verification evidence. No public agent-session recording is included.

Prize Categories

Best Use of Gemma — local Gemma inference is central to questions and answer-specific coaching.

Top comments (0)