What senior rubrics actually score
Beyond correctness, staff-level loops evaluate whether you prioritize, compare alternatives, and communicate trade-offs without rambling. Silence while coding is a negative signal; over-explaining every line is too.
| Dimension | Junior signal | Senior signal |
|---|---|---|
| Extensibility | "I'd use interfaces everywhere" | "I'd extract PricingStrategy when tier 2 appears — not now" |
| Trade-offs | One design, no alternatives | "HashMap is O(1) but unordered; TreeMap costs log n for sorted iteration" |
| Scope | Builds unprompted features | Explicitly lists out-of-scope items |
| Communication | Code-first | Requirements → API → classes → code |
| Depth | Stops at happy path | Names failure mode + where it's handled |
The extensibility conversation
When asked "how would you extend this?", point to one interface and one new class — not a framework. Example: "Adding SlackNotifier means implementing NotificationChannel and registering it — NotificationService unchanged." Pair every extension point with YAGNI: "I wouldn't build a plugin registry until we have three channels."
Comparing two designs aloud
Template: "Design A is simpler and ships faster; Design B isolates [axis of change] behind [interface]. Given the interviewer said pricing will vary soon, I'd pick B for OCP, accepting two extra classes." Always state what you're deferring (persistence, distributed locks, metrics).
Handling pushback
If the interviewer adds a requirement mid-round, trace impact: "That affects PricingStrategy, not ParkingLot — I'd add a new strategy class." Showing localized change is stronger than redrawing everything.
Senior-level signal
Record yourself for 2 minutes on any classic problem. Count "I would defer…" and "the trade-off is…" statements — aim for at least three. Interviewers remember candidates who made intentional cuts, not those who built everything.
Where this goes next
Parking Lot is the canonical allocation problem — entity modeling, Strategy for pricing, and a full happy-path walkthrough in one design.
Further Reading
Practice Tasks (Optional)
Design or implement locally in any language — no autograding. Focus on class structure, extensibility, and being able to explain trade-offs out loud.
- Practice narrating trade-offs out loud20m
For LRU cache vs simple HashMap cache: list 3 trade-offs (memory, thread-safety, eviction policy) as if explaining to an interviewer. Record 2 minutes of audio. Senior signal = you state what you'd defer.