Interview preparation · Six weeks

The full stack interview roadmap

Everything an interview loop can ask a full stack developer with around three years of experience, written out in full. 725 topics across 13 tracks, phased over six weeks. Most carry the actual question an interviewer would ask, so you can test yourself rather than only read.

topics and questions
725topics and questions
marked core
456marked core
tracks
13tracks
week runway
6week runway

The six weeks

  1. Week 01132 topics

    JavaScript and TypeScript deep dive, DSA foundations, resume rebuilt

  2. Week 02118 topics

    React, the browser and CSS, lists and stacks — start applying

  3. Week 03104 topics

    Node, Express, auth, low level design and patterns, trees

  4. Week 04115 topics

    Postgres, MongoDB, Redis, SQL by hand, graphs and heaps

  5. Week 05129 topics

    System design, DevOps and cloud, dynamic programming and binary search

  6. Week 06127 topics

    React Native, testing, CS fundamentals, behavioural rounds, mock interviews

01

JavaScript & TypeScript

100 topics

The single highest-yield track. Every round — frontend, backend, machine coding — is conducted in this language, and interviewers probe it harder than anything else on your resume.

Language fundamentals

  • var, let, const and the temporal dead zone

    Why does reading a `let` before its declaration throw, while `var` gives undefined?

    W1 Core

  • Hoisting — variables, functions, classes

    What exactly gets hoisted, and what does not?

    W1 Core

  • Primitives vs reference types

    Is JavaScript pass-by-value or pass-by-reference? Defend your answer.

    W1 Core

  • Type coercion, == vs ===, truthy and falsy

    Predict the output: `[] == false`, `null == undefined`, `NaN == NaN`

    W1 Core

  • typeof, instanceof, Array.isArray, Object.prototype.toString

    Why is `typeof null` object, and how do you reliably detect an array?

    W1 Core

  • Destructuring — object, array, nested, defaults, rest

    Swap two variables without a temp; pull a nested value with a default.

    W1 Core

  • Spread vs rest; shallow vs deep copy

    Why does spreading a nested object still share references?

    W1 Core

  • Optional chaining, nullish coalescing, logical assignment

    When does `??` behave differently from a plain OR?

    W1 Core

  • Template literals and tagged templates

    W1 Likely

  • Strict mode — what it actually changes

    W1 Likely

  • Number precision, 0.1 + 0.2, Number.EPSILON, BigInt

    Why is `0.1 + 0.2 !== 0.3` and how do you compare floats safely?

    W1 Likely

  • JSON.stringify and parse — replacer, reviver, what is lost

    What happens to undefined, functions, Symbols and circular refs?

    W1 Likely

  • Symbols and well-known symbols

    What does `Symbol.iterator` let you do?

    W1 Senior

  • Labeled statements, switch fallthrough, comma operator

    W1 Senior

Scope, closures and this

  • Lexical scope and the scope chain

    W1 Core

  • Closures — definition, uses, memory cost

    Explain a closure to someone who has never heard the word.

    W1 Core

  • The classic loop + setTimeout puzzle

    Why does a `var` loop print 3,3,3 and `let` print 0,1,2? Fix it three ways.

    W1 Core

  • this — default, implicit, explicit, new, arrow binding

    What is `this` inside a method passed as a callback, and how do you fix it?

    W1 Core

  • call, apply, bind — and implement your own bind

    Write `Function.prototype.myBind` supporting partial application.

    W1 Core

  • Arrow functions vs regular functions

    Name four concrete differences. When must you NOT use an arrow?

    W1 Core

  • Practical closures: once, memoize, counter, private state

    Implement `memoize(fn)` with a cache key strategy.

    W1 Core

  • Currying and partial application

    Implement `curry(fn)` and infinite currying `sum(1)(2)(3)()`.

    W1 Likely

  • IIFE and the module pattern

    W1 Likely

  • Function composition and pipe

    Implement `pipe(...fns)` and `compose(...fns)`.

    W1 Senior

Objects, prototypes and classes

  • The prototype chain; __proto__ vs prototype

    How does property lookup actually resolve?

    W1 Core

  • Constructor functions and new — implement myNew

    Write a function that replicates what `new` does, step by step.

    W1 Core

  • ES6 classes, extends, super, static, private #fields

    Are classes just syntactic sugar? What is genuinely new?

    W1 Core

  • Prototypal vs classical inheritance

    W1 Core

  • Object.create, getPrototypeOf, setPrototypeOf

    W1 Core

  • Property descriptors and Object.defineProperty

    What do writable, enumerable and configurable control?

    W1 Likely

  • Object.freeze, seal, preventExtensions; deep freeze

    Write `deepFreeze(obj)`.

    W1 Likely

  • Getters, setters and computed properties

    W1 Likely

  • Object statics: keys, values, entries, assign, fromEntries, groupBy

    W1 Likely

  • Mixins and composition over inheritance

    W1 Senior

  • Proxy and Reflect

    How would you build an observable object with a Proxy?

    W1 Senior

Arrays, iteration and collections

  • Every array method and its return value

    map vs forEach vs filter vs reduce — when does each one belong?

    W1 Core

  • Implement your own map, filter, reduce, forEach

    Write `Array.prototype.myReduce` handling the no-initial-value case.

    W1 Core

  • reduce in anger: groupBy, flatten, frequency map, pipe

    Group an array of objects by a key using only reduce.

    W1 Core

  • sort — default lexicographic behaviour, comparators, stability

    Why does `[10,9,1].sort()` give 1,10,9?

    W1 Core

  • Map and Set — and why not just use an object

    When is a Map strictly better than a plain object?

    W1 Core

  • WeakMap and WeakSet

    Why would you cache with a WeakMap instead of a Map?

    W1 Likely

  • flat, flatMap; implement your own flatten with depth

    W1 Likely

  • Array-likes vs iterables; arguments; Array.from

    W1 Likely

  • Iterators and the iterable protocol

    Make a plain object iterable with `for...of`.

    W1 Likely

  • Generators and yield; infinite sequences; async generators

    W1 Senior

  • Typed arrays and ArrayBuffer

    W1 Senior

Asynchronous JavaScript

  • Sync vs async, blocking vs non-blocking

    W1 Core

  • Callbacks, callback hell, error-first convention

    W1 Core

  • Promises — states, then/catch/finally, chaining rules

    What does returning a value vs a promise inside `.then` do?

    W1 Core

  • Promise.all vs allSettled vs race vs any

    You fire five API calls and one may fail. Which do you use and why?

    W1 Core

  • async/await, try/catch, for await...of

    W1 Core

  • Sequential vs parallel awaits — the classic perf bug

    Spot why awaiting inside a loop made an endpoint 10x slower.

    W1 Core

  • The event loop: call stack, task queue, microtask queue

    Predict the output order of setTimeout, Promise.then and sync logs.

    W1 Core

  • Microtasks vs macrotasks

    Why does a Promise callback beat a setTimeout(0)?

    W1 Core

  • Debounce and throttle — implement both

    Write debounce with leading and trailing edge options. Where would you use each?

    W1 Core

  • Implement your own Promise (then, catch, resolve, reject)

    A senior-round favourite. Build it from scratch.

    W1 Core

  • Implement Promise.all and Promise.allSettled polyfills

    W1 Core

  • Retry with exponential backoff

    Write `retry(fn, attempts, baseDelay)` with jitter.

    W1 Core

  • Concurrency control — limit N parallel promises

    Implement a promise pool that runs at most 3 requests at a time.

    W1 Core

  • promisify; converting a callback API to promises

    W1 Likely

  • AbortController — cancelling fetch, timeouts, cleanup

    W1 Likely

  • setTimeout(fn,0), setInterval drift, requestAnimationFrame, requestIdleCallback

    W1 Likely

  • Race conditions in async UI code

    Two searches fire, the slow one lands last. How do you fix it?

    W1 Likely

  • Async iterators and streaming responses

    W1 Senior

Modules, tooling and the ecosystem

  • CommonJS vs ES modules

    Differences in loading, hoisting, live bindings and circular dependencies.

    W1 Core

  • Dynamic import and top-level await

    W1 Core

  • npm vs yarn vs pnpm; lockfiles; npm ci vs npm install

    Why does a lockfile matter, and what breaks without one?

    W1 Core

  • Semver, caret vs tilde ranges, peer and dev dependencies

    W1 Core

  • Bundlers: Webpack vs Vite vs esbuild vs Rollup

    Why is Vite fast in dev, and what changes in a production build?

    W1 Likely

  • Tree shaking, side effects, package.json exports and module fields

    W1 Likely

  • Babel, transpiling vs polyfilling, core-js, browserslist

    W1 Likely

  • Source maps — how and why

    W1 Likely

  • Monorepos: workspaces, Turborepo, Nx

    W1 Senior

  • Publishing a package; dual CJS/ESM builds

    W1 Senior

Memory, gotchas and puzzles

  • Garbage collection and mark-and-sweep

    W1 Core

  • Memory leaks in JS: closures, listeners, timers, detached DOM

    How would you find a leak in a long-running SPA?

    W1 Core

  • Deep clone — handle nested objects, arrays, Date, Map, Set, cycles

    Write it without structuredClone, then mention structuredClone.

    W1 Core

  • Deep equal — implement it

    W1 Core

  • Event bubbling, capturing, delegation

    stopPropagation vs preventDefault vs stopImmediatePropagation.

    W1 Core

  • Output-prediction puzzles combining hoisting, closures and the event loop

    Do 20 of these. They open a huge share of screening rounds.

    W1 Likely

  • Regex: groups, lookahead, greedy vs lazy, flags

    Validate an email, extract all matches with groups.

    W1 Likely

  • Dates, timezones, and why teams reach for date-fns or dayjs

    Why is storing timestamptz in UTC the safe default?

    W1 Likely

  • Intl for numbers, currency, dates and relative time

    W1 Senior

  • The Temporal API

    W1 Senior

TypeScript

  • Why TypeScript; structural vs nominal typing

    W1 Core

  • any vs unknown vs never vs void

    When must you use unknown instead of any?

    W1 Core

  • Interfaces vs type aliases

    Which do you reach for, and when does the difference actually matter?

    W1 Core

  • Union and intersection types, literal types, discriminated unions

    Model an API response that is either success or error, exhaustively.

    W1 Core

  • Generics — functions, interfaces, classes, constraints, defaults

    Write a generic `pick<T, K extends keyof T>`.

    W1 Core

  • Utility types: Partial, Required, Pick, Omit, Record, Exclude, Extract, ReturnType, Awaited

    W1 Core

  • Type narrowing, type guards and `is` predicates

    W1 Core

  • Exhaustiveness checking with never

    How do you make the compiler fail when a new union member is added?

    W1 Core

  • Typing React: props, children, events, hooks, generic components

    W1 Core

  • Typing Express: req, res, middleware, custom request properties

    How do you add `req.user` in a type-safe way?

    W1 Core

  • keyof, typeof, indexed access types, as const

    W1 Likely

  • Enums vs const objects vs union of literals

    Why do many teams avoid TS enums?

    W1 Likely

  • tsconfig essentials: strict, strictNullChecks, target, module, paths

    W1 Likely

  • Conditional types and infer

    W1 Senior

  • Mapped types and template literal types

    Build a type that turns every key into an onXChange handler.

    W1 Senior

  • Declaration merging, module augmentation, .d.ts files

    W1 Senior

02

React & Frontend

98 topics

Interviewers assume anyone can wire up useState. What separates a 3-year candidate is knowing why a component re-rendered, when memoisation is useless, and how the browser turned your JSX into pixels.

React core

  • Virtual DOM, reconciliation, the diffing heuristics

    Is the virtual DOM faster than direct DOM manipulation? Answer honestly.

    W2 Core

  • Keys in lists — why index-as-key is a real bug

    Demonstrate a bug caused by index keys with a reorderable list of inputs.

    W2 Core

  • JSX — what it compiles to; fragments

    W2 Core

  • Props, children, composition, render props

    How do you avoid prop drilling without reaching for Redux?

    W2 Core

  • useState: batching, functional updates, state as a snapshot

    Why does calling setCount(c+1) twice only increment once?

    W2 Core

  • Controlled vs uncontrolled components

    W2 Core

  • Forms: validation, React Hook Form or Formik, error UX

    W2 Core

  • Conditional rendering patterns and their pitfalls

    Why does `count && <div/>` render a literal 0?

    W2 Core

  • Lifting state up

    W2 Core

  • Synthetic events; event delegation in React

    W2 Likely

  • StrictMode double-invocation in development

    Why does your effect run twice in dev, and what is it warning you about?

    W2 Likely

Hooks, in depth

  • The rules of hooks — and the reason behind them

    Why can't hooks be called conditionally? What breaks?

    W2 Core

  • useEffect: dependency array, cleanup, run timing

    W2 Core

  • useEffect pitfalls: infinite loops, stale closures, missing deps

    Your effect reads stale state. Diagnose and fix it.

    W2 Core

  • Race conditions in data-fetching effects

    Two fetches, the stale one resolves last. Fix it with a cleanup flag and with AbortController.

    W2 Core

  • You might not need an effect — derived state vs effects

    When is deriving during render strictly better than syncing in an effect?

    W2 Core

  • useRef: DOM refs, mutable values, previous-value pattern

    W2 Core

  • useMemo and useCallback — when they help and when they cost

    Why does wrapping everything in useCallback make things slower?

    W2 Core

  • React.memo and referential equality

    Show a case where React.memo does absolutely nothing.

    W2 Core

  • useReducer — when it beats useState

    W2 Core

  • useContext — and why context re-renders everything below it

    How do you stop a context update from re-rendering unrelated consumers?

    W2 Core

  • Custom hooks: useFetch, useDebounce, useLocalStorage, useOnClickOutside, usePrevious

    Write three of these from memory.

    W2 Core

  • useLayoutEffect vs useEffect

    When does the difference actually show up on screen?

    W2 Likely

  • useId, useTransition, useDeferredValue

    W2 Likely

  • useImperativeHandle and forwardRef

    W2 Likely

  • useSyncExternalStore

    How would you subscribe a component to an external store safely?

    W2 Senior

  • Class lifecycle equivalents

    componentDidMount, DidUpdate, WillUnmount, shouldComponentUpdate, getDerivedStateFromProps.

    W2 Likely

React internals and performance

  • Why did this component re-render? A systematic answer

    Walk through every reason React re-renders a component.

    W2 Core

  • Finding wasted renders: Profiler, React DevTools, why-did-you-render

    W2 Core

  • Code splitting: React.lazy, Suspense, route-based splitting

    W2 Core

  • List virtualisation with react-window or virtuoso

    At what list size does virtualisation start to matter?

    W2 Core

  • Error boundaries

    Why don't error boundaries catch errors in event handlers or async code?

    W2 Core

  • Fiber architecture: render phase vs commit phase

    W2 Likely

  • Concurrent rendering and automatic batching in React 18

    What changed about batching between React 17 and 18?

    W2 Likely

  • Portals — modals, tooltips, and the z-index escape hatch

    W2 Likely

  • Suspense for data fetching

    W2 Likely

  • React Server Components vs Client Components

    What can and cannot run in an RSC, and why?

    W2 Senior

  • Reconciliation edge cases: same position different type, remounting

    W2 Senior

State management

  • Server state vs client state vs UI state

    The single most useful distinction in modern frontend. Explain it.

    W2 Core

  • Context + useReducer as a Redux alternative

    Where does this pattern break down?

    W2 Core

  • Redux core: store, actions, reducers, immutability, middleware

    W2 Core

  • Redux Toolkit: createSlice, createAsyncThunk, RTK Query

    W2 Core

  • TanStack Query: caching, staleTime vs gcTime, invalidation, optimistic updates

    What problem does React Query solve that Redux never did?

    W2 Core

  • When would you NOT use Redux?

    W2 Core

  • Redux Thunk vs Saga

    W2 Likely

  • Zustand, Jotai, Recoil — and a defensible opinion

    W2 Likely

  • Optimistic updates and rollback

    W2 Likely

  • Normalising state shape; entity adapters

    W2 Senior

Routing and frameworks

  • React Router: routes, nested routes, params, useNavigate, protected routes

    W2 Core

  • CSR vs SSR vs SSG vs ISR

    Given a marketing site, a dashboard and a blog — pick a rendering strategy for each and justify it.

    W2 Core

  • Next.js: app router vs pages router, server components, server actions

    W2 Core

  • Hydration and hydration mismatch errors

    What causes 'text content did not match' and how do you fix it?

    W2 Core

  • Next.js API routes, middleware, image optimisation

    W2 Likely

  • Data loading patterns: loaders, actions, streaming

    W2 Likely

  • Micro-frontends and Module Federation — the honest tradeoffs

    W2 Senior

CSS and styling

  • Box model and box-sizing

    W2 Core

  • Position: static, relative, absolute, fixed, sticky

    Why did your sticky header stop sticking?

    W2 Core

  • Flexbox: every property, flex shorthand, common layouts

    What does `flex: 1` expand to?

    W2 Core

  • CSS Grid: template areas, auto-fit vs auto-fill, minmax

    Build a responsive card grid with no media queries.

    W2 Core

  • Specificity, cascade, inheritance, and !important

    Calculate specificity for three competing selectors.

    W2 Core

  • Units: px, rem, em, %, vh, vw, ch, clamp

    Why rem over px for typography?

    W2 Core

  • Media queries and mobile-first ordering

    W2 Core

  • Centring a div — every method and when each applies

    W2 Core

  • Stacking context and z-index bugs

    Why doesn't z-index: 9999 work here?

    W2 Core

  • Pseudo-classes and pseudo-elements

    W2 Likely

  • Transitions, transforms, keyframes; what triggers reflow vs repaint vs composite

    Which CSS properties are cheap to animate, and why?

    W2 Likely

  • CSS custom properties and theming, including dark mode

    W2 Likely

  • Tailwind vs CSS Modules vs styled-components — tradeoffs

    W2 Likely

  • Responsive images: srcset, sizes, picture, aspect-ratio

    W2 Likely

  • Container queries, :has(), cascade layers, logical properties

    W2 Senior

Browser and the web platform

  • What happens when you type a URL and press enter

    The classic. Go from DNS all the way to first paint.

    W2 Core

  • Critical rendering path: DOM, CSSOM, render tree, layout, paint, composite

    W2 Core

  • script defer vs async vs neither

    W2 Core

  • Reflow vs repaint; layout thrashing

    Spot the thrash in a loop that reads offsetHeight and writes styles.

    W2 Core

  • Cookies vs localStorage vs sessionStorage vs IndexedDB

    Compare on size, expiry, sync/async and whether they hit the server.

    W2 Core

  • Cookie attributes: HttpOnly, Secure, SameSite, domain, path

    Where do you store a JWT, and defend the choice.

    W2 Core

  • CORS: preflight, the Allow headers, credentials

    A request works in Postman but fails in the browser. Explain, then fix it properly.

    W2 Core

  • HTTP caching: Cache-Control, ETag, Last-Modified, max-age, no-cache vs no-store

    W2 Core

  • Core Web Vitals: LCP, INP, CLS, TTFB, FCP

    Name a concrete fix for each one.

    W2 Core

  • Debugging with DevTools: network, performance, memory, coverage

    W2 Core

  • Fetch API, headers, FormData, streaming, file uploads

    W2 Likely

  • Web Workers — moving CPU work off the main thread

    W2 Likely

  • Service workers, PWA, offline caching strategies

    W2 Likely

  • WebSockets vs SSE vs long polling

    Which would you pick for a live dashboard, and for a chat app?

    W2 Likely

  • Bundle analysis and performance budgets

    W2 Likely

  • Intersection, Resize and Mutation Observers

    W2 Senior

  • Web Vitals measurement in production, RUM vs lab data

    W2 Senior

Accessibility, SEO and frontend security

  • Semantic HTML and why div soup fails

    W2 Core

  • Keyboard navigation, focus management, focus trapping in modals

    W2 Core

  • ARIA roles, labels, live regions — and the first rule of ARIA

    W2 Core

  • Colour contrast, alt text, form labelling

    W2 Core

  • XSS: stored, reflected, DOM-based

    How does React protect you, and where does it stop? dangerouslySetInnerHTML.

    W2 Core

  • CSRF — what it is and how SameSite plus tokens stop it

    W2 Core

  • Content Security Policy

    W2 Likely

  • Clickjacking and X-Frame-Options

    W2 Likely

  • SEO: meta tags, Open Graph, sitemaps, robots.txt, structured data

    W2 Likely

  • Screen reader testing basics

    W2 Likely

  • Internationalisation: locale formatting, RTL, pluralisation

    W2 Senior

03

Node.js & Express

64 topics

Your strongest existing ground — which means the bar is higher. Expect questions about the event loop under load, streams, graceful shutdown and everything you have quietly let a framework handle for you.

Node fundamentals

  • What Node actually is: V8 plus libuv

    Is Node single-threaded? Answer precisely — it is a trick question.

    W3 Core

  • The Node event loop phases

    timers, pending callbacks, poll, check, close. Where does I/O actually resume?

    W3 Core

  • process.nextTick vs setImmediate vs Promise microtasks

    Predict the output order of all three.

    W3 Core

  • Blocking the event loop

    A JSON.parse of a 50MB payload stalls every request. Explain why and fix it.

    W3 Core

  • worker_threads vs child_process vs cluster

    Which do you reach for to hash passwords for 10k users, and why?

    W3 Core

  • Streams: readable, writable, duplex, transform; piping

    Copy a 5GB file without exhausting memory.

    W3 Core

  • Backpressure — what it is and what ignoring it does

    W3 Core

  • Buffers and binary data

    W3 Core

  • EventEmitter — and implement your own

    W3 Core

  • Error handling: operational vs programmer errors, uncaughtException, unhandledRejection

    Should you keep the process alive after an uncaught exception? Justify it.

    W3 Core

  • Graceful shutdown on SIGTERM with in-flight requests

    Write the shutdown handler.

    W3 Core

  • fs sync vs async vs promises; reading large files

    W3 Likely

  • CommonJS module resolution, the require cache, circular requires

    W3 Likely

  • process: argv, env, exit codes, signals

    W3 Likely

  • util.promisify, path, os, crypto

    W3 Likely

  • Memory limits, --max-old-space-size, heap snapshots

    W3 Likely

  • Profiling with --inspect, clinic.js, flame graphs

    How do you find which endpoint is burning CPU in production?

    W3 Likely

  • Native addons and N-API

    W3 Senior

  • Node internals: libuv thread pool sizing (UV_THREADPOOL_SIZE)

    W3 Senior

Express and API design

  • The request lifecycle; how middleware chaining works

    Implement a mini Express with app.use and next().

    W3 Core

  • Middleware types and ordering

    Why does your auth middleware not run for this route?

    W3 Core

  • next() vs next(err); the async error trap

    Why does a rejected promise in an async handler hang the request in Express 4?

    W3 Core

  • Routing, route params, query strings, Router modules

    W3 Core

  • HTTP status codes that carry meaning

    200 vs 201 vs 204, 400 vs 401 vs 403 vs 404 vs 409 vs 422 vs 429.

    W3 Core

  • REST principles, resource naming, idempotency

    Which HTTP methods are idempotent? Why does it matter for retries?

    W3 Core

  • Validation at the boundary with Zod or Joi

    W3 Core

  • Centralised error handling and custom error classes

    Design the error response shape for a public API.

    W3 Core

  • Pagination: offset vs cursor/keyset

    Why does OFFSET 100000 get slow, and what replaces it?

    W3 Core

  • Filtering, sorting, field selection

    W3 Core

  • API versioning strategies

    W3 Core

  • Rate limiting in Express, and doing it correctly behind a load balancer

    W3 Core

  • Structured logging with pino or winston; correlation IDs

    How do you trace one user request across three services?

    W3 Core

  • Health checks: liveness vs readiness

    W3 Core

  • Caching layer: cache-aside with Redis, TTLs, invalidation

    W3 Core

  • Background jobs with BullMQ: retries, backoff, dead-letter, idempotency

    Your email job ran twice. How do you make it safe?

    W3 Core

  • File uploads: multer, streaming to S3, presigned URLs

    Why is a presigned URL better than proxying the upload through your server?

    W3 Likely

  • Compression, helmet, CORS configuration

    W3 Likely

  • Request timeouts and circuit breakers

    W3 Likely

  • Webhooks: signature verification, replay protection, retries

    W3 Likely

  • OpenAPI/Swagger documentation

    W3 Likely

  • Clustering vs container replicas; PM2

    W3 Likely

  • Long-running requests, SSE and WebSockets in Express

    W3 Likely

  • GraphQL: schema, resolvers, N+1 and DataLoader

    When is GraphQL the wrong choice?

    W3 Senior

  • tRPC and end-to-end type safety

    W3 Senior

  • NestJS: modules, providers, dependency injection, decorators

    Increasingly asked at product companies.

    W3 Senior

  • Fastify vs Express — why teams migrate

    W3 Senior

Authentication, authorisation and security

  • Authentication vs authorisation

    W3 Core

  • Sessions plus cookies vs JWT

    Give a scenario where sessions beat JWT, and one where the reverse is true.

    W3 Core

  • JWT anatomy: header, payload, signature; HS256 vs RS256

    Can you decode a JWT without the secret? What does that imply about payload contents?

    W3 Core

  • Access tokens, refresh tokens, rotation, revocation

    How do you log a user out of a stateless JWT system?

    W3 Core

  • Where to store tokens: httpOnly cookie vs localStorage

    Argue both sides, then pick one.

    W3 Core

  • Password hashing: bcrypt or argon2, salting, work factor

    Why is SHA-256 the wrong tool for passwords?

    W3 Core

  • RBAC vs ABAC; permission middleware design

    W3 Core

  • SQL injection and NoSQL injection

    Show a vulnerable query and its parameterised fix.

    W3 Core

  • OWASP Top 10 — name them and explain each

    W3 Core

  • IDOR — the most common real-world API bug

    Your endpoint is /orders/:id. What is missing?

    W3 Core

  • Secrets management; never committing keys; env var hygiene

    W3 Core

  • OAuth 2.0 authorisation code flow with PKCE; OpenID Connect

    Walk through Google sign-in end to end.

    W3 Likely

  • HTTPS and the TLS handshake; certificates and the CA chain

    W3 Likely

  • SSRF, mass assignment, prototype pollution

    W3 Likely

  • Multi-tenancy and data isolation

    W3 Likely

  • Audit logging and PII handling

    W3 Likely

  • mTLS, service-to-service auth, short-lived credentials

    W3 Senior

  • Encryption at rest vs in transit; key rotation

    W3 Senior

04

Databases: Postgres, MongoDB, Redis

97 topics

The track that most often decides a backend offer. Writing queries is table stakes — they will ask you to read a query plan, pick an index, choose an isolation level and defend a schema.

SQL and PostgreSQL fundamentals

  • Relational model; primary, foreign, composite, surrogate vs natural keys

    W4 Core

  • Postgres data types: text vs varchar, numeric vs float, timestamptz vs timestamp, uuid, jsonb, arrays, enums

    Why timestamptz over timestamp, always?

    W4 Core

  • Constraints: NOT NULL, UNIQUE, CHECK, FK with ON DELETE CASCADE or SET NULL

    W4 Core

  • SELECT: WHERE, ORDER BY, LIMIT, OFFSET, DISTINCT

    W4 Core

  • Joins: INNER, LEFT, RIGHT, FULL, CROSS, SELF

    Draw each one. How many rows does a LEFT JOIN return?

    W4 Core

  • Aggregations: COUNT, SUM, AVG, MIN, MAX, GROUP BY, HAVING

    What is the difference between WHERE and HAVING?

    W4 Core

  • NULL semantics and three-valued logic

    Why does `WHERE col != 'x'` skip NULL rows? COALESCE and NULLIF.

    W4 Core

  • Subqueries, correlated subqueries; EXISTS vs IN vs JOIN

    Which performs best on a large table, and why?

    W4 Core

  • CTEs with WITH; recursive CTEs

    Query an org chart or a category tree recursively.

    W4 Core

  • Window functions: ROW_NUMBER, RANK, DENSE_RANK, LAG, LEAD, SUM OVER, PARTITION BY

    Extremely commonly asked. Know the RANK vs DENSE_RANK vs ROW_NUMBER difference cold.

    W4 Core

  • UNION vs UNION ALL; INTERSECT; EXCEPT

    W4 Core

  • Upsert with ON CONFLICT; RETURNING

    W4 Core

  • CASE expressions and conditional aggregation

    Pivot rows into columns without a pivot function.

    W4 Core

  • Views and materialised views

    When is a materialised view the right answer?

    W4 Likely

  • Generated columns, identity columns, sequences

    W4 Likely

Indexing, plans and query performance

  • How a B-tree index works

    Why does an index make writes slower?

    W4 Core

  • Index types: B-tree, hash, GIN, GiST, BRIN

    Which index type for a jsonb containment query? For full-text?

    W4 Core

  • Composite indexes and column order

    Does an index on (a,b) help a query filtering only on b?

    W4 Core

  • Covering indexes, partial indexes, unique indexes

    W4 Core

  • When an index is NOT used

    Functions on indexed columns, leading wildcards, low selectivity, type mismatches.

    W4 Core

  • EXPLAIN ANALYZE — reading a query plan

    Seq scan vs index scan vs bitmap heap scan; nested loop vs hash join vs merge join.

    W4 Core

  • The N+1 query problem

    Show it in an ORM and fix it three ways.

    W4 Core

  • Query optimisation checklist

    SELECT *, OR vs UNION, keyset pagination, avoiding sorts, index-only scans.

    W4 Core

  • Table statistics, ANALYZE, and why the planner picks badly

    W4 Likely

  • Slow query logging and pg_stat_statements

    How do you find your worst query in production?

    W4 Likely

Transactions and concurrency

  • ACID — explain each letter with a real example

    W4 Core

  • Isolation levels: read committed, repeatable read, serializable

    W4 Core

  • Read phenomena: dirty read, non-repeatable read, phantom read

    Map each phenomenon to the isolation level that prevents it.

    W4 Core

  • SELECT FOR UPDATE and row-level locking

    Two users book the last seat simultaneously. Prevent the double booking.

    W4 Core

  • Deadlocks: how they happen, how to avoid them

    W4 Core

  • Optimistic vs pessimistic concurrency; version columns

    W4 Core

  • MVCC in Postgres; VACUUM, table bloat, autovacuum

    W4 Likely

  • Savepoints and nested transactions

    W4 Likely

  • Transactions across HTTP requests — and why you should not

    W4 Likely

  • Transaction ID wraparound

    W4 Senior

  • Advisory locks

    W4 Senior

Schema design and operations

  • Normalisation: 1NF, 2NF, 3NF, BCNF; update/insert/delete anomalies

    W4 Core

  • Denormalisation — when it is the right call

    W4 Core

  • Modelling relationships: one-to-many, many-to-many, join tables, polymorphic associations

    W4 Core

  • Soft deletes, audit columns, created_at/updated_at

    W4 Core

  • Connection pooling: pg Pool, PgBouncer, pool sizing

    Why does raising the pool size sometimes make things slower?

    W4 Core

  • Migrations: Prisma Migrate, Knex, TypeORM

    W4 Core

  • Zero-downtime migrations — the expand and contract pattern

    How do you rename a column with no downtime?

    W4 Core

  • Replication: streaming, read replicas, replication lag

    A user writes then immediately reads and sees stale data. Explain and fix.

    W4 Likely

  • Partitioning and sharding in Postgres

    W4 Likely

  • ORMs: Prisma vs TypeORM vs Sequelize vs Knex; when to drop to raw SQL

    W4 Likely

  • jsonb: querying, operators, indexing

    W4 Likely

  • Full-text search with tsvector vs reaching for Elasticsearch

    W4 Likely

  • Backups, PITR, restore drills

    W4 Likely

  • Triggers and stored procedures — and why many teams avoid them

    W4 Senior

  • Row-level security

    W4 Senior

  • Extensions: PostGIS, pg_trgm, pgcrypto, TimescaleDB

    W4 Senior

SQL problems to solve by hand

  • Second and Nth highest salary

    Three ways: subquery, DENSE_RANK, LIMIT/OFFSET.

    W4 Core

  • Top N per group

    Highest-paid employee per department.

    W4 Core

  • Find and delete duplicate rows

    W4 Core

  • Running totals and cumulative sums

    W4 Core

  • Month-over-month and year-over-year growth

    W4 Core

  • Consecutive days or streaks

    Users who logged in three days in a row.

    W4 Core

  • Employees earning more than their manager (self-join)

    W4 Core

  • Rows in table A with no match in table B

    Three ways: LEFT JOIN IS NULL, NOT EXISTS, EXCEPT.

    W4 Core

  • Gaps and islands

    W4 Likely

  • Median and percentiles

    W4 Likely

  • Pivoting rows to columns

    W4 Likely

  • Cohort retention query

    W4 Likely

MongoDB

  • Document model, BSON, collections

    W4 Core

  • When NoSQL beats SQL — and the honest counterargument

    You have this app. Postgres or Mongo? Defend the choice.

    W4 Core

  • CRUD and query operators

    $gt, $in, $nin, $regex, $exists, $elemMatch, $all.

    W4 Core

  • Update operators

    $set, $unset, $inc, $push, $pull, $addToSet, $pop, upsert.

    W4 Core

  • The aggregation pipeline

    $match, $group, $project, $sort, $limit, $unwind, $lookup, $facet, $addFields.

    W4 Core

  • Why $match must come first

    Explain the performance implication of pipeline stage order.

    W4 Core

  • $lookup — the joins Mongo said it did not need

    What are its limits versus a SQL join?

    W4 Core

  • Indexes: single, compound, multikey, text, TTL, partial, unique

    W4 Core

  • The ESR rule for compound index order

    Equality, Sort, Range. Explain why.

    W4 Core

  • explain() and reading a Mongo plan

    COLLSCAN vs IXSCAN.

    W4 Core

  • Schema design: embed vs reference

    One-to-few, one-to-many, one-to-squillions. Give the rule of thumb.

    W4 Core

  • The 16MB document limit and unbounded array growth

    W4 Core

  • Mongoose: schemas, validation, middleware hooks, populate, lean, virtuals

    Why is populate secretly an N+1?

    W4 Core

  • Transactions in MongoDB and the replica set requirement

    W4 Likely

  • Replica sets, elections, write concern, read preference, read concern

    What does `w: majority` guarantee?

    W4 Likely

  • Sharding: shard key selection, chunks, hot-spotting

    Why is a monotonically increasing shard key a bad idea?

    W4 Likely

  • Design patterns: extended reference, bucket, computed, subset, outlier

    W4 Likely

  • Change streams

    W4 Senior

  • Capped collections and GridFS

    W4 Senior

  • Atlas Search and vector search

    W4 Senior

Redis and caching

  • Redis data types and a use case for each

    string, hash, list, set, sorted set, bitmap, stream.

    W4 Core

  • Cache-aside, read-through, write-through, write-behind

    Which do you use, and what is the failure mode of each?

    W4 Core

  • TTL, expiry, and eviction policies (LRU, LFU, volatile-*)

    What happens when Redis fills up?

    W4 Core

  • Cache invalidation strategies

    The hardest problem in computer science. What are your options?

    W4 Core

  • Cache stampede and the thundering herd

    A hot key expires and 5000 requests hit the DB at once. Prevent it.

    W4 Core

  • Redis as a rate limiter

    Implement a sliding-window counter with INCR and EXPIRE.

    W4 Core

  • Redis as a session store

    W4 Core

  • Distributed locks and the Redlock debate

    W4 Likely

  • Persistence: RDB vs AOF

    W4 Likely

  • Pub/Sub vs Streams

    W4 Likely

  • Sorted sets for leaderboards and delayed queues

    W4 Likely

  • Redis Cluster, Sentinel, hash slots

    W4 Senior

  • Pipelining and Lua scripts for atomicity

    W4 Senior

05

System Design (HLD)

68 topics

The round that most often separates a 12 LPA offer from a 30 LPA one. You are not expected to know the right answer — you are expected to ask clarifying questions, estimate, propose, and name your own tradeoffs before the interviewer does.

Building blocks

  • The interview framework: requirements, estimates, API, data model, high level, deep dive, bottlenecks

    Rehearse this structure until it is automatic. Never start by drawing boxes.

    W5 Core

  • Functional vs non-functional requirements

    Which three questions do you always ask in the first five minutes?

    W5 Core

  • Back-of-envelope estimation: QPS, storage, bandwidth, memory

    100M users, 10 posts a day. Size the system.

    W5 Core

  • Latency numbers every engineer should know

    Memory vs SSD vs network vs cross-region round trip.

    W5 Core

  • Vertical vs horizontal scaling

    W5 Core

  • Load balancers: L4 vs L7, round robin, least connections, health checks, sticky sessions

    W5 Core

  • Stateless services and why state is the enemy of scaling

    W5 Core

  • Caching at every layer: browser, CDN, reverse proxy, application, database

    W5 Core

  • CDNs — how they work, cache invalidation, edge compute

    W5 Core

  • Database scaling: read replicas, sharding, federation, denormalisation

    W5 Core

  • Sharding strategies: range, hash, directory; resharding pain

    W5 Core

  • Consistent hashing

    Draw the ring. Why does it beat modulo hashing when a node dies?

    W5 Core

  • CAP theorem — and why it is more subtle than pick two

    W5 Core

  • Consistency models: strong, eventual, read-your-writes, monotonic, causal

    W5 Core

  • Message queues: Kafka vs RabbitMQ vs SQS

    When Kafka, when RabbitMQ? Name the deciding factor.

    W5 Core

  • Delivery semantics: at-most-once, at-least-once, exactly-once

    Why is exactly-once mostly a lie, and what do you do instead?

    W5 Core

  • Idempotency keys and idempotent consumers

    W5 Core

  • Dead letter queues, retries with jitter, poison messages

    W5 Core

  • Synchronous vs asynchronous communication

    Which parts of a checkout flow must be sync, and which must not?

    W5 Core

  • Rate limiting algorithms

    Fixed window, sliding log, sliding counter, token bucket, leaky bucket. Implement one.

    W5 Core

  • Unique ID generation at scale

    UUID v4 vs v7 vs ULID vs Snowflake. Why is a UUID v4 primary key bad for a B-tree?

    W5 Core

  • Monolith vs microservices vs modular monolith

    You have a 6-person team. Which, and why?

    W5 Core

  • API gateway, BFF pattern, service discovery

    W5 Core

  • Circuit breaker, bulkhead, timeouts, graceful degradation

    W5 Core

  • Observability: metrics, logs, traces; SLI, SLO, SLA, error budgets

    W5 Core

  • Saga pattern, two-phase commit, the transactional outbox

    How do you keep a DB write and a Kafka publish consistent?

    W5 Likely

  • Event sourcing and CQRS

    W5 Likely

  • Search: inverted index, Elasticsearch basics, relevance

    W5 Likely

  • Blob storage, S3, presigned URLs, multipart upload

    W5 Likely

  • WebSockets at scale: connection state, sticky routing, pub/sub fanout

    W5 Likely

  • Availability maths, redundancy, failover, RPO and RTO

    W5 Likely

  • Load testing with k6 or Artillery

    W5 Likely

  • Bloom filters and count-min sketch

    W5 Senior

  • Leader election, Raft, ZooKeeper/etcd

    W5 Senior

  • Geo-distribution, multi-region active-active, data residency

    W5 Senior

  • Vector clocks and conflict resolution (CRDTs)

    W5 Senior

Design questions to actually practise out loud

  • Design a URL shortener

    The warm-up. Key generation, collisions, redirects, analytics, cache.

    W5 Core

  • Design a rate limiter as a service

    W5 Core

  • Design a news feed (Twitter/Instagram)

    Fanout on write vs fanout on read. Handle the celebrity problem.

    W5 Core

  • Design a chat application (WhatsApp)

    WebSockets, presence, delivery receipts, ordering, offline messages.

    W5 Core

  • Design a notification system

    Push, email, SMS; fanout, deduplication, user preferences, retries.

    W5 Core

  • Design an e-commerce checkout with inventory

    Prevent overselling. Reservations, timeouts, idempotent payment.

    W5 Core

  • Design a ticket-booking system (BookMyShow)

    Seat locking under concurrency is the whole question.

    W5 Core

  • Design a food delivery or ride-hailing system

    Geospatial indexing, matching, order state machine, live tracking.

    W5 Core

  • Design a file storage and sync service (Dropbox)

    Chunking, deduplication, conflict resolution, sync protocol.

    W5 Core

  • Design a video platform (YouTube/Netflix)

    Upload, transcoding pipeline, adaptive bitrate, CDN.

    W5 Likely

  • Design typeahead/autocomplete

    Trie, ranking, caching, debounce on the client.

    W5 Likely

  • Design a payment system

    Idempotency, ledger, double-entry bookkeeping, reconciliation, webhooks.

    W5 Likely

  • Design a web crawler

    W5 Likely

  • Design a distributed job scheduler or cron service

    W5 Likely

  • Design a logging and monitoring pipeline

    W5 Likely

  • Design a multi-tenant SaaS application

    Data isolation strategies and their tradeoffs.

    W5 Likely

  • Design a feature-flag service

    W5 Likely

  • Design Google Docs (collaborative editing)

    OT vs CRDT — awareness is enough.

    W5 Senior

  • Design an analytics/event ingestion pipeline

    W5 Senior

  • Design a distributed cache

    W5 Senior

Frontend system design

  • Component architecture and a design system

    How do you structure a large React codebase so it stays navigable?

    W5 Core

  • Client-side data layer: caching, invalidation, optimistic updates

    W5 Core

  • Design an autocomplete component

    Debounce, cancellation, caching, keyboard nav, accessibility, race conditions.

    W5 Core

  • Design an infinite-scrolling virtualised feed

    W5 Core

  • Frontend performance strategy

    Bundle budget, code splitting plan, image strategy, font loading, prefetching.

    W5 Core

  • Design an image gallery with lazy loading

    W5 Likely

  • Design an offline-first app with background sync

    W5 Likely

  • Design a real-time dashboard

    Polling vs SSE vs WebSocket, and how you decide.

    W5 Likely

  • Error handling, retry and loading-state architecture

    W5 Likely

  • Analytics and event tracking architecture

    W5 Likely

  • Micro-frontends: when the org problem justifies the technical cost

    W5 Senior

  • Design a rich text editor

    W5 Senior

06

Low-Level Design & Machine Coding

27 topics

Product companies increasingly run a 90-minute round where you build something small but real. They are grading structure, naming, extensibility and tests — not cleverness.

Principles and patterns

  • SOLID — all five, each with a real example from your own code

    Give a concrete violation you have personally fixed.

    W3 Core

  • DRY, KISS, YAGNI, composition over inheritance, law of Demeter

    W3 Core

  • Layering: controller, service, repository

    Why should a controller never touch the database?

    W3 Core

  • Dependency injection and inversion of control

    W3 Core

  • Creational patterns: Singleton, Factory, Abstract Factory, Builder

    W3 Core

  • Structural patterns: Adapter, Decorator, Facade, Proxy

    W3 Core

  • Behavioural patterns: Observer, Strategy, Command, State, Chain of Responsibility, Template Method

    Which pattern replaces a growing if/else chain?

    W3 Core

  • Repository pattern and why it makes testing possible

    W3 Core

  • Clean and hexagonal architecture; ports and adapters

    W3 Likely

  • Domain modelling: entities, value objects, aggregates

    W3 Likely

  • Code smells and refactoring moves

    W3 Likely

  • Anti-patterns: God object, anaemic domain model, service locator

    W3 Senior

Machine coding problems

  • In-memory key-value store with TTL

    W3 Core

  • LRU cache from scratch (map plus doubly linked list)

    W3 Core

  • Rate limiter (token bucket) as a reusable class

    W3 Core

  • Parking lot system

    W3 Core

  • Splitwise / expense sharing

    W3 Core

  • Design a URL shortener as working code, not a diagram

    W3 Core

  • Task or job scheduler with retries

    W3 Core

  • Elevator system

    W3 Likely

  • Vending machine or ATM (state pattern)

    W3 Likely

  • BookMyShow seat booking

    W3 Likely

  • Tic-tac-toe, snake and ladder, or chess

    W3 Likely

  • Logging framework with pluggable appenders

    W3 Likely

  • Notification service with multiple channels

    W3 Likely

  • Library management system

    W3 Likely

  • Practise the format itself

    90 minutes, working code, clean folder structure, a few tests, a README explaining tradeoffs. Do three timed runs.

    W3 Core

07

DSA & Problem Solving

81 topics

Do this every single day from day one — it decays faster than anything else here. Target 150 to 200 problems, spoken aloud, timed, in a plain editor with no autocomplete.

Foundations

  • Big-O, big-Theta, big-Omega; time and space complexity

    Analyse a nested loop, a recursive call, and a function with a hash map.

    W1 Core

  • Amortised analysis

    Why is push to a dynamic array O(1) amortised?

    W1 Core

  • Recursion: base cases, call stack, recursion trees

    W1 Core

  • Complexity of JavaScript operations

    shift, unshift, splice, spread, object key lookup, Map vs object.

    W1 Core

  • Space complexity of recursion vs iteration

    W1 Likely

Arrays, strings and hashing

  • Two pointers

    Two sum sorted, three sum, container with most water, remove duplicates, sort colours.

    W1 Core

  • Sliding window, fixed and variable size

    Longest substring without repeating characters, minimum window substring, max sum subarray of size k.

    W1 Core

  • Prefix sums and difference arrays

    Subarray sum equals k, range sum queries.

    W1 Core

  • Hash maps and sets

    Two sum, group anagrams, longest consecutive sequence, frequency counting.

    W1 Core

  • Kadane's algorithm

    Maximum subarray, maximum product subarray.

    W1 Core

  • String manipulation

    Palindromes, anagrams, string compression, reverse words, roman numerals.

    W1 Core

  • Matrix problems

    Spiral traversal, rotate image, set matrix zeroes, search a 2D matrix.

    W1 Core

  • Cyclic sort and finding missing/duplicate numbers

    W1 Likely

  • Dutch national flag partitioning

    W1 Likely

Linked lists, stacks and queues

  • Linked list basics: traverse, insert, delete, reverse (iterative and recursive)

    W2 Core

  • Fast and slow pointers

    Cycle detection (Floyd), find the middle, find cycle start.

    W2 Core

  • Merge two sorted lists; merge k sorted lists

    W2 Core

  • Reverse in groups of k; palindrome linked list; reorder list

    W2 Core

  • Stacks: valid parentheses, min stack, evaluate RPN

    W2 Core

  • Monotonic stack

    Next greater element, daily temperatures, largest rectangle in histogram, trapping rain water.

    W2 Core

  • Queues and deques

    Sliding window maximum, implement a queue using stacks.

    W2 Core

  • LRU cache — the single most-asked design-flavoured problem

    W2 Core

  • LFU cache

    W2 Likely

  • Doubly linked lists and their use in caches

    W2 Likely

Trees and tries

  • Traversals: preorder, inorder, postorder (recursive and iterative), level order

    W3 Core

  • DFS vs BFS on trees — and when each is right

    W3 Core

  • Height, diameter, balanced check, same tree, symmetric tree, invert tree

    W3 Core

  • BST: search, insert, delete, validate, kth smallest, inorder successor

    Why does an inorder traversal of a BST give sorted output?

    W3 Core

  • Lowest common ancestor, in a BST and in a general binary tree

    W3 Core

  • Path problems: root-to-leaf sum, max path sum, all paths

    W3 Core

  • Serialise and deserialise a binary tree

    W3 Core

  • Tree views: left, right, top, bottom; vertical order traversal

    W3 Core

  • Tries: implement insert, search, startsWith

    Word search II, autocomplete, longest common prefix.

    W3 Core

  • Construct a tree from preorder and inorder traversals

    W3 Likely

  • Binary tree to doubly linked list; flatten to linked list

    W3 Likely

  • Segment trees and Fenwick trees

    W3 Senior

Heaps, greedy and intervals

  • Heaps and priority queues — implement a min heap

    W4 Core

  • Top K problems

    K largest elements, top K frequent, K closest points.

    W4 Core

  • K-way merge; median from a data stream (two heaps)

    W4 Core

  • Task scheduler; reorganise string

    W4 Core

  • Interval problems

    Merge intervals, insert interval, non-overlapping intervals, meeting rooms I and II.

    W4 Core

  • Greedy: jump game, gas station, activity selection, partition labels

    When is greedy provably correct?

    W4 Core

  • Sweep line technique

    W4 Likely

Graphs

  • Representations: adjacency list vs matrix; building a graph from edges

    W4 Core

  • BFS and DFS on graphs; connected components

    W4 Core

  • Grid as a graph

    Number of islands, rotting oranges, flood fill, shortest path in a binary maze, word ladder.

    W4 Core

  • Cycle detection, directed and undirected

    W4 Core

  • Topological sort (Kahn's and DFS)

    Course schedule I and II, alien dictionary.

    W4 Core

  • Dijkstra's shortest path

    Network delay time, cheapest flights within k stops.

    W4 Core

  • Union-Find with path compression and union by rank

    Number of provinces, redundant connection, accounts merge.

    W4 Core

  • Bellman-Ford and Floyd-Warshall

    W4 Likely

  • Minimum spanning tree: Kruskal and Prim

    W4 Likely

  • Bipartite check and graph colouring

    W4 Likely

  • Tarjan's algorithm, bridges and articulation points

    W4 Senior

Binary search, sorting and bit manipulation

  • Binary search on a sorted array; first and last occurrence

    Get the boundary conditions right without guessing.

    W5 Core

  • Binary search on the answer

    Koko eating bananas, split array largest sum, capacity to ship packages, minimum in rotated array.

    W5 Core

  • Search in a rotated sorted array; find peak element

    W5 Core

  • Median of two sorted arrays

    W5 Core

  • Sorting algorithms: bubble, selection, insertion, merge, quick, heap, counting, radix

    Complexity, stability, and when each is actually used.

    W5 Core

  • Quickselect for the kth largest

    W5 Core

  • Bit manipulation basics

    XOR tricks, single number, count set bits, power of two, swap without temp.

    W5 Core

  • Subsets via bitmask

    W5 Likely

  • What algorithm does JavaScript's Array.sort use?

    W5 Likely

Backtracking and dynamic programming

  • Backtracking template

    Subsets, permutations, combinations, combination sum.

    W5 Core

  • N-Queens, sudoku solver, word search, palindrome partitioning, rat in a maze

    W5 Core

  • Memoisation vs tabulation; how to spot a DP problem

    What are the two signals that a problem is DP?

    W5 Core

  • 1D DP

    Climbing stairs, house robber I and II, decode ways, jump game.

    W5 Core

  • Knapsack family

    0/1 knapsack, unbounded knapsack, subset sum, equal partition, target sum, coin change.

    W5 Core

  • String DP

    Longest common subsequence, edit distance, longest palindromic substring, distinct subsequences.

    W5 Core

  • Longest increasing subsequence (n^2 and n log n)

    W5 Core

  • Grid DP

    Unique paths, minimum path sum, with obstacles.

    W5 Core

  • Stock buy and sell — the whole series

    One transaction, unlimited, with cooldown, with fee, at most k.

    W5 Core

  • Matrix chain multiplication and partition DP

    W5 Likely

  • DP with bitmask; digit DP

    W5 Senior

Practice discipline

  • Work Blind 75 first, then NeetCode 150

    W1 Core

  • Timebox to 25 minutes, then read the solution and re-solve from scratch two days later

    W1 Core

  • Say the approach and complexity out loud before writing a line of code

    This is what the interviewer is actually grading.

    W1 Core

  • Always state edge cases: empty input, single element, duplicates, negatives, overflow

    W1 Core

  • Dry run your code on an example before saying you are done

    W1 Core

  • Keep a mistakes log and revisit it weekly

    W2 Core

  • Do company-tagged problem sets once you have real interviews scheduled

    W5 Likely

08

CS Fundamentals & Git

41 topics

Service-based and MNC loops lean on these hard, and product companies use them as a sanity check. Cheap to learn, embarrassing to miss.

Operating systems

  • Process vs thread; context switching

    W6 Core

  • Concurrency vs parallelism

    Explain the difference using Node as the example.

    W6 Core

  • Deadlock: the four necessary conditions, prevention, avoidance, detection

    W6 Core

  • Race conditions, mutex vs semaphore, critical sections

    W6 Core

  • Virtual memory, paging, page faults, thrashing

    W6 Core

  • CPU scheduling algorithms: FCFS, SJF, round robin, priority

    W6 Likely

  • Producer-consumer and reader-writer problems

    W6 Likely

  • IPC mechanisms: pipes, shared memory, message queues, sockets

    W6 Likely

  • How Node's single-threaded model maps onto all of this

    W6 Likely

  • File systems, inodes, journaling

    W6 Senior

Computer networks

  • What happens when you type a URL and press enter

    Rehearse a 3-minute version and a 30-second version.

    W6 Core

  • OSI model vs TCP/IP model

    W6 Core

  • TCP vs UDP; the three-way handshake and four-way teardown

    Why does a video call use UDP and a file download use TCP?

    W6 Core

  • DNS resolution end to end; A, AAAA, CNAME, MX, TXT records; TTL and caching

    W6 Core

  • HTTP methods, idempotency, safety, status codes

    W6 Core

  • HTTP/1.1 vs HTTP/2 vs HTTP/3

    Head-of-line blocking, multiplexing, header compression, QUIC.

    W6 Core

  • HTTPS and the TLS handshake; symmetric vs asymmetric encryption; certificates

    W6 Core

  • REST vs GraphQL vs gRPC vs WebSocket

    W6 Core

  • Flow control vs congestion control

    W6 Likely

  • Proxies, reverse proxies, NAT, firewalls

    W6 Likely

  • Ports, sockets, keep-alive, connection reuse

    W6 Likely

  • Where latency actually comes from

    DNS, TCP, TLS, TTFB; bandwidth vs latency.

    W6 Likely

  • Subnetting and CIDR basics

    W6 Senior

DBMS theory

  • ER modelling, cardinality, relationship types

    W6 Core

  • Functional dependencies and normalisation, with anomalies

    W6 Core

  • B-tree vs B+ tree and why databases use B+ trees

    W6 Core

  • ACID vs BASE

    W6 Core

  • Concurrency control protocols: 2PL, timestamp ordering

    W6 Likely

  • Clustered vs non-clustered indexes

    W6 Likely

  • Write-ahead logging and recovery

    W6 Senior

Git and collaboration

  • The three areas: working directory, staging, repository

    W6 Core

  • Merge vs rebase

    When would you rebase, and when is it dangerous?

    W6 Core

  • Resolving conflicts confidently

    W6 Core

  • reset soft vs mixed vs hard; revert vs reset

    You pushed a bad commit to main. What now?

    W6 Core

  • cherry-pick, stash, reflog

    How do you recover a commit you thought you destroyed?

    W6 Core

  • Branching strategies: Git Flow, GitHub Flow, trunk-based

    W6 Core

  • git bisect to find the commit that broke it

    W6 Likely

  • Interactive rebase, squashing, fixup commits

    W6 Likely

  • Tags, semantic versioning, release process

    W6 Likely

  • Code review etiquette and conventional commits

    W6 Likely

  • Submodules, sparse checkout, monorepo vs polyrepo

    W6 Senior

09

DevOps, Cloud & Delivery

40 topics

You do not need to be an SRE. You do need to describe how your code reaches production without hand-waving — that single answer separates people who have shipped from people who have only committed.

Linux and the shell

  • File permissions, ownership, chmod and chown

    W5 Core

  • Processes: ps, top, htop, kill, signals, nohup

    W5 Core

  • Text processing: grep, awk, sed, cut, sort, uniq, wc

    Find the top 10 IPs in an access log with one pipeline.

    W5 Core

  • Networking tools: curl, netstat, lsof, dig, telnet

    A port is in use. Find what is holding it.

    W5 Core

  • ssh, scp, key-based auth

    W5 Likely

  • systemd services, journalctl, cron

    W5 Likely

  • Disk and memory: df, du, free

    W5 Likely

  • Basic shell scripting: variables, conditionals, loops, exit codes

    W5 Likely

Containers and orchestration

  • Images vs containers; how layers and caching work

    Why does reordering your Dockerfile speed up builds?

    W5 Core

  • Writing a good Dockerfile for a Node app

    Multi-stage build, non-root user, .dockerignore, small base image.

    W5 Core

  • Volumes, networks, port mapping, environment variables

    W5 Core

  • docker-compose for local development

    W5 Core

  • Container vs virtual machine

    W5 Core

  • Image size optimisation and layer caching in CI

    W5 Likely

  • Container registries and image tagging strategy

    W5 Likely

  • Kubernetes basics: pods, deployments, services, ingress

    W5 Likely

  • ConfigMaps, secrets, readiness and liveness probes, HPA, rolling updates

    W5 Likely

  • Helm, namespaces, resource limits and requests

    W5 Senior

CI/CD and deployment

  • What a CI pipeline should do: lint, typecheck, test, build, deploy

    Describe your ideal pipeline for a Node plus React repo.

    W5 Core

  • GitHub Actions: workflows, jobs, steps, caching, secrets, matrix builds

    W5 Core

  • Deployment strategies: rolling, blue-green, canary

    W5 Core

  • Feature flags and decoupling deploy from release

    W5 Core

  • Environments, configuration, and the twelve-factor app

    Why does configuration belong in the environment?

    W5 Core

  • Rollback strategy

    Your deploy broke production. Walk through the next ten minutes.

    W5 Core

  • Database migrations in a CI/CD pipeline

    W5 Likely

  • Artifact versioning and reproducible builds

    W5 Likely

  • Infrastructure as code with Terraform

    W5 Senior

Cloud and production operations

  • AWS core services and what each is for

    EC2, S3, RDS, Lambda, API Gateway, CloudFront, Route53, IAM, VPC, SQS, SNS, ECS/Fargate, CloudWatch.

    W5 Core

  • IAM: users, roles, policies, least privilege

    W5 Core

  • VPC, subnets, security groups vs NACLs

    Why should your database never have a public IP?

    W5 Core

  • Nginx as a reverse proxy: SSL termination, static files, load balancing

    W5 Core

  • Monitoring and alerting: what do you actually alert on?

    Why is CPU a bad alert and latency a good one?

    W5 Core

  • Reading production logs to debug a live incident

    W5 Core

  • Serverless: cold starts, execution limits, when Lambda fits

    W5 Likely

  • Autoscaling policies and capacity planning

    W5 Likely

  • Secrets management: Secrets Manager, Parameter Store, Vault

    W5 Likely

  • Incident response and blameless postmortems

    W5 Likely

  • Cost awareness: what actually runs up a cloud bill

    W5 Likely

  • Distributed tracing with OpenTelemetry

    W5 Senior

  • CDN configuration and cache invalidation at the edge

    W5 Senior

10

Testing, Quality & Debugging

26 topics

Almost every candidate says they write tests. Very few can explain what they would NOT test, or why their snapshot suite is worthless. That gap is easy to close and easy to notice.

Testing strategy

  • The testing pyramid and the testing trophy

    Where do you get the most confidence per minute spent?

    W6 Core

  • Unit vs integration vs end-to-end — and what you would not test

    W6 Core

  • Mocks vs stubs vs spies vs fakes

    W6 Core

  • What makes a test valuable versus a test that just slows you down

    Why are snapshot tests so often useless?

    W6 Core

  • Test-driven development — what it is and when you would actually use it

    W6 Core

  • Flaky tests: causes and cures

    W6 Likely

  • Coverage as a metric and how it misleads

    W6 Likely

  • Contract testing between services

    W6 Senior

Tools and practice

  • Jest or Vitest: matchers, mocks, spies, fake timers, setup and teardown

    W6 Core

  • Testing async code and promises

    W6 Core

  • React Testing Library: queries, user-event, testing behaviour not implementation

    Why does RTL discourage testing state directly?

    W6 Core

  • Mocking network calls with MSW

    W6 Core

  • Testing Express APIs with Supertest

    W6 Core

  • Test database strategy: containers, transactions, fixtures, factories

    How do you keep integration tests isolated and fast?

    W6 Core

  • End-to-end with Playwright or Cypress

    W6 Likely

  • Testing custom hooks

    W6 Likely

  • Load and performance testing

    W6 Likely

Code quality and debugging

  • A systematic debugging method

    Reproduce, isolate, hypothesise, verify. Talk through a real bug you fixed this way.

    W6 Core

  • Chrome DevTools and the Node inspector; breakpoints, watch, call stack

    W6 Core

  • Debugging production: logs, traces, metrics, source maps

    W6 Core

  • ESLint and Prettier; husky and lint-staged pre-commit hooks

    W6 Core

  • What you look for in a code review

    W6 Core

  • Code smells and the refactorings that fix them

    Long function, large class, feature envy, primitive obsession, shotgun surgery.

    W6 Core

  • Cyclomatic complexity and when to split a function

    W6 Likely

  • Documentation: README quality, architecture decision records

    W6 Likely

  • Technical debt: how you track it and how you argue for paying it down

    W6 Likely

11

React Native & Mobile

31 topics

Your differentiator. Very few backend-capable candidates can also ship a store-published app — but you will be asked about the bridge, list performance and the release process, and vague answers here read as CV padding.

Architecture and fundamentals

  • How React Native works: JS thread, native/UI thread, shadow thread

    W6 Core

  • The old bridge vs the new architecture

    JSI, Fabric, TurboModules, Codegen. Why was the bridge replaced?

    W6 Core

  • Hermes — what it changes for startup time and memory

    W6 Core

  • React Native vs Flutter vs native

    When would you tell a client NOT to use React Native?

    W6 Core

  • Expo vs bare workflow; EAS build

    What forces you to eject, and what no longer does?

    W6 Core

  • Metro bundler and how RN differs from a web build

    W6 Core

  • How native modules work; writing and autolinking one

    W6 Likely

Building the app

  • Core components: View, Text, Image, ScrollView, FlatList, SectionList, TextInput, Pressable, Modal, SafeAreaView

    W6 Core

  • FlatList performance

    keyExtractor, getItemLayout, windowSize, initialNumToRender, removeClippedSubviews, memoised renderItem. Your list janks — diagnose it.

    W6 Core

  • ScrollView vs FlatList — and why using the wrong one kills the app

    W6 Core

  • Styling: StyleSheet, flexbox differences from web, Dimensions, PixelRatio

    Why is there no CSS, and what is the default flexDirection?

    W6 Core

  • Handling different screen sizes, notches, safe areas

    W6 Core

  • Platform-specific code: Platform.select and .ios/.android files

    W6 Core

  • React Navigation: stack, tab, drawer, nesting, params, auth flow

    How do you structure a logged-in vs logged-out navigator?

    W6 Core

  • Deep linking and universal links

    W6 Core

  • Storage: AsyncStorage, MMKV, SQLite, secure storage

    Where do you keep an auth token on mobile?

    W6 Core

  • Permissions, camera, geolocation, file access

    W6 Core

  • Push notifications: FCM and APNs, tokens, foreground vs background handling

    W6 Core

  • Offline-first: queueing mutations, sync, conflict resolution

    W6 Likely

  • Animations: Animated vs Reanimated; Gesture Handler; running on the UI thread

    Why does Reanimated feel smoother than the Animated API?

    W6 Likely

  • Images: caching, resizing, FastImage, memory pressure

    W6 Likely

  • Forms and keyboard handling on mobile

    W6 Likely

Shipping and debugging

  • Debugging: React Native DevTools, Flipper, Hermes profiling

    W6 Core

  • App size optimisation: ProGuard/R8, Hermes bytecode, asset trimming

    W6 Core

  • Release process: signing, keystores, provisioning profiles, TestFlight, Play Console

    Walk through releasing v1.1 to both stores.

    W6 Core

  • Over-the-air updates: CodePush or EAS Update, and the store rules that limit them

    What can you ship OTA and what legally cannot go OTA?

    W6 Core

  • Crash reporting with Sentry or Crashlytics; reading a native stack trace

    W6 Core

  • Environment configuration and build variants/flavours

    W6 Likely

  • CI for mobile: Fastlane, EAS, automated builds

    W6 Likely

  • Analytics and funnel tracking in an app

    W6 Likely

  • Upgrading React Native versions without losing a week

    W6 Senior

12

Behavioural & Communication

30 topics

Strong engineers lose offers here more often than they lose them on DSA. Every one of these needs a rehearsed, specific, 90-second answer with real numbers — not a story you invent in the room.

The answers you must have ready

  • Tell me about yourself

    90 seconds: where you are now, what you have built, why you are looking, what you want next. Write it, then rehearse it until it is not a recitation.

    W1 Core

  • Walk me through your current project

    Architecture, your specific contribution, the hardest decision, real numbers.

    W1 Core

  • Why are you leaving your current company?

    Honest, forward-looking, never bitter. Prepare the exact wording.

    W6 Core

  • Why this company / why this role?

    Requires actual research. Generic answers are visibly generic.

    W6 Core

  • Where do you see yourself in three years?

    W6 Core

  • Your greatest strength and a real weakness

    A weakness you are genuinely working on, with evidence.

    W6 Core

  • Why should we hire you over someone from a product company?

    Prepare this one verbatim. It will come.

    W6 Core

  • Questions you ask the interviewer

    Team structure, on-call, how tech debt is handled, what success looks like at 6 months, why the role is open.

    W6 Core

  • Explain a technical concept to a non-technical stakeholder

    W6 Likely

STAR stories to prepare (two each)

  • A hard bug you debugged

    Situation, what you tried, how you isolated it, the fix, what you changed afterwards.

    W6 Core

  • A time you improved performance

    With before and after numbers. This is the highest-value story you own.

    W6 Core

  • A conflict with a teammate or manager

    W6 Core

  • A time you missed a deadline or shipped something broken

    What you owned, what you changed structurally.

    W6 Core

  • A time you disagreed with a technical decision

    Did you commit anyway? How?

    W6 Core

  • A time you took ownership beyond your role

    W6 Core

  • Something complex you learned quickly under pressure

    W6 Core

  • Feedback you received and acted on

    W6 Core

  • A time you mentored or unblocked someone

    W6 Likely

  • A tradeoff you made deliberately — and would you make it again

    W6 Likely

  • A time you pushed back on scope or requirements

    W6 Likely

  • How you handled a production incident

    W6 Likely

Interview craft

  • Thinking out loud while coding

    Silence reads as being stuck. Practise narrating.

    W2 Core

  • Asking clarifying questions before you start

    In every round, always. It is graded.

    W2 Core

  • Handling a question you do not know

    Say what you do know, reason toward it, never bluff. Interviewers respect this and punish bluffing.

    W6 Core

  • Recovering after a bad round

    W6 Core

  • Mock interviews: peers, Pramp, or record yourself

    Do at least six before your first real interview.

    W6 Core

  • Salary negotiation

    Know your number, avoid disclosing first, negotiate total comp, use competing offers. Never accept on the call.

    W6 Core

  • Discussing notice period, offer timelines and juggling processes

    W6 Likely

  • Post-interview follow-up

    W6 Likely

  • Remote interview logistics: setup, connection, screen sharing, editor ready

    W6 Likely

13

Resume, Portfolio & Job Strategy

22 topics

Do this in week one, not week six. Everything else on this page is worthless if your CV does not get opened — and the pipeline takes weeks to warm up.

Resume

  • One page, reverse chronological, no photo, no skill bars

    W1 Core

  • Impact-first bullets: action, technology, measurable result

    Rewrite every bullet that begins with 'Responsible for'.

    W1 Core

  • Quantify everything you honestly can

    Latency, users, requests, cost, time saved, bugs reduced, build time.

    W1 Core

  • Only list skills you can survive 20 minutes of questioning on

    Anything on your resume is fair game. Cut the rest.

    W1 Core

  • ATS-friendly formatting; keywords pulled from real job descriptions

    W1 Core

  • Frame service-based work as breadth

    Multiple clients, domains, end-to-end ownership, shipping under real deadlines.

    W1 Core

  • A short professional summary tuned per role type

    W1 Likely

  • Get it reviewed by two people who have hired engineers

    W1 Likely

Portfolio and public presence

  • Pin three strong GitHub repos with real READMEs

    Problem, architecture diagram, decisions, setup, screenshots.

    W1 Core

  • One flagship project that shows depth

    Auth, real data modelling, caching, background jobs, tests, CI, deployed and reachable.

    W1 Core

  • LinkedIn: headline, About section, experience mirrored from the resume, open-to-work signals

    W1 Core

  • Clean up commit history and remove dead repos from the top of your profile

    W2 Likely

  • Write two short technical posts about something you actually debugged

    Cheap credibility, and it gives interviewers something to ask about.

    W2 Likely

  • A personal site or portfolio page

    W6 Senior

Job search operations

  • Start applying at the end of week 2 — do not wait until you feel ready

    Early interviews are diagnostics. They will tell you what is actually weak.

    W2 Core

  • Referrals: how to ask, and a cold outreach template that is not spam

    A referral converts several times better than a portal application.

    W2 Core

  • Track every application in one sheet

    Company, role, source, date, stage, contact, next action.

    W2 Core

  • Keep 15 to 20 live pipelines so no single outcome matters

    W2 Core

  • Research each company before the first round

    Product, stage, tech stack, recent news, who is interviewing you.

    W2 Core

  • Take-home assignments: scope, timebox, README, tests

    Do not gold-plate. Do explain your tradeoffs in writing.

    W3 Core

  • Try to bunch onsites so offers land in the same window

    That is what creates negotiating leverage.

    W6 Core

  • Know your target number and your walk-away number before any call

    W6 Likely

How to actually work through this

Ratio
Roughly one hour of DSA, two hours of stack depth and thirty minutes of system design per day. Do DSA every single day, even if only for thirty minutes, because it decays faster than anything else here.
Out loud
Reading a topic is not knowing it. For every core item, explain it aloud in sixty seconds as if to an interviewer. If you stumble, you do not know it yet.
Start early
Do not wait until week six to apply. Start at the end of week two and let the early interviews act as diagnostics. They show you what is actually weak, which no checklist can.
Depth over breadth
If you run short on time, sacrifice the senior items and never the core ones. Being solid on sixty percent beats being shaky on everything, because interviewers dig until you break.

Start here

The written notes work through this roadmap one group at a time, in plain English with diagrams and the answer to say out loud.

Read note 01: JavaScript language fundamentals