Learning tracks

Every topic you need, with explanations, visuals, and practice. Pick a track or use ⌘K to jump anywhere.

⚡ Quick Wins

Close your known interview gaps first — blind spots, not deep gaps.

🟨 JavaScript & TypeScript Core

The language internals interviewers probe to test depth beyond framework usage.

Closures, Scope & Hoisting

Why a function remembers variables from where it was defined — and how scope, hoisting, and the TDZ actually work.

must medium ⏱ 20m

this, call/apply/bind & arrow functions

The four rules that decide what `this` is at call time — and why arrow functions ignore them.

must medium ⏱ 18m

The Prototype Chain & Inheritance

How property lookup walks [[Prototype]] up to null, and why class is just sugar over it.

must medium ⏱ 20m

The Event Loop: microtasks vs macrotasks

Why the output is A, D, C, B — how the call stack, microtask queue, and macrotask queue decide async ordering.

must medium ⏱ 22m

Promises & async/await

States, chaining, error handling, and the concurrency helpers — plus how await maps back to the event loop.

must medium ⏱ 22m

Type Coercion & Equality

Why == is dangerous, how JS coerces types automatically, and the truthy/falsy rules that trip up even experienced devs.

must medium ⏱ 18m

Debounce & Throttle — implement from scratch

Two patterns every frontend engineer must be able to implement cold: what they do, when each fits, and the code.

must medium ⏱ 20m

Functional JS: Currying, Composition & Pure Functions

Pure functions, immutability, currying, partial application, and function composition — the functional toolkit asked at mid-senior interviews.

deep medium ⏱ 22m

Generators & Iterators

Symbol.iterator, the iterator protocol, generator functions, lazy sequences, and async generators — the machinery behind for...of and spread.

deep hard ⏱ 20m

ES Modules vs CommonJS

Static vs dynamic, live bindings vs copies, tree shaking, circular dependencies — what every senior JS dev must know about the module system.

deep medium ⏱ 18m

TypeScript: Generics, Utility Types & Type Narrowing

The TS features that separate shallow knowledge from real depth: generics, the built-in utility types, type narrowing, and mapped/conditional types.

must hard ⏱ 25m

Error Handling Patterns

Error types, try/catch/finally semantics, async error propagation, custom error classes, and the patterns that prevent silent failures.

must medium ⏱ 18m

Design Patterns in JavaScript

Observer, Module, Singleton, Factory, and Strategy — the classic patterns reframed for modern JS/TS, with real-world React/Node parallels.

deep medium ⏱ 22m

Immutability, WeakRefs & Memory Management

Shallow vs deep clone, Object.freeze, structuredClone, WeakMap/WeakSet for memory-safe caching, and how the garbage collector works.

deep hard ⏱ 20m

⚛️ React & React Native

Know the internals, not just the API — rendering, refs, perf, architecture.

Rendering, Reconciliation & Re-renders

What triggers a re-render, how reconciliation and keys work, and where memoization actually helps.

must medium ⏱ 22m

RN Architecture: Bridge vs JSI / Fabric

The three threads, why the old bridge was slow, and what JSI, Fabric, and TurboModules changed.

must hard ⏱ 24m

Hooks Deep Dive: refs, effects & memo

useRef's dual role, useEffect vs useLayoutEffect timing, the rules of hooks, and custom hooks.

deep medium ⏱ 20m

useImperativeHandle + forwardRef

Expose a controlled set of imperative methods from a child to its parent via a ref — the right way.

must medium ⏱ 16m

useCallback vs useMemo — when they actually help

The precise difference between the two hooks, what 'referential stability' means, and the honest truth about when memoization helps vs when it's just noise.

must medium ⏱ 18m

State Management: Redux Toolkit vs Zustand vs Context

When to reach for each solution, how Redux Toolkit modernizes Redux, how Zustand works, and the real performance gotchas with Context API.

must medium ⏱ 26m

List Performance: FlatList, FlashList & Virtualization

Why ScrollView kills long lists, how virtualization works, FlatList props that matter, and when to upgrade to FlashList.

must hard ⏱ 24m

Animations: Animated API vs Reanimated 3

Why the JS thread causes animation jank, how the Animated API works, and what Reanimated's worklets change — with practical patterns for both.

must hard ⏱ 26m

React Navigation: Stacks, Tabs, Deep Links

How React Navigation's navigator types work, how to pass params type-safely, nested navigators, and wiring up deep linking.

must medium ⏱ 24m

React 18: Concurrent Rendering & New Hooks

What concurrent rendering actually means, how useTransition and useDeferredValue let you keep UIs responsive, and where Suspense now fits.

must hard ⏱ 22m

App Lifecycle & Background Tasks

AppState transitions, what happens when your app backgrounds, foreground/background detection, and handling tasks that must complete when the app isn't active.

deep medium ⏱ 18m

Storage, Networking & Offline Patterns

AsyncStorage vs MMKV for persistence, React Query for server state, and offline-first patterns with optimistic updates.

must medium ⏱ 24m

Error Boundaries & Crash Handling

What error boundaries catch (and don't), how to implement one, RN-specific crash reporting, and the React 18 updates to error handling.

must medium ⏱ 18m

Testing React Native: RNTL, Jest & Detox

The testing pyramid for RN apps — unit tests with Jest, component tests with React Native Testing Library, and E2E with Detox.

deep medium ⏱ 22m

Platform APIs, Native Modules & Platform-Specific Code

How to write platform-specific UI and logic, when and how to create a native module, and the Platform API patterns every RN dev must know.

deep medium ⏱ 20m

Expo, EAS Build & OTA Updates

Managed vs bare workflow, when to use Expo, EAS Build for production apps, and how CodePush/OTA updates work and what they can't update.

must medium ⏱ 20m

🧩 Data Structures & Algorithms

The 18 patterns that cover ~90% of startup SDE-2 DSA. Quality over grind.

Arrays & Hashing

Frequency counting, seen-sets, and prefix products — the warm-up category that unlocks O(1) lookups and turns quadratic scans into linear.

must easy ⏱ 30m

Two Pointers

Opposite-end and read/write pointers — clean, optimal, O(n)/O(1) solutions and a startup favorite. Your move-zeros gap lives here.

must medium ⏱ 28m

Sliding Window

Fixed and variable windows over a sequence — turn O(n·k) substring/subarray scans into O(n).

must medium ⏱ 28m

Binary Search

The template that kills off-by-one bugs, plus 'search on the answer' — the variant that trips people up.

must medium ⏱ 28m

Trees & BSTs

DFS (pre/in/post) as recursion, BFS as a queue, and the BST invariant — recursion fluency, tested constantly.

must medium ⏱ 32m

Graphs

BFS/DFS on grids and adjacency lists, connected components, topological sort, and union-find — the startup staples.

must medium ⏱ 32m

Dynamic Programming

Spot overlapping subproblems, define the state, write the recurrence — then memoize or tabulate. Templates for 1D, 2D, knapsack, LIS, and grids.

deep hard ⏱ 36m

Heaps & Priority Queues

Top-K, streaming medians, and merge-k-sorted with a heap — O(log n) access to the smallest/largest, and the two-heap balance trick.

deep medium ⏱ 28m

Linked Lists

The dummy-head technique, fast/slow pointers for cycles and middles, and clean in-place reversal — pointer fluency under pressure.

must medium ⏱ 30m

Stack & Queue

LIFO/FIFO mechanics, the monotonic stack for next-greater problems, min-stack, and sliding-window-max via a deque.

must medium ⏱ 30m

Backtracking

The choose / explore / un-choose template, decision-tree thinking, and pruning — the engine behind subsets, permutations, combinations, and N-Queens.

deep hard ⏱ 32m

Intervals

The sort-by-start trick, merging overlaps, insert interval, non-overlapping removal, and meeting-rooms scheduling with a heap.

must medium ⏱ 26m

🏗️ System Design

Frontend and backend design — a repeatable framework and the core building blocks.

System Design: the framework

A repeatable 6-step structure, capacity math, latency numbers, CAP/PACELC, and consistency models so you never freeze on an open-ended design question.

must hard ⏱ 32m

The building blocks of a scalable service

Load balancers, gateways, caching, CDN, queues vs pub/sub vs streams, databases, object storage, search, rate limiters, service discovery — each with when to reach for it and the tradeoff.

must hard ⏱ 34m

Databases: SQL vs NoSQL, indexing, transactions

The NoSQL families and when to use each, B-tree vs LSM indexing, ACID vs BASE and isolation levels, sharding & rebalancing, replication topologies, and access-patterns-drive-the-schema.

must hard ⏱ 34m

Node.js internals: event loop, streams, scaling

How Node stays fast on one thread — libuv loop phases, the thread pool, CPU vs IO-bound work, clustering & worker_threads, streams/backpressure, GC, and production pitfalls.

deep medium ⏱ 30m

Classic designs & recurring patterns

Two warm-up designs (URL shortener, rate limiter) plus the reusable patterns interviewers probe: fan-out, CQRS, event sourcing, idempotency, outbox, consistent hashing, replication, sharding, hot keys, backpressure.

deep medium ⏱ 32m

Frontend system design framework

A repeatable method for frontend design rounds: requirements → API/data → component architecture → state → rendering (CSR/SSR/SSG/ISR) → performance budget → network/caching → a11y → offline.

must medium ⏱ 30m

The feed problem: applying the framework

A deep concept walkthrough of the feed: fan-out on write vs read, the hybrid for celebrities, ranking, cursor pagination, caching, and the client-side concerns (virtualization, optimistic UI).

deep medium ⏱ 28m

Caching & CDN deep dive

Caching layers, write strategies (aside/through/back), eviction, the three big failure modes (stampede, penetration, avalanche), invalidation & consistency, CDN internals, and Redis data structures.

must hard ⏱ 32m

APIs & communication: REST, gRPC, GraphQL, WebSockets

API styles and when to choose each, REST done right (status codes, idempotency, pagination, versioning), real-time options, sync vs async, and resilience: retries, timeouts, circuit breakers, rate limiting.

must medium ⏱ 30m

🎯 Behavioral & Job Search

The non-coding half that decides offers and pay. Do not skip it.

🤖 AI Engineering Roadmap

A 6-phase path to become an AI engineer — built on your existing backend skills, hosted on your LeetCode clone.

🔮 JS Output Questions

72 predict-the-output questions — the category that trips up even experienced JS devs in real interviews.

🧱 Low-Level Design (LLD)

Design real UI systems from scratch — EventEmitter, Modal, Autocomplete, Toast, and Form Validation with full TypeScript implementations.

🖥️ Frontend System Design

Architect production-scale frontend systems — feeds, chat, video, Kanban — using the 6-step framework.

🏗️ High-Level Design (HLD)

Design scalable backend systems — URL shortener, rate limiter, Twitter feed, notifications, and search autocomplete.