Strong answer
The final review turns knowledge into performance. A Java backend loop typically combines a coding round, a core Java and Spring deep-dive, a low-level or system design round, and a behavioral round. Practice each under time pressure, out loud, and tie it back to one capstone project you can defend end to end: an order or booking service with a REST API, PostgreSQL with migrations, security, tests with Testcontainers, metrics, and one asynchronous flow with an outbox.
Java example
1// Capstone low-level design checkpoint: a rate limiter you can explain end to end.
2final class TokenBucket {
3 private final long capacity;
4 private final double refillPerNano;
5 private double tokens;
6 private long lastRefill;
7
8 TokenBucket(long capacity, Duration refillEvery) {
9 this.capacity = capacity;
10 this.refillPerNano = 1.0 / refillEvery.toNanos();
11 this.tokens = capacity;
12 this.lastRefill = System.nanoTime();
13 }
14
15 synchronized boolean tryAcquire() {
16 long now = System.nanoTime();
17 tokens = Math.min(capacity, tokens + (now - lastRefill) * refillPerNano);
18 lastRefill = now;
19 if (tokens < 1) return false;
20 tokens -= 1;
21 return true;
22 }
23}
24// Follow-ups: per-user buckets, distributing it with Redis, and testing with a fake clock.