Study plan
The 8-week plan
Questions in this set 9
Reading this site cover to cover is not a plan. This is a plan. It assumes roughly 10-15 hours a week; halve the pace if you have less, but do not skip the practice — reading is not preparation, retrieval is.
How to study so it sticks
Three rules do most of the work:
- Answer before you read. Open a question, say your answer out loud, then read ours and diff. The gap you find is the thing worth studying. Reading the answer first feels productive and teaches you almost nothing.
- Space your repetition. Revisit a set 1 day, 1 week and 1 month after first reading it. Ten minutes of recall beats an hour of re-reading.
- Speak everything. Interviews are spoken. Practise out loud, alone, timed. The first time you say an explanation should never be in front of an interviewer.
Keep one document — call it your gap log — with every question you could not answer well. That document is your revision material by week six.
Weeks 1-2 — Language and fundamentals
- Pick your primary language track (Python or JavaScript/TypeScript) and work through every set in it.
- 30 minutes of DSA daily: arrays, strings, hash maps. Two easy problems, or one medium.
- Read the DSA patterns page once, then start recognising patterns rather than memorising solutions.
- Write your seven behavioral stories in STAR form. Yes, in week one — they take longer to make good than you expect, and they benefit from sitting.
Exit check: you can explain closures/decorators, the event loop or the GIL, and mutability, without hesitating.
Weeks 3-4 — Framework and data
- Your framework track end to end (Django + Django ORM, or FastAPI, or React + Next.js).
- Both SQL sets. Write queries by hand, not by reading them. Set up a local Postgres with a few million rows and actually run
EXPLAIN ANALYZE— the plans will surprise you, and that surprise is the learning. - DSA: two pointers, sliding window, binary search. One medium problem daily.
- Build or refactor one small project using what you have read. Concepts you have only read about evaporate under pressure.
Exit check: you can find and fix an N+1, and explain your framework's request lifecycle from socket to response.
Weeks 5-6 — Systems and depth
- Both system design sets. Then design three systems on paper yourself, timed at 45 minutes, out loud: a rate limiter, a notification service, and something from the domain of the company you want.
- Backend caching/scaling, security, and testing tracks.
- DSA: trees, graphs, BFS/DFS, heaps, and start dynamic programming.
- Start applying. Do not wait until you feel ready — you will not feel ready, and the first few interviews are practice regardless.
Exit check: you can talk for 45 minutes about a system you have never built without running out of things to say.
Weeks 7-8 — Simulation and interviews
- Mock interviews with real humans. At least four. This is the highest-leverage thing on this entire page and the thing everyone skips.
- DSA: mixed random practice under a timer, no hints. Quality of explanation matters more than speed now.
- Re-read your gap log, not the site.
- Do your lowest-priority company interviews first. Interviewing is a skill that improves fast, and you want your top choice to meet the eighth version of you, not the first.
Exit check: you have done a full loop with a company you do not care about, and survived it.
The application system
Volume alone does not work, and neither does perfectionism. What works:
- Referrals convert several times better than cold applications. Spend an hour a week asking people you actually know. A message that names a specific role and includes one line about why you fit is not an imposition.
- Apply in batches, so your interviews cluster and you can use one offer as leverage on another. Applications spread over three months give you no leverage at all.
- Tailor the CV to the role, lightly: reorder bullets so the relevant work is at the top, and mirror the vocabulary of the posting. Do not rewrite your history.
- Track everything in one sheet: company, role, date applied, source, stage, contact, next action. You will lose threads otherwise, and following up on a stalled process converts more often than a new application.
- Follow up once after a week of silence, then move on.
What your CV needs
One page for under ten years of experience. Bullets in the form action → what it changed → measured by. "Rewrote the export pipeline to stream results, cutting p95 from 40 s to 3 s and removing the daily OOM restarts" — not "responsible for the export pipeline".
Cut: the objective statement, "references available on request", a skills bar chart, and anything you cannot discuss for ten minutes under questioning. Put the technologies you actually want to be interviewed on at the top, because that is what they will ask about.
Include the link to a repository or project you can talk about. It does not need to be impressive; it needs to be yours and understood.
The day itself
Sleep, eat, and have water within reach. Test the camera and the coding environment beforehand. Have your notes for company-specific questions open — nobody minds.
Then, in the interview: restate the problem, ask clarifying questions before designing, think out loud, state assumptions explicitly, and admit what you do not know quickly and without drama. "I haven't worked with Kafka in production; what I know is X, and here's how I'd approach finding out" is a good answer. Bluffing is the only one that is fatal, because a competent interviewer detects it instantly and then doubts everything else you said.
When you get rejected
You will, including from places you were clearly qualified for. The pipeline is noisy: the loop was calibrated for someone else, an internal candidate existed, the budget moved, your interviewer had a bad morning.
Do the useful thing: write down what was asked, what you fumbled, and what a better answer would have been. Add it to the gap log. Ask for feedback (you will usually get none, occasionally something gold). Then apply again in six to twelve months — reapplying after visible growth works far more often than people believe.
Ten rejections with a gap log is a better position than zero interviews with a perfect study plan.