A collection of hands-on coding interview projects organized by language. Each project is a self-contained codebase with intentional issues, gaps, and areas for improvement — giving interviewers realistic scenarios to test candidates.
- Interviewer picks a project and 1-2 tasks from its
INTERVIEW_TASKS.md - Candidate clones the repo, explores the codebase (~10 min)
- Live coding — candidate works through the assigned tasks while explaining their thought process
| Language | Project | Stack | Status |
|---|---|---|---|
| Java | Bookstore API | Spring Boot 4, Java 25, H2, JPA | Done |
| Java | Todo API | Spring Boot 4, Java 25, H2, JPA | Done |
| Java | Delivery Food System | Spring Boot 3.4, Java 21, MongoDB, Kafka | Done |
| Java | Flight Feasibility API | Spring Boot 4, Java 25, Maven | Done |
| Java | Ledger | Plain Java 21, JUnit 5, Mockito, no Spring | Done |
| Java | Load Balancer | Plain Java 21, JUnit 5 | Done |
| Java | URL Shortener | Plain Java 21, JUnit 5 | Done |
| Java | Rate Limiter | Plain Java 21, JUnit 5 | Done |
| Java | SQL Transfer | Plain Java 21, JDBC, H2 in-memory | Done |
| Java | Ledger over HTTP | Plain Java 21, Javalin, Mockito | Done |
| Java | String Drills | Plain Java 21, JUnit 5 | Done |
| Java | Array Drills | Plain Java 21, JUnit 5 | Done |
| Java | Data Structure Drills | Plain Java 21, JUnit 5 | Done |
| Java | Order Tracking | Plain Java 21, JUnit 5 | Done |
| Java | Order API | Spring Boot 4, Java 25 | Done |
| Java | Rider Dispatch | Plain Java 21, JUnit 5 | Done |
| Java | Fix the Service | Plain Java 21, JUnit 5 | Done |
Note on formats: most projects hand the candidate a working codebase with intentional issues to find and fix. Flight Feasibility is different — it is build from scratch against a real, deliberately ambiguous assessment brief, with only the HTTP contract provided.
Ledger, Load Balancer, URL Shortener, Rate Limiter, SQL Transfer and Ledger over HTTP are a third format: timed live-coding exercises in the style of fintech backend interviews (own IDE, no Spring, no AI, user stories revealed one at a time, then concurrency and database questions). Each is a standalone plain-Java project with a compiling skeleton on
mainand a complete, tested solution onsolutions/<project>, for examplesolutions/ledger.
Delivery Hero prep: String Drills, Array Drills, Data Structure Drills, Order Tracking, Order API, Rider Dispatch and Fix the Service practise the questions reported in Delivery Hero's technical round (and at its brands Glovo, talabat and foodpanda). They use the same live-coding format, with solutions on
solutions/<project>. Fix the Service starts with 4 failing tests on purpose. See java/DELIVERY_HERO.md for every question mapped to its exercise.
interview-prep/
├── java/
│ ├── bookstore-api/
│ ├── todo-api/
│ ├── delivery-food-system/
│ ├── flight-feasibility/
│ ├── ledger/
│ ├── load-balancer/
│ ├── url-shortener/
│ ├── rate-limiter/
│ ├── sql-transfer/
│ ├── ledger-http/
│ ├── string-drills/
│ ├── array-drills/
│ ├── data-structure-drills/
│ ├── order-tracking/
│ ├── order-api/
│ ├── rider-dispatch/
│ ├── fix-the-service/
│ └── DELIVERY_HERO.md
├── python/
└── typescript/
- README.md — setup instructions, endpoints, architecture overview
- INTERVIEW_TASKS.md — tasks organized by level (Junior / Mid / Senior) with descriptions, acceptance criteria, hints, and time estimates
- Working codebase — with intentional issues baked in for candidates to find and fix
Each project is self-contained. Navigate to its directory and follow the README:
cd java/bookstore-api
./mvnw spring-boot:run- Let candidates explore the codebase for 10 minutes before assigning tasks
- Pick 1-2 tasks matching the candidate's level
- Encourage candidates to talk through their approach before coding
- For senior candidates, focus on trade-off discussions as much as implementation
- Each project has a reference implementation candidates can learn from