90-Day Senior Frontend Interview Plan
Three months covering every topic in the roadmap, paced so each surface gets time to settle. Built for engineers targeting senior or staff loops at top product companies, with weekly mocks and a system-design capstone.
Milestones
- Day 21: Foundations + async + browser locked in
- Day 42: React + state + networking + TS locked in
- Day 63: Depth (perf, security, a11y, testing, build) locked in
- Day 80: Architecture + design fluency
- Day 90: Staff-loop ready
Revision strategy
Every 7th day is a revision day; every 14th day is a timed mock. Track which topics you scored lowest on and add an extra revision pass in week 12.
Day 1
0/3javascript core day 1/8
- · Read deeply, take notes
- How would you write a custom implementation of Function.prototype.bind?javascript · easy
- How would you write a polyfill for Function.prototype.bind that supports new?javascript · easy
- What algorithm does Array.prototype.sort use, and what is the output of sorting an array with null and undefined?javascript · easy
Day 2
0/3javascript core day 2/8
- · Reproduce answers from memory
Day 3
0/3javascript core day 3/8
- · Reproduce answers from memory
Day 4
0/3javascript core day 4/8
- · Reproduce answers from memory
Day 5
0/3javascript core day 5/8
- · Reproduce answers from memory
Day 6
0/3javascript core day 6/8
- · Reproduce answers from memory
Day 7
0/3javascript core day 7/8
- · Reproduce answers from memory
Day 8
0/3javascript core day 8/8
- · Reproduce answers from memory
Day 9
0/3async javascript day 1/6
- · Read deeply, take notes
- How would you implement limitConcurrency(tasks, limit) using a worker pool pattern?javascript · easy
- How would you implement memoization for an async function with caching, deep equality, and parallel calls?javascript · easy
- How would you write a curried multiplication function where mul(2)(3)(4) equals 24?javascript · easy
Day 10
0/3async javascript day 2/6
- · Reproduce answers from memory
Day 11
0/3async javascript day 3/6
- · Reproduce answers from memory
Day 12
0/3async javascript day 4/6
- · Reproduce answers from memory
Day 13
0/3async javascript day 5/6
- · Reproduce answers from memory
Day 14
0/3async javascript day 6/6
- · Reproduce answers from memory
Day 15
0/3browser rendering day 1/5
- · Read deeply, take notes
Day 16
0/3browser rendering day 2/5
- · Reproduce answers from memory
Day 17
0/3browser rendering day 3/5
- · Reproduce answers from memory
Day 18
0/3browser rendering day 4/5
- · Reproduce answers from memory
Day 19
0/3browser rendering day 5/5
- · Reproduce answers from memory
Day 20
0/3dom day 1/5
- · Read deeply, take notes
Day 21
0/3dom day 2/5
- · Reproduce answers from memory
Day 22
0/3dom day 3/5
- · Reproduce answers from memory
- If you store data in localStorage on one domain, can another domain access it?browser-internals · easy
- What are ETag, Cache Control, and DocumentFragment, and where are each used?browser-internals · easy
- What are the differences between localStorage, sessionStorage, cookies, and IndexedDB?browser-internals · easy
Day 23
0/3dom day 4/5
- · Reproduce answers from memory
- What are the risks of storing an auth token in localStorage, and what should you do instead?security · easy
- What are the web storage APIs, and how do localStorage, sessionStorage, and cookies differ?browser-internals · easy
- What happens in the browser between a button click and the network request leaving the machine?browser-internals · easy
Day 24
0/3dom day 5/5
- · Reproduce answers from memory
Day 25
0/3react basics day 1/8
- · Read deeply, take notes
Day 26
0/3react basics day 2/8
- · Reproduce answers from memory
Day 27
0/3react basics day 3/8
- · Reproduce answers from memory
Day 28
0/3react basics day 4/8
- · Reproduce answers from memory
Day 29
0/3react basics day 5/8
- · Reproduce answers from memory
Day 30
0/3react basics day 6/8
- · Reproduce answers from memory
Day 31
0/3react basics day 7/8
- · Reproduce answers from memory
Day 32
0/3react basics day 8/8
- · Reproduce answers from memory
Day 33
0/3react internals day 1/6
- · Read deeply, take notes
Day 34
0/3react internals day 2/6
- · Reproduce answers from memory
Day 35
0/3react internals day 3/6
- · Reproduce answers from memory
Day 36
0/3react internals day 4/6
- · Reproduce answers from memory
Day 37
0/3react internals day 5/6
- · Reproduce answers from memory
Day 38
0/3react internals day 6/6
- · Reproduce answers from memory
- Why does React StrictMode behave differently in development versus production?react · medium
- How does event handling work in React, and how does it differ from native DOM events?react · easy
- How does React's Fiber reconciliation algorithm work internally, and how does it improve rendering performance?react · hard
Day 39
0/3react performance day 1/6
- · Read deeply, take notes
Day 40
0/3react performance day 2/6
- · Reproduce answers from memory
- How would you re render a React component when the window is resized?react · medium
- How would you structure error boundaries so they exist both per page and at the global level?react · medium
- In an e commerce product listing where multiple users add to cart, how would you use React Query or SWR with optimistic updates to prevent stale UI?react · medium
Day 41
0/3react performance day 3/6
- · Reproduce answers from memory
Day 42
0/3react performance day 4/6
- · Reproduce answers from memory
Day 43
0/3react performance day 5/6
- · Reproduce answers from memory
Day 44
0/3react performance day 6/6
- · Reproduce answers from memory
Day 45
0/3state management day 1/5
- · Read deeply, take notes
Day 46
0/3state management day 2/5
- · Reproduce answers from memory
- Have you worked with state management libraries like Zustand, and how do they compare to Redux?react · easy
- How do you structure code and state management in a frontend application?react · easy
- How would you implement a simplified pub sub or selector dispatch state subscription system?javascript · easy
Day 47
0/3state management day 3/5
- · Reproduce answers from memory
Day 48
0/3state management day 4/5
- · Reproduce answers from memory
Day 49
0/3state management day 5/5
- · Reproduce answers from memory
Day 50
0/3networking day 1/5
- · Read deeply, take notes
Day 51
0/3networking day 2/5
- · Reproduce answers from memory
Day 52
0/3networking day 3/5
- · Reproduce answers from memory
Day 53
0/3networking day 4/5
- · Reproduce answers from memory
Day 54
0/3networking day 5/5
- · Reproduce answers from memory
Day 55
0/3typescript day 1/4
- · Read deeply, take notes
Day 56
0/3typescript day 2/4
- · Reproduce answers from memory
Day 57
0/3typescript day 3/4
- · Reproduce answers from memory
Day 58
0/3typescript day 4/4
- · Reproduce answers from memory
Day 59
0/3performance optimization day 1/7
- · Read deeply, take notes
Day 60
0/3performance optimization day 2/7
- · Reproduce answers from memory
Day 61
0/3performance optimization day 3/7
- · Reproduce answers from memory
Day 62
0/3performance optimization day 4/7
- · Reproduce answers from memory
Day 63
0/3performance optimization day 5/7
- · Reproduce answers from memory
Day 64
0/3performance optimization day 6/7
- · Reproduce answers from memory
Day 65
0/3performance optimization day 7/7
- · Reproduce answers from memory
Day 66
0/3security day 1/5
- · Read deeply, take notes
Day 67
0/3security day 2/5
- · Reproduce answers from memory
Day 68
0/3security day 3/5
- · Reproduce answers from memory
Day 69
0/3security day 4/5
- · Reproduce answers from memory
Day 70
0/3security day 5/5
- · Reproduce answers from memory
Day 71
0/3accessibility day 1/4
- · Read deeply, take notes
Day 72
0/3accessibility day 2/4
- · Reproduce answers from memory
Day 73
0/3accessibility day 3/4
- · Reproduce answers from memory
Day 74
0/3accessibility day 4/4
- · Reproduce answers from memory
Day 75
0/3testing day 1/4
- · Read deeply, take notes
Day 76
0/3testing day 2/4
- · Reproduce answers from memory
Day 77
0/3testing day 3/4
- · Reproduce answers from memory
Day 78
0/3testing day 4/4
- · Reproduce answers from memory
Day 79
0/3build tools day 1/4
- · Read deeply, take notes
Day 80
0/3build tools day 2/4
- · Reproduce answers from memory
- What are the different JavaScript script loading strategies (defer, async, modulepreload)?performance · easy
- What are the strategies for publishing type definitions for a JavaScript library?typescript · easy
- What is the difference between code splitting and chunking in modern bundlers?performance · easy
Day 81
0/3build tools day 3/4
- · Reproduce answers from memory
Day 82
0/3build tools day 4/4
- · Reproduce answers from memory
Day 83
0/3frontend architecture day 1/6
- · Read deeply, take notes
Day 84
0/3frontend architecture day 2/6
- · Reproduce answers from memory
Day 85
0/3frontend architecture day 3/6
- · Reproduce answers from memory
Day 86
0/3frontend architecture day 4/6
- · Reproduce answers from memory
Day 87
0/3frontend architecture day 5/6
- · Reproduce answers from memory
- A component breaks when upgrading a library version. How do you manage dependencies?system-design · medium
- How do you expose an SDK API such as open() and close() without polluting the host page's global namespace?system-design · medium
- How do you manage shared dependencies in a frontend monorepo?system-design · medium
Day 88
0/3frontend architecture day 6/6
- · Reproduce answers from memory
- How do you share common functions or libraries across a micro frontend application?system-design · medium
- How would you implement a robust frontend monitoring and logging system?system-design · medium
- How would you structure and optimize a large scale React codebase for scalability and readability?system-design · medium
Day 89
0/3frontend system design day 1/12
- · Read deeply, take notes
Day 90
0/3frontend system design day 2/12
- · Reproduce answers from memory
- How would you build a grid light box in React where lights deactivate in the reverse order of activation?machine-coding · easy
- How would you build a priority based data fetching system on the frontend?system-design · easy
- How would you build a product listing page with search, multi select filters, and a cart in React?machine-coding · easy