Interview prep
Frontend interview prep
What frontend interviews ask beyond algorithms: explaining the fundamentals out loud, writing the small functions screens ask for, reasoning about a design, and building under a clock.
Questions with model answers
- JavaScript24 questions
- TypeScript14 questions
- React26 questions
- Browser and web platform28 questions
- Testing10 questions
- Design and architecture12 questions
- APIs and data10 questions
- Working with AI tools6 questions
- Behavioral10 questions
Coding labs: JavaScript utilities
- DebounceCore · about 20 minutes
- ThrottleCore · about 25 minutes
- MemoizeCore · about 15 minutes
- OnceCore · about 10 minutes
- CurryCore · about 15 minutes
- PipeCore · about 10 minutes
- FlattenCore · about 15 minutes
- Group byCore · about 10 minutes
- Get by pathCore · about 15 minutes
- Class namesCore · about 15 minutes
- Deep equalSenior · about 20 minutes
- Deep cloneSenior · about 25 minutes
- Event emitterSenior · about 25 minutes
- BindSenior · about 15 minutes
Coding labs: Async
- Promise with a timeoutCore · about 15 minutes
- Promise.all by handCore · about 20 minutes
- Promise.allSettled by handCore · about 15 minutes
- Retry with backoffCore · about 20 minutes
- Only the latest responseCore · about 15 minutes
- Cache with expiryCore · about 20 minutes
- Limit concurrencySenior · about 30 minutes
- Serial task queueSenior · about 20 minutes
Coding labs: React logic
- Todos reducerCore · about 15 minutes
- Pagination rangeCore · about 20 minutes
- Shallow equalCore · about 15 minutes
- A tiny storeCore · about 20 minutes
- Memoized selectorSenior · about 20 minutes
- Undo and redoSenior · about 25 minutes
- Reconcile a keyed listSenior · about 25 minutes
- A tiny useStateSenior · about 30 minutes
Coding labs: TypeScript types
- Pick, by handCore · about 10 minutes
- Exclude and Omit, by handCore · about 15 minutes
- Read types with inferCore · about 15 minutes
- Deep readonlySenior · about 15 minutes
- Deep partialSenior · about 15 minutes
- A typed event emitterSenior · about 20 minutes
Frontend system design
- Autocomplete search boxabout 40 minutes
- News feed with infinite scrollabout 45 minutes
- Web chat clientabout 45 minutes
- Booking widget with paymentabout 45 minutes
- Live analytics dashboardabout 40 minutes
- Large media uploadabout 40 minutes
- Data table over 100,000 rowsabout 40 minutes
- Shared component libraryabout 45 minutes
Timed builds
- Projects and todos from a design fileTake-home · 240 minutes
- Product list from a REST APITake-home · 180 minutes
- Accessible modal dialogLive coding · 30 minutes
- Tabs with keyboard supportLive coding · 25 minutes
- Autocomplete with debounceLive coding · 45 minutes
- Data table: sort, filter, paginateLive coding · 45 minutes
- Sign-up form with validationLive coding · 40 minutes
- Infinite list with IntersectionObserverLive coding · 40 minutes
- Star rating inputLive coding · 20 minutes
- Stopwatch with lapsLive coding · 25 minutes