The Eight-Week Preparation Plan
A week-by-week plan that fits into eight hours a week: what to cover when, how to use spaced repetition on the topics you forget, when to start applying, and how to handle the offer stage.
On this page
- The schedule
- Week 1 — Core Java and your stories
- Week 2 — Java 8 and modern Java
- Week 3 — Collections
- Week 4 — Concurrency
- Week 5 — JVM and memory, and start applying
- Week 6 — Production incidents and Spring
- Week 7 — System design and coding
- Week 8 — Rehearsal and first choices
- Spaced repetition
- Talking out loud
- The offer stage
- If you have less time
This plan assumes an experienced Java developer who has not interviewed for a few years, and about eight to ten hours a week — roughly an hour on weekday evenings plus one longer weekend session. Scale it up or down, but keep the order: fundamentals first, rehearsal last.
Key Takeaways
- Eight weeks at ~8 hours a week. Fundamentals first, rehearsal last.
- Write your six stories in week one, not week seven. They take longer than you think and they improve with revisiting.
- Use spaced repetition on the topics you get wrong, not the ones you enjoy.
- Start applying in week five, so first interviews land when you are warm.
- Interview your worst-preferred companies first. The first loop is always the weakest.
The schedule
| Week | Focus | Deliverable |
|---|---|---|
| 1 | Core Java + your six stories | Stories written out in full |
| 2 | Java 8 and modern Java | Can explain streams laziness and lambda internals |
| 3 | Collections internals | Can draw HashMap internals from memory |
| 4 | Concurrency | Can explain happens-before and pool sizing |
| 5 | JVM, GC and memory — start applying | Can read a GC log; applications sent |
| 6 | Production incidents + Spring | Three incident stories rehearsed |
| 7 | System design + coding practice | Two mock interviews done |
| 8 | Mocks, weak spots, first-choice interviews | Offer conversations |
Week 1 — Core Java and your stories
Cover Phase 1: equals/hashCode, strings,
OOP dispatch, exceptions, generics, immutability, Comparable.
More importantly, write your six stories from the behavioural round out in full. Doing this in week one rather than week seven matters for two reasons: you will discover which stories have no numbers, which gives you seven weeks to dig up the metrics; and the stories improve substantially on the third and fourth revisit.
Also update your CV now. Every bullet should be an outcome with a number, not a responsibility.
Week 2 — Java 8 and modern Java
Phase 2. The high-value items are lambda internals
(invokedynamic, capturing versus non-capturing), stream laziness, Collectors.groupingBy, and the
orElse/orElseGet distinction.
Add a survey of Java 9–21 — records, sealed types, pattern matching, virtual threads — because "what have you used since Java 8?" is an extremely common opener and a weak answer to it colours the rest.
Week 3 — Collections
Phase 3. Be able to draw HashMap
internals on a whiteboard: buckets, the spread function, load factor, resize, treeification at eight.
That single diagram answers four or five questions.
Then ConcurrentHashMap, ArrayList versus LinkedList with the cache-locality argument, and the
Big-O plus memory table.
Week 4 — Concurrency
Phase 4. The three that come up most:
synchronized versus ReentrantLock and what happens-before means; why volatile does not make
count++ atomic; and how you would size a thread pool.
Write a small program that deadlocks, then find it with jstack. Doing it once makes the answer
concrete for years.
Week 5 — JVM and memory, and start applying
Phase 5. Memory areas, the collectors and their
trade-offs, the leak patterns, and the OutOfMemoryError field guide.
Start applying this week. Interviews take one to three weeks to schedule, so applications sent now produce first rounds in weeks six and seven — when you are warm but not yet burnt out.
Order matters: apply to two or three companies you are lukewarm about first. Your first loop will be your worst no matter how much you prepare, and it is better spent on calibration than on your first choice.
Week 6 — Production incidents and Spring
Phase 6 and the Spring question bank.
Pick three incident stories and rehearse them out loud with a timer. If you do not have three, build them — the LoadLab project reproduces a memory leak, a CPU spike, pool exhaustion and a cache stampede on purpose so you can debug them with the real tools.
For Spring, the single highest-value item is the proxy mechanism: self-invocation, why it breaks
@Transactional, and the three fixes.
Week 7 — System design and coding
System design and the coding patterns.
Do three full system-design walkthroughs out loud, on a whiteboard or a shared doc, with a timer set to 45 minutes. Reading about system design does not prepare you for the pacing; only doing it does.
For coding, target the six patterns rather than volume. Thirty to fifty problems spread across them is enough for a backend role.
Book two mock interviews this week. A colleague, a friend at another company, or a paid platform — the format matters less than being watched while you think.
Week 8 — Rehearsal and first choices
No new material. Revisit whatever you got wrong in mocks, re-read your own notes, and do your first-choice interviews.
Keep the load light in the two days before an important loop. Being rested measurably beats one more practice problem.
Spaced repetition
The failure mode of technical preparation is re-reading what you already know because it feels productive. Track what you get wrong and revisit only that.
Keep one file. Every time you cannot answer something cleanly, add a line:
2026-08-08 Could not explain why LongAdder beats AtomicLong
Review that file on a schedule: 1 day, 3 days, 7 days, 21 days.
Delete a line once you have explained it out loud twice without notes.Anki works well if you already use it. A text file works nearly as well. The mechanism that matters is active recall — closing the page and explaining the concept out loud — not re-reading.
Talking out loud
The single most common preparation gap is that everything has been done silently. Interviews are verbal, and explaining a concept out loud is a distinct skill from understanding it.
Three cheap ways to practise: explain a topic to a rubber duck at the end of each study session; record a two-minute voice note on one concept and listen back once; and volunteer to explain something in a team meeting.
The rubber-duck version takes ninety seconds and finds the gaps immediately — you will notice yourself saying "and then it, um, sort of rehashes" and know exactly what to look up.
The offer stage
Do not name a number first. "I would rather understand the full scope of the role first — what range is budgeted for this level?" is a complete and comfortable answer, and levelling usually matters more than base salary anyway.
Get it in writing before deciding. Base, bonus target, equity with the vesting schedule and the strike price or valuation basis, sign-on, and start date.
Ask for time. Two to five business days is entirely normal and no reasonable employer objects.
Negotiate once, specifically, and with a reason. "Based on the scope we discussed and a competing offer at X, could you get to Y?" — one clear ask, not an open-ended back-and-forth. A competing offer is by far the strongest lever, which is another reason to interview in batches.
Ask about the things that decide your daily life. On-call rotation and compensation, deployment frequency, how technical debt gets prioritised, and what happened to the last person in this role. Those answers predict your experience far better than the compensation package does.
If you have less time
Four weeks. Weeks 1, 4, 6 and 7 — core Java, concurrency, incidents and Spring, system design. Write the stories in week one regardless.
Two weeks. Your six stories, the specific stack named in the job description, and three incident narratives. Accept the coding round as it comes.
One week. Stories and CV only. Then schedule the interview two weeks later if you possibly can — the difference between one and three weeks of preparation is larger than any other variable here.
Frequently Asked Questions
How long does it take to prepare properly?
Should I apply to my preferred company first or last?
Is it worth doing mock interviews?
Related tutorials
- The Behavioural Round: STAR Stories for EngineersWhy the behavioural round is scored harder than candidates expect, the six stories that cover almost every question, how to quantify impact honestly, and surviving the follow-up questions.
- System Design for Java Backend EngineersA 45-minute structure that works: clarify and estimate, data model first, then the API, then scale what the numbers say to scale — plus idempotency, the outbox pattern and talking in numbers.
- Spring & Spring Boot Interview QuestionsThe Spring questions asked at every level answered with mechanisms: how auto-configuration decides, why self-invocation breaks @Transactional, proxy modes, bean scopes and testing slices.
- The Coding Round: Patterns That Keep Coming BackThe six patterns that cover most coding-screen questions, with Java templates, the language-specific traps that cost points, and how to talk while you code without losing your place.