Skip to content
Abdul WasihSoftware Engineer

← Work· 2026· 1 min read

To the Moon

Placement prep scattered across tabs and sheets → one local-first app for all of it.

To the Moon screenshot

TL;DR

Problem
Placement prep is scattered across mock-interview sites, DSA sheets, resume docs, application spreadsheets, and random notes that never talk to each other, so it is easy to lose track of what to revise and what is due.
Built
Built a local-first Next.js 15 and Express/Prisma app over SQLite that unifies every prep workflow into one dashboard, with a rate-limited Gemini service (Bottleneck) powering interviews and resume analysis and a spaced-repetition engine deciding what to revisit next.
Result
112 api endpoints · 22 data models

01The problem

Give myself and other students a single organized system for placement prep, every module a student actually needs, so prep lives in one place instead of messy notes, browser tabs, and forgotten deadlines.

Placement prep is scattered across mock-interview sites, DSA sheets, resume docs, application spreadsheets, and random notes that never talk to each other, so it is easy to lose track of what to revise and what is due.

02What I built

Built a local-first Next.js 15 and Express/Prisma app over SQLite that unifies every prep workflow into one dashboard, with a rate-limited Gemini service (Bottleneck) powering interviews and resume analysis and a spaced-repetition engine deciding what to revisit next.

  • AI mock interviews on a Google Gemini pipeline, answered by text or voice (Web Speech API), with job-description and company-specific question generation plus batch answer evaluation, scoring, and feedback
  • DSA tracker with built-in spaced repetition (1/3/7/14/30/60-day intervals) that resurfaces problems for review before you forget them
  • Resume module that parses PDF/DOCX uploads and runs a Gemini skill-gap analysis against target roles
  • Application, company, and opportunity trackers (internships, hackathons, OSS programs, fellowships) tied to a calendar and deadlines so nothing slips
  • Weekly study goals and session tracking, custom question banks with model answers, and a priority task board
  • Analytics dashboard with progress over time, performance by question type, weak-area detection, and CSV export, all on a local-first SQLite store

03The hard part

Gemini calls run through a rate-limited queue, so mock interviews slow down instead of failing at the quota.

04Results

API Endpoints
112
Data Models
22
Status
Self-hosted

05Stack

  • Next.js
  • React
  • TypeScript
  • Express
  • Prisma
  • SQLite
  • Google Gemini
  • Zustand
  • Tailwind CSS
  • Docker

Hiring an engineer?
Let's talk.

Open to software engineering roles. Remote, or on the ground in Bangalore.

Connect
GitHub↗LinkedIn↗
© 2026 Abdul Wasih · Bangalore, IN
End of page