Skip to content
JavaAgentic

Type at least two characters. Try “RAG”, “pgvector” or “tool calling”.

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.

Beginner7 min readUpdated
On this page

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

WeekFocusDeliverable
1Core Java + your six storiesStories written out in full
2Java 8 and modern JavaCan explain streams laziness and lambda internals
3Collections internalsCan draw HashMap internals from memory
4ConcurrencyCan explain happens-before and pool sizing
5JVM, GC and memory — start applyingCan read a GC log; applications sent
6Production incidents + SpringThree incident stories rehearsed
7System design + coding practiceTwo mock interviews done
8Mocks, weak spots, first-choice interviewsOffer 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.

a minimal system
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?
Eight weeks at eight to ten hours a week is realistic for an experienced developer who has not interviewed in a while. Four weeks works if you are already sharp on the fundamentals and only need to rehearse. Less than two weeks means prioritising ruthlessly: your stories, your resume projects, and the specific stack in the job description, and accepting that the algorithm round will be whatever it is.
Should I apply to my preferred company first or last?
Last. Interviewing is a skill that decays, and the first two or three loops will be noticeably worse than the ones after them regardless of preparation. Line up two or three companies you are lukewarm about, use them as calibration, and schedule your top choice for weeks seven or eight. Having a competing offer in hand also changes the negotiation entirely.
Is it worth doing mock interviews?
It is the single highest-return activity in the plan. Explaining a solution out loud under observation is a different skill from solving the problem, and the only way to find out that you go silent when stuck or that your best story takes four minutes is to be watched. Two mocks are worth more than twenty extra practice problems.

Related tutorials