Most candidates prepare for technical interviews the same wrong way: grinding LeetCode until a week before, then panicking about system design. A structured four-week plan gets further with less grind.
Week 1 — foundations
- •Arrays, strings, hashmaps — the 80% of medium-difficulty coding questions.
- •One problem per day, explained aloud as you solve it.
- •Read your own solution the next morning — if you can't follow it, your interviewer couldn't either.
Week 2 — patterns
- •Two-pointer, sliding window, recursion with memoisation, BFS/DFS.
- •Write the template once, then solve three problems that use it.
- •Time yourself: 20 minutes to understand, 25 to code, 5 to test.
Week 3 — system design
Pick one canonical design problem per day and whiteboard it. Rate limiter, URL shortener, news feed, chat system, distributed cache. For each, cover: functional requirements, back-of-the-envelope load math, high-level architecture, one deep dive the interviewer picks, and two failure modes you'd defend against.
Week 4 — mocks and behavioural
- •Two mock interviews with a friend or a service like Pramp or interviewing.io.
- •Prepare 6 behavioural stories, each covering 2–3 of: leadership, conflict, failure, ambiguity, mentoring, scope growth.
- •STAR format, but lead with the result — the interviewer hears it first.
The night before
Don't cram. Re-read your own notes, close the laptop by 9 PM, and sleep 8 hours. Rested candidates write cleaner code than tired ones who memorised one more problem.