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
Week 01132 topics
JavaScript and TypeScript deep dive, DSA foundations, resume rebuilt
Week 02118 topics
React, the browser and CSS, lists and stacks — start applying
Week 03104 topics
Node, Express, auth, low level design and patterns, trees
Week 04115 topics
Postgres, MongoDB, Redis, SQL by hand, graphs and heaps
Week 05129 topics
System design, DevOps and cloud, dynamic programming and binary search
Week 06127 topics
React Native, testing, CS fundamentals, behavioural rounds, mock interviews
JavaScript & TypeScript
100 topicsThe 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
React & Frontend
98 topicsInterviewers 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
Node.js & Express
64 topicsYour 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
Databases: Postgres, MongoDB, Redis
97 topicsThe 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
System Design (HLD)
68 topicsThe 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
Low-Level Design & Machine Coding
27 topicsProduct 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
DSA & Problem Solving
81 topicsDo 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
CS Fundamentals & Git
41 topicsService-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
DevOps, Cloud & Delivery
40 topicsYou 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
Testing, Quality & Debugging
26 topicsAlmost 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
React Native & Mobile
31 topicsYour 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
Behavioural & Communication
30 topicsStrong 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
Resume, Portfolio & Job Strategy
22 topicsDo 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