Why 90 days
Three months is long enough to rebuild pattern recognition from scratch, short enough that you do not burn out before the interview loop starts. Most candidates who prep for 6 months end up doing the last 8 weeks of real work anyway. The rest is warm up. This plan compresses the warm up.
You do not need 500 LeetCode problems. You need the right 200, in the right order, with two mock rounds a week once you hit phase 3. Every engineer who has cleared a FAANG loop in the last few years will tell you the same thing: it is not the volume, it is the pattern coverage plus the pressure reps. This guide gives you both on a clock.
Assumption: you can commit 2 to 3 hours on weekdays and 5 to 6 hours on weekends. If you can only do 1 hour a day, double the plan to 24 weeks. Do not compress below 90 days unless you have interviewed in the last 6 months already.
The 4 phases at a glance
Phase 1 (Weeks 1 to 2): Fundamentals
Goal: Lock in the data structures and the core complexity intuition. No shortcuts here.
Volume: 30 to 40 problems
Focus: Arrays, strings, hashmaps, linked lists, stacks, queues, recursion, binary search. One topic per day with 3 to 4 easy or medium problems each.
Phase 2 (Weeks 3 to 4): Patterns
Goal: Recognise problem patterns in under 60 seconds. This is the phase where LeetCode starts feeling less random.
Volume: 50 to 60 problems
Focus: Two pointers, sliding window, fast and slow pointers, BFS and DFS on trees and graphs, backtracking, dynamic programming (1D and 2D), heap, trie. Solve 4 problems per pattern.
Phase 3 (Weeks 5 to 8): Mock rounds + systems design
Goal: Translate solo problem solving into interview performance under pressure with a human listening.
Volume: 80 to 100 problems + 12 mocks
Focus: Medium and hard LeetCode daily, 2 mock interviews per week on pramp or interviewing.io, start systems design every weekend using the Grokking book or System Design Primer.
Phase 4 (Weeks 9 to 12): Company specific
Goal: Load the last 6 months of tagged questions for your target company. Close the gap to offer.
Volume: 60 to 80 problems + behavioural prep
Focus: Company tagged LeetCode (premium), behavioural STAR prep, salary negotiation scripts, final 3 mocks with actual engineers from target companies.
Week by week grid (12 weeks)
| Week | LeetCode volume | Topic focus | Mocks |
|---|---|---|---|
| Week 1 | 18 problems | Arrays + hashmaps + strings | 0 |
| Week 2 | 18 problems | Linked lists + stacks + recursion + binary search | 0 |
| Week 3 | 25 problems | Two pointers, sliding window, BFS / DFS | 1 (pramp) |
| Week 4 | 25 problems | Backtracking + DP 1D + heap + trie | 1 |
| Week 5 | 20 problems | DP 2D + graph advanced; 1 systems design problem | 2 |
| Week 6 | 20 problems | Hard problems in weak patterns; 1 systems design | 2 |
| Week 7 | 22 problems | Mixed pattern drilling; 2 systems design | 2 |
| Week 8 | 22 problems | Random pick simulation; 2 systems design | 2 |
| Week 9 | 20 problems | Company tagged top 50 | 2 |
| Week 10 | 20 problems | Company tagged 51 to 100 + behavioural | 2 |
| Week 11 | 18 problems | Review weak areas + full behavioural run | 2 |
| Week 12 | 10 problems | Rest, review, sleep. No new patterns. | 1 |
Totals: about 238 LeetCode problems and 17 mocks across 12 weeks. If that feels low, you are miscounting the effort per problem. Spending 45 minutes on a medium plus 30 minutes reviewing the editorial is 1 problem done right, not 2.
Systems design: the 6 step framework
Most candidates fail systems design because they jump straight to boxes and arrows. The 6 steps below are the structure every senior interviewer is scoring you on, whether they say so or not. 45 minute round, time budgets in brackets.
Step 1 (2 min): Clarify requirements
Functional (read vs write heavy, core flows), non-functional (scale, latency, consistency, availability), constraints (budget, team size).
Step 2 (3 min): Capacity estimation
QPS, storage per day, bandwidth. Write it on the board. Back of the envelope math is not optional.
Step 3 (5 min): API design
4 to 6 REST or gRPC endpoints with request or response shape. Avoid over-specifying; just the critical fields.
Step 4 (10 min): High level design
Client, load balancer, service layer, cache, database, async workers, CDN. Draw boxes and arrows.
Step 5 (15 min): Deep dive
Pick 2 bottlenecks (DB sharding, cache eviction, consistency tradeoffs). Go deep on one. Most candidates skip this and lose the round.
Step 6 (5 min): Tradeoffs + wrap
Call out what you would revisit with more time. Interviewers love candidates who name their own gaps.
Mock interview schedule that actually works
The number one gap between candidates who clear FAANG and those who do not is mock volume. Aim for 17 mocks across the 12 weeks. Split roughly: 10 coding, 5 systems design, 2 behavioural. Most people do zero behavioural mocks and then freeze when asked about conflict at work.
- Weeks 3 to 4: 1 mock per week on pramp (free, peer to peer). Just get used to talking while coding.
- Weeks 5 to 8: 2 mocks per week. Mix pramp with interviewing.io (anonymous FAANG engineers).
- Weeks 9 to 11: 2 mocks per week, shift to paid platforms (interviewing.io premium, igotanoffer) for target company interviewers.
- Week 12: 1 final mock. Rest the rest of the week. Do not introduce new material 7 days before a loop.
The resource stack (ranked)
LeetCode (premium strongly worth it in phase 4)
Company tagged questions + editorial solutions + hard filters.
NeetCode 150 and NeetCode 250
Best free curated list. Follow the order; do not skip around.
Educative: Grokking the Coding Interview
Learn the 14 patterns here. Worth the subscription for phase 2.
System Design Primer (Donne Martin, GitHub)
Free. Read end to end once, then use as reference.
Grokking the System Design Interview
Pair with the Primer. Case studies on Twitter, Uber, TinyURL, Netflix.
interviewing.io and pramp
Free mocks with real engineers. interviewing.io has anonymous FAANG interviewers.
Cracking the Coding Interview (McDowell)
Still the gold reference. Read chapters 1 to 11.
Designing Data-Intensive Applications (Kleppmann)
Only if you target senior or staff roles. Heavy but definitive.
Top 5 mistakes that waste months
- Grinding random LeetCode daily. Without a pattern map, 300 problems teaches you less than 100 problems grouped by technique.
- Skipping mocks because you are not ready. You will never feel ready. Start mocks in week 3. Bad early mocks teach more than late perfect ones.
- Watching solution videos before attempting. Sit with the problem for 25 minutes minimum. Passive watching does not build problem solving.
- Ignoring systems design until week 10. You need 8 weeks of weekly cases. Cramming it in 2 weeks is how senior candidates fail the round they should ace.
- Zero behavioural prep. Behavioural is 30 percent of a FAANG loop. Prep 10 STAR stories, rehearse them out loud, record yourself. This is not optional.
External references
Frequently asked questions
How many LeetCode problems should I solve before a FAANG interview?+
Is LeetCode premium worth the money?+
How many hours per day is realistic?+
Do I need to know a specific language?+
How much systems design do I need as a new grad?+
What if I fail a mock badly?+
Should I apply while still prepping?+
Get the resume ready before the first onsite
A 90 day plan is wasted if your resume stalls at the recruiter screen. Build an ATS clean, FAANG ready resume in 20 minutes on ResumeBuildz.