The Must-Solve 150.
Every question is a real implementation, debugging or architecture task. Work through the levels in order, or jump straight to what your next interview needs.
150 questions
Easy
25 questions, 10–20 minutes each
Warm-ups you should solve without help.
JavaScript fundamentals
Rebuild the core array and function methods every interviewer expects you to know cold.
- 1Implement
Array.prototype.map() - 2Implement
Array.prototype.filter() - 3Implement
Array.prototype.reduce() - 4Implement
Function.prototype.call() - 5Implement
Function.prototype.apply() - 6Implement
Function.prototype.bind(), including partial argumentsFree - 7Implement a
once()function using closures - 8Implement a function to flatten a nested array
- 9Implement
groupBy()for an array of objects - 10Implement
get(object, "a.b.c")with a default value
Strings, objects & algorithms
Hash maps, stacks and object utilities that show up in every warm-up round.
- 11Reverse words in a sentence
- 12Valid parentheses using a stackFree
- 13Two Sum using a hash map
- 14Check whether two strings are anagrams
- 15Find the first non-repeating character
- 16Remove duplicate items from an array
- 17Implement
chunk(array, size) - 18Implement a basic
deepEqual()for nested arrays and objects - 19Implement
set(object, "a.b.c", value) - 20Merge two sorted arrays
Browser & DOM fundamentals
Traverse, query and wire up the DOM without a framework.
Medium
75 questions, 25–45 minutes each
Implement, then defend your edge cases, performance and tests.
JavaScript utilities & FP
debounce, throttle, curry, deep clone, LRU — the utility belt of senior rounds.
- 26Implement debounce() with
cancel()andflush()Free - 27Implement
throttle()with leading and trailing options - 28Implement
curry()supporting partial application - 29Implement
compose()andpipe() - 30Implement deep clone with circular references,
Map,Set, andDate - 31Implement
memoize()with custom cache keys - 32Implement an EventEmitter with
on,off,emit, andonce - 33Implement an LRU cache
- 34Implement an
EventTarget-style custom event system - 35Implement
JSON.stringify()for common data types and edge cases
Promises & async
Promise combinators and async helpers implemented from scratch.
- 36Implement Promise.all() from scratchFree
- 37Implement
Promise.allSettled() - 38Implement
Promise.race() - 39Implement
Promise.any()withAggregateError - 40Implement
Promise.resolve()andPromise.reject() - 41Implement
promisify()for callback-based APIs - 42Implement
asyncMap()preserving result order - 43Implement
asyncFilter()with asynchronous predicates - 44Implement
asyncReduce()with sequential execution - 45Implement a
retry()utility supporting maximum attempts and delays
Concurrency & scheduling
Pools, queues, rate limiters and batching with bounded concurrency.
- 46Implement mapLimit() / throttlePromises() with maximum N concurrent tasksFree
- 47Implement
promisePool()using worker loops - 48Implement an asynchronous task runner with configurable concurrency
- 49Implement a priority-based task scheduler
- 50Implement a queue supporting pause, resume, and clear
- 51Implement a token-bucket API rate limiter
- 52Implement a sliding-window rate limiter
- 53Implement request deduplication for identical in-flight API calls
- 54Implement a concurrency-safe async cache with TTL
- 55Implement batch API calls with maximum batch size and interval
React hooks & state
Custom hooks without stale closures, plus a store built from first principles.
- 56Implement
useDebounce()for values - 57Implement
useThrottle()for values and callbacks - 58Implement
usePrevious()without causing an additional render - 59Implement
useInterval()without stale closuresFree - 60Implement
useLocalStorage()with serialization and cross-tab updates - 61Implement
useFetch()with loading, error, and cancellation - 62Implement
useQuery()with caching, retries, and stale data - 63Implement
useIntersectionObserver()for lazy loading - 64Implement a small Redux-style store using subscriptions and reducers
- 65Debug an infinite
useEffect()loop and prevent stale asynchronous responses
React application patterns
Search, optimistic UI, pagination, forms and virtualization done right.
- 66Build search-as-you-type with debounce and
AbortControllerFree - 67Implement optimistic UI updates with rollback on failure
- 68Build infinite scrolling using
IntersectionObserver - 69Implement server-side pagination with sorting and filtering
- 70Build a controlled form with dynamic validation
- 71Implement dependent dropdowns with asynchronous options
- 72Build a reusable React modal using portals
- 73Implement an error boundary with retry/reset behavior
- 74Implement undo/redo history for a React state editor
- 75Implement a virtualized list rendering 100,000 items efficiently
UI machine coding
Accessible, keyboard-friendly widgets built under interview time pressure.
- 76Build an accessible accordion with keyboard navigation
- 77Build a typeahead/autocomplete with caching and keyboard supportFree
- 78Build a nested file explorer with add, rename, and delete
- 79Build a sortable and filterable data table
- 80Build a drag-and-drop Kanban board
- 81Build a nested comments component with threaded replies
- 82Build a progress bar system supporting multiple queued animations
- 83Build a multi-select dropdown with search and tags
- 84Build a tree view with expand, collapse, and checkbox selection
- 85Build a date picker with keyboard navigation and disabled dates
Browser, network & performance
Fetch wrappers, routers, workers, caching and Web Vitals in practice.
- 86Implement a fetch wrapper with timeout and
AbortControllerFree - 87Implement request and response interceptors similar to Axios
- 88Implement retry with exponential backoff and jitter
- 89Implement a basic client-side router using the History API
- 90Implement synchronization between browser tabs using
BroadcastChannel - 91Implement browser storage with TTL and schema-version migration
- 92Build a lazy image loader using
IntersectionObserver - 93Implement an accessible focus trap for a dialog
- 94Implement an analytics SDK with event batching and
sendBeaconfallback - 95Implement a Web Worker for CPU-intensive computation
- 96Implement a simple Service Worker caching strategy
- 97Implement a responsive masonry layout using measured item heights
- 98Implement a DOM-based text highlighter that preserves existing markup
- 99Build a lightweight client-side search index for 10,000 records
- 100Implement a performance monitor measuring Web Vitals and reporting metrics
Hard
50 questions, 45–90 minutes each
Senior-level correctness, architecture and production constraints.
Advanced async concurrency
Schedulers, cancellation, backpressure and resilience patterns.
- 101Implement a Promise library with
.then(),.catch(), chaining, and asynchronous handler scheduling - 102Implement a task scheduler with concurrency limits, priorities, cancellation, and starvation prevention
- 103Implement a
mapLimit()withAbortSignal, ordered results, and configurable error-handling policies - 104Implement
asyncMap()over an async iterable with bounded concurrency and backpressure - 105Implement an asynchronous dependency graph executor where tasks run only after their dependencies complete
- 106Implement a circuit breaker with
CLOSED,OPEN, andHALF_OPENstates - 107Implement a distributed-style API client rate limiter coordinating multiple browser tabs
- 108Implement a single-flight token refresh mechanism: 10 failed requests trigger only one refresh, followed by safe retriesFree
- 109Implement a streaming upload manager supporting chunking, bounded concurrency, progress, retry, and cancellation
- 110Implement a resilient polling engine with exponential backoff, visibility awareness, timeout, and cancellation
Advanced React & rendering
Reconciliation, hooks internals, concurrent rendering and SSR edge cases.
- 111Implement a minimal React-like renderer with virtual DOM diffing and keyed reconciliation
- 112Implement a mini
useStateanduseEffecthooks engineFree - 113Implement a fine-grained external state store using
useSyncExternalStorewithout tearing - 114Debug React 18 concurrent rendering inconsistencies involving mutable external data
- 115Build a React scheduler demonstrating urgent updates versus
startTransition()updates - 116Implement a virtualized grid with variable row heights, overscan, and scroll restoration
- 117Build a nested drag-and-drop tree editor with optimistic reordering
- 118Implement SSR hydration mismatch detection and a reproduction/fix exercise
- 119Build a Suspense-based data-loading example with streaming SSR boundaries
- 120Build a fault-tolerant React checkout flow with idempotent submission, recovery, and persistent state
Advanced JS, browser & architecture
Sandboxes, parsers, reactivity, offline sync and secure messaging.
- 121Implement a sandboxed JavaScript execution environment using an isolated iframe or worker, with a clearly defined security boundary
- 122Implement a simplified HTML parser and DOM tree builder
- 123Implement a reactive dependency system with automatic dependency trackingFree
- 124Implement a memory-efficient event bus with lifecycle cleanup and leak detection
- 125Implement an offline-first data synchronization queue using IndexedDB
- 126Implement an HTTP cache with ETag validation, stale-while-revalidate, and request deduplication
- 127Build a resumable upload client handling network interruption and server reconciliation
- 128Design a micro-frontend shell with independent deployment and shared dependency versioning
- 129Implement a secure postMessage communication protocol between a parent page and embedded iframe
- 130Build a browser-side analytics delivery system with batching, sampling, offline queueing, and deduplication
Frontend system design
Design the frontends of WhatsApp, Docs, YouTube, Sheets and more.
- 131Design WhatsApp Web: real-time messaging, ordering, offline state and reconciliation
- 132Design Google Docs: collaborative editing with CRDT or OT, cursors, and conflict resolution
- 133Design YouTube frontend: video playback, adaptive streaming, and feed virtualization
- 134Design Instagram/Pinterest Explore: infinite masonry grid, caching, and image optimization
- 135Design Google Sheets: virtualized cells, formulas, dependency graphs, and editing
- 136Design Amazon/Flipkart checkout: pricing, cart synchronization, payments, and failure recovery
- 137Design an autocomplete system serving millions of users with caching and request cancellationFree
- 138Design a real-time dashboard with WebSocket subscriptions, reconnects, and high-volume updates
- 139Design a large enterprise React application with micro-frontends, permissions, and deployment strategies
- 140Design Google Maps/Uber live tracking: map rendering, location updates, smoothing, and state synchronization
Advanced machine coding & DSA
Spreadsheets, editors, IDEs and the data structures behind them.
- 141Build a fully accessible component library including modal, dropdown, combobox, and keyboard interactions
- 142Build an Excel-like spreadsheet with editing, formulas, dependency tracking, and virtualized rendering
- 143Build a collaborative rich-text editor with remote cursors and offline synchronization
- 144Implement a browser IDE with syntax highlighting, files, tabs, and isolated code execution
- 145Build a Trello-like Kanban app supporting nested cards, drag-and-drop, undo/redo, and persistence
- 146Implement an autocomplete search engine using a TrieFree
- 147Implement a dependency resolver using topological sorting
- 148Implement a median tracker for a real-time data stream
- 149Build a graph-based workflow editor with cycle detection and execution ordering
- 150Build an interactive coding playground with sandboxing, test execution, worker-based timeouts, and persisted solutions