did this loop twice. once as internal transfer candidate, once external. both times the system design round was the one that separated people who prepped from people who 'know stuff'.
format: 45 min with one or two interviewers. first 5 min is framing the problem. you're expected to drive. they won't save you if you go down a rabbit hole for 20 minutes.
what they actually want to see at L5: you can scope ambiguous requirements without being hand-held you understand tradeoffs, not just solutions. "we could use kafka here" is worth nothing if you can't say why vs a simpler queue you think in components that could independently scale or fail
the questions I got: design a URL shortener (classic, but they went deep on consistency and read-heavy scaling), design a notification system (this one surprised me, lots of nuance around delivery guarantees and retry logic).
at L5 they're not looking for 'perfect design'. they're looking for evidence you've operated distributed systems and have real opinions formed from real pain. if your only exposure is leetcode and youtube videos, they can tell.
comp context: L5 in NYC 2026, base in the $220-250k range depending on negotiation, RSUs on top made total comp more interesting. but system design is genuinely the leveling signal more than coding.
two things I wish I knew going in. first: always explicitly state your assumptions out loud, don't just assume they understand what you mean. second: ask about the scale requirements early and revisit them when you change direction. interviewers notice when you lose track of your own constraints.
the back-and-forth at the end (roughly 10 min) is where they probe the edges. "what happens if that service goes down", "how do you handle the thundering herd", "walk me through a failure scenario". this part is where I've seen candidates who had a solid design completely fall apart because they couldn't think on their feet.