Algorithm practice + theory study notes for backend and fullstack interviews.
28 TypeScript problems ranked by likelihood, with full test suites and reference solutions.
npm install
npm run ranking # see all 28 questions ranked by priority
npm run q1 # attempt a question (tests fail until you solve it)
npm run sol:q1 # reveal and run the reference solution- Run
npm run rankingto see the priority order - Open
algo/questions/q<N>-*.tsand implement the function - Run
npm run q<N>to see which tests pass - When stuck, run
npm run sol:q<N>to see the worked solution
| # | Title | Pattern | Time |
|---|---|---|---|
| q1 | Group Lab Results by Status | Hash Map / Array | 20m |
| q2 | Two Sum on Sorted Array | Two Pointers | 15m |
| q3 | Longest Unique Substring | Variable Sliding Window | 20m |
| q4 | Longest Safe Window (avg ≤ threshold) | Variable Sliding Window | 25m |
| q5 | Max K-Window Average | Fixed Sliding Window | 20m |
| q6 | Valid Brackets | Stack | 15m |
| q7 | Deep Sum of Nested Object | Recursion / DFS | 20m |
| q8 | Sort Patients by Multiple Fields | Sorting / Comparators | 15m |
| q9 | Binary Search in Sorted Array | Binary Search | 15m |
| q10 | Most Common Biomarker Flag | Frequency Map | 15m |
| # | Title | Pattern | Time |
|---|---|---|---|
| q11 | Longest Abnormal Streak | Sliding Window (streaks) | 20m |
| q12 | Patient Queue (FIFO) | Queue / OOP | 25m |
| q13 | Flatten Category Tree (BFS) | BFS / Trees | 20m |
| q14 | Debug Async Patient Fetcher | Debugging / Async | 20m |
| q15 | Parse Health Summary String | String Manipulation | 20m |
| q16 | Flatten Nested Record to Dot-Path | Recursion / DFS | 25m |
| q17 | Next Greater Reading | Monotonic Stack | 25m |
| q18 | Merge Sorted Appointment Schedules | Two Pointers (merge) | 30m |
| # | Title | Pattern | Time |
|---|---|---|---|
| q19 | Anagram Check & Group Anagrams | String / Hash Map | 20m |
| q20 | Find First & Last Occurrence | Binary Search (variant) | 25m |
| q21 | Memoize + Climb Stairs | DP / Memoization | 25m |
| q22 | Three Sum (All Triplets) | Sort + Two Pointers | 30m |
| q23 | Reverse Linked List & Detect Cycle | Linked List / Floyd's | 20m |
| # | Title | Pattern | Time |
|---|---|---|---|
| q24 | Decode Compressed String | Stack (nested parsing) | 30m |
| q25 | LRU Cache | Hash Map + DLL | 35m |
| q26 | Minimum Cost Path (Grid DP) | 2D Dynamic Programming | 35m |
| q27 | Shortest Referral Path (Graph BFS) | Graph / BFS | 30m |
| q28 | Minimum Tests (Coin Change DP) | Bottom-up DP | 35m |
Tiered Q&A for Java, Spring Boot, React, and Node.js. Ranked by frequency and recency.
| File | Topics |
|---|---|
| notes/java.md | Core Java, concurrency, JVM, Java 21+ features |
| notes/spring.md | Spring Boot 3, DI, Security, AOT, native image |
| notes/react.md | React 19, hooks, Server Components, state management |
| notes/nodejs.md | Event loop, ESM, built-in fetch, performance |
Each file has three tiers: Must Know / Good to Know / Nice to Have, with full answers and code examples.
Custom questions live in notes/custom/<tech>.md — they are prepended to the matching tier when notes are regenerated and are never overwritten.
Run the /interview-study skill in Claude Code to scrape fresh content and regenerate all four files:
/interview-study
# optionally: /interview-study focus on java concurrency and react hooksshort-notes/ contains HTML cheatsheets for fast visual review — open short-notes/index.html in a browser.
| Section | Sheets |
|---|---|
| Database & JPA | ACID, Locking, Indexing, Normalization, N+1, JPA Ecosystem, Views, SQL vs NoSQL |
| REST API Design | Fundamentals, Patterns, Security & Rate Limiting, Async APIs, Spring Boot example |
| System Design | Rate Limiter, Consistent Hashing, KV Store, URL Shortener, Chat, News Feed, YouTube, and more |
| Spring Framework | Dependency Injection, Transactions |
| Data Structures | Collections & Maps, DS Internals |
| Frontend & React | React Hooks, useEffect & useCallback |
- Node.js 22 / ESM modules — TypeScript 5.7 strict mode — tsx runner (no build step)
- Custom test runner — no Jest dependency, mimics TestGorilla output format