Interview prep that respects your brain.
Every concept is 4 small tabs: a 5-year-old metaphor, a live sandbox, the exact interview question, and a deep dive for when the dopamine hits. Pick a 2-minute bite below.
Module A: Core JavaScript & DOM
· The Micro-LayerThe `this` Keyword
Whoever holds the phone owns the fingerprint.
⏱️ ~2 min · Start →
Hoisting
A pre-pass that lifts declarations to the top of the stack.
⏱️ ~3 min · Start →
Closures & GC
A backpack of variables a function never puts down.
⏱️ ~3 min · Start →
Polyfill Factory
Rebuild Array.map on a factory line for an old browser.
⏱️ ~3 min · Start →
Event Loop & Microtasks
The restaurant order queue that never blocks the kitchen.
⏱️ ~5 min · Start →
Prototype Chain
Property lookup climbs a ladder of parent objects.
⏱️ ~4 min · Start →
Promises & Async/Await
A ticket stub that resolves when your order is ready.
⏱️ ~5 min · Start →
Generators & Async Iterators
A function that can pause mid-execution and hand back control.
⏱️ ~4 min · Start →
Proxies & Reflect API
A bouncer who intercepts every property access.
⏱️ ~4 min · Start →
Scope & Lexical Environments
Each function lives inside a set of nested rooms.
⏱️ ~4 min · Start →
Module B: Data Structures & Algorithms
· Visual & KinestheticSliding Window
A magnifying glass gliding over a film strip.
⏱️ ~2 min · Start →
Two Pointers
Two fingers walking toward each other.
⏱️ ~3 min · Start →
Recursion + Call Stack
Russian dolls that remember how to close themselves.
⏱️ ~3 min · Start →
Trees & Graphs (BFS/DFS)
Family trees and subway maps.
⏱️ ~4 min · Start →
Tries (Prefix Trees)
A dictionary where each letter branches the path.
⏱️ ~3 min · Start →
LRU Cache
A hotel that evicts the longest-idle guest when full.
⏱️ ~3 min · Start →
Dynamic Programming
Remember sub-answers so you never solve the same puzzle twice.
⏱️ ~5 min · Start →
Topological Sort
Ordering tasks when some must come before others.
⏱️ ~3 min · Start →
Heap / Priority Queue
A self-sorting pile that always surfaces the most urgent item.
⏱️ ~3 min · Start →
Debounce & Throttle
Rate-limiters: wait for silence vs. pace the calls.
⏱️ ~4 min · Start →
Event Emitter / Pub-Sub
A bulletin board where subscribers hear only what they posted for.
⏱️ ~3 min · Start →
Linked List
Train cars connected by couplers — reverse the train by flipping one coupler at a time.
⏱️ ~4 min · Start →
Strings & Arrays: Core Patterns
Five patterns that unlock 80% of string/array interview problems.
⏱️ ~4 min · Start →
Module C: Framework Architecture & Performance
· The Comparison LayerVirtual DOM vs Signals
React redraws the blueprint; Signals flip one wire.
⏱️ ~3 min · Start →
Fiber & Concurrent Rendering
Render phase you can pause; commit phase you can't.
⏱️ ~4 min · Start →
Flux vs Atomic vs Proxy State
Redux vs Jotai vs Valtio — three shapes of truth.
⏱️ ~4 min · Start →
Core Web Vitals & CRP
LCP, CLS, INP — and the render path that produces them.
⏱️ ~3 min · Start →
SSR vs SSG vs ISR vs RSC
Cook-to-order, batch-bake, reheat-on-demand, or skip the oven.
⏱️ ~3 min · Start →
Micro-Frontends & Module Federation
Ship independently deployable UI slices into one shell.
⏱️ ~4 min · Start →
Code Splitting & Tree Shaking
Only ship the JavaScript the current page actually needs.
⏱️ ~3 min · Start →
Hydration & Islands Architecture
Static HTML comes alive tab-by-tab, not all at once.
⏱️ ~3 min · Start →
Monorepos at Scale
One repo, many packages — cache the work you've already done.
⏱️ ~3 min · Start →
Module D: System Design
· The Macro-LayerCompound Components
<Select> and <Option> that share a private channel.
⏱️ ~3 min · Start →
XSS / CSRF / CORS / Clickjacking
The four locks on the front door.
⏱️ ~4 min · Start →
SSE vs WebSocket vs Long Poll
Walkie-talkie vs phone call vs checking the mailbox.
⏱️ ~3 min · Start →
Design Systems & Token Architecture
One source of truth that feeds every button in every theme.
⏱️ ~3 min · Start →
Backend-for-Frontend (BFF)
A tailor-made API gateway that speaks exactly your UI's dialect.
⏱️ ~3 min · Start →
CDN & Cache Control Strategies
stale-while-revalidate, surrogate keys, and the edge cache.
⏱️ ~3 min · Start →
GraphQL Schema & N+1 Problem
Ask for exactly what you need — and batch what the loader fetches.
⏱️ ~4 min · Start →
Offline-First & Background Sync
The app keeps working when the wifi drops.
⏱️ ~4 min · Start →
Module E: Browser Internals & V8
· Under the HoodCritical Rendering Path
DOM → CSSOM → Layout → Paint → Composite in one breath.
⏱️ ~3 min · Start →
V8 JIT & Hidden Classes
V8 bets on your object's shape — break the shape, lose the bet.
⏱️ ~4 min · Start →
Memory Leaks & Mark-Sweep GC
Detached DOM nodes that haunt the heap forever.
⏱️ ~3 min · Start →
Layout Thrashing & Forced Reflows
Read-then-write loops that make the browser cry.
⏱️ ~3 min · Start →
Web Workers & Off-Thread JS
Move the heavy lift to a background thread the UI never blocks on.
⏱️ ~3 min · Start →
WebAssembly Basics
Near-native speed in the browser sandbox.
⏱️ ~4 min · Start →
Module F: Security & Authentication
· Trust NothingJWT vs Session Cookies
Stamped passport vs. a name on the guest list.
⏱️ ~3 min · Start →
OAuth2 & OIDC Flows
Delegate the key to a trusted locksmith, never share the key.
⏱️ ~4 min · Start →
Content Security Policy
An allowlist that tells the browser which scripts to trust.
⏱️ ~3 min · Start →
CORS & Preflight Requests
The browser knocks before entering a cross-origin room.
⏱️ ~3 min · Start →
SSO & SAML
One badge unlocks every door in the building.
⏱️ ~3 min · Start →
Supply Chain Security & SRI
A checksum that proves the CDN didn't swap your script.
⏱️ ~3 min · Start →
Module G: Full-Stack & Infrastructure
· The Integration LayerHTTP/2 vs HTTP/3 & QUIC
Multiplexed lanes vs. UDP packets that don't block on loss.
⏱️ ~3 min · Start →
Edge Workers & Geo-Caching
Run code 50ms from the user, not 200ms away in Virginia.
⏱️ ~3 min · Start →
Service Workers & Cache API
A proxy that intercepts every fetch and decides where to look.
⏱️ ~3 min · Start →
IndexedDB & Structured Storage
A real database that lives in the browser tab.
⏱️ ~3 min · Start →
CI/CD for Frontend Teams
Preview deploys, bundle budgets, and lighthouse gates.
⏱️ ~3 min · Start →
Frontend Observability & RUM
Measure real users, not just Lighthouse scores.
⏱️ ~3 min · Start →
Module H: Leadership & Staff Craft
· Org-Level ImpactWriting Effective RFCs
The document that builds alignment before a single line is written.
⏱️ ~3 min · Start →
Accessibility (WCAG 2.2)
ARIA, focus management, and the four POUR principles.
⏱️ ~4 min · Start →
i18n & RTL Layout
Mirror the entire UI for a language that reads right to left.
⏱️ ~3 min · Start →
Testing Pyramid & E2E Strategy
Unit → Integration → E2E — know when each layer earns its cost.
⏱️ ~3 min · Start →
Tech Debt & Stack Migrations
Deprecate the old without breaking the team shipping on top of it.
⏱️ ~4 min · Start →
Code Review as Mentorship
Reviews that teach, not just gatekeep.
⏱️ ~2 min · Start →
Module I: React Deep Dive
· Hooks, Patterns & React 18All 15 React Hooks Explained
useState to useSyncExternalStore — what each hook solves and when to reach for it.
⏱️ ~5 min · Start →
useEffect: the Right Mental Model
It's not a lifecycle hook — it's a synchronization primitive.
⏱️ ~4 min · Start →
memo, useMemo & useCallback
Memoization is an optimization, not a correctness fix — know when it helps.
⏱️ ~3 min · Start →
Concurrent Features: Transitions & Suspense
useTransition lets you mark slow updates as non-urgent — the UI stays responsive.
⏱️ ~4 min · Start →
React Server Components (RSC)
Zero JS shipped to the client — the component lives entirely on the server.
⏱️ ~4 min · Start →
Render Props, HOC & Compound Components
Three ways to share logic — and why hooks replaced the first two.
⏱️ ~4 min · Start →
Context: Power & Pitfalls
Context re-renders every consumer — here's how to avoid the blast radius.
⏱️ ~3 min · Start →
State Management: Zustand vs Jotai vs Redux Toolkit
Each solves a different scale of problem — pick the right tool.
⏱️ ~4 min · Start →
Reconciliation & the Role of Keys
Wrong key = React destroys + remounts instead of updating. Subtle, deadly.
⏱️ ~3 min · Start →
Testing React: RTL & MSW
Test what the user sees, not the component's internals.
⏱️ ~4 min · Start →
Module J: Next.js Deep Dive
· App Router, SSR & the EdgeApp Router Mental Model
Folders are routes, files are slots — layout.tsx, page.tsx, loading.tsx explained.
⏱️ ~4 min · Start →
Server vs Client Components Decision Tree
Default to Server — add 'use client' only when you need interactivity or browser APIs.
⏱️ ~3 min · Start →
Data Fetching: fetch, cache & revalidate
fetch() in Next.js is extended — cache:'force-cache', revalidate:60, tags.
⏱️ ~4 min · Start →
Static vs Dynamic vs Streaming Rendering
generateStaticParams → static. Dynamic headers → dynamic. Suspense → streaming.
⏱️ ~4 min · Start →
Route Handlers & Middleware
API routes are gone — route.ts handles REST; middleware.ts runs at the edge.
⏱️ ~3 min · Start →
Image & Font Optimisation
next/image auto-sizes + lazy-loads; next/font eliminates layout shift from custom fonts.
⏱️ ~2 min · Start →
Authentication Patterns (Auth.js / NextAuth v5)
Sessions, JWTs, OAuth providers, and protecting routes with middleware.
⏱️ ~4 min · Start →
Deployment, Edge Runtime & Vercel
Node.js runtime vs Edge runtime — what you gain and lose at the edge.
⏱️ ~3 min · Start →
Error Boundaries & error.tsx
error.tsx catches render errors per-segment — not-found.tsx handles 404s.
⏱️ ~2 min · Start →
Module K: Angular Deep Dive
· DI, RxJS & SignalsComponents & Decorators
@Component is metadata — the decorator tells the framework how to compile your class.
⏱️ ~3 min · Start →
Dependency Injection System
Hierarchical injectors: platform → root → feature → component. Scope matters.
⏱️ ~4 min · Start →
Change Detection: Default vs OnPush
Default checks everything. OnPush checks only when inputs change or an Observable emits.
⏱️ ~4 min · Start →
RxJS: Core Operators & Patterns
switchMap, mergeMap, concatMap, exhaustMap — four operators, four concurrency strategies.
⏱️ ~5 min · Start →
Angular Signals (v17+)
Fine-grained reactivity that eliminates zone.js overhead — the future of Angular.
⏱️ ~3 min · Start →
Standalone Components & the New Bootstrap
No NgModule required — import what you need directly in the component.
⏱️ ~3 min · Start →
Reactive Forms vs Template-Driven Forms
FormGroup + FormControl give you type-safe, testable forms without template magic.
⏱️ ~4 min · Start →
NgRx: Store, Effects & Selectors
Redux pattern for Angular — Actions flow in, Reducers compute state, Selectors slice it.
⏱️ ~5 min · Start →
Router, Lazy Loading & Guards
loadComponent() lazy-loads a standalone component on navigate — no NgModule wrapper.
⏱️ ~3 min · Start →
Angular Performance: trackBy, Pipes & Deferrable Views
@defer lets you lazy-render below-the-fold content without any router config.
⏱️ ~3 min · Start →
Module L: Authentication Patterns
· React, Angular, Node & OAuthReact Auth: Context, Guards & Token Storage
AuthProvider wraps the app; ProtectedRoute checks the badge; silent refresh renews it before expiry.
⏱️ ~4 min · Start →
Angular Auth: Interceptors, Guards & Services
HttpInterceptor attaches the token to every request and retries on 401 with a fresh one.
⏱️ ~4 min · Start →
Node.js JWT Auth: Sign, Verify & Middleware
jwt.sign() stamps a hall pass; the middleware checks the signature on every request.
⏱️ ~5 min · Start →
Refresh Token Rotation & Silent Refresh
Short access tokens + long refresh tokens — rotate on use and detect theft via reuse.
⏱️ ~4 min · Start →
Social Auth: OAuth2, PKCE & Auth.js
PKCE replaces client_secret for SPAs — the browser proves it requested the code.
⏱️ ~4 min · Start →