Just finished my GitHub senior SWE loop a few weeks ago and want to write up the system design portion while it's still fresh. Spoiler: it's a genuine technical conversation, not a whiteboard hazing session.
The round was 60 minutes. My interviewer was a staff engineer on a platform team. First ten minutes or so were just introductions and him explaining how he likes to run the session. He was pretty explicit that he cared more about how I reason through tradeoffs than whether I hit some checklist.
The problem was a notification delivery system, which felt very on-brand for GitHub (you know, watch subscriptions, PR notifications, issue mentions). They didn't give me a single-sentence prompt and leave me hanging. It was more like a dialogue. I'd propose something, he'd add a constraint, I'd revise. Felt collaborative.
Things that came up: Distinguishing between fan-out-on-write vs fan-out-on-read for different subscription patterns How to handle bursty load (think: Linus Torvalds merges something and 50k watchers get pings) Idempotency for retries, deduplication at the delivery layer Trade-offs between Kafka and a simpler queue depending on ordering guarantees needed Brief discussion of rate-limiting outbound email so you don't get blocked by email providers
I got into database schema a bit but he redirected me back to the higher-level design, which was a useful signal: at this level they want you thinking in systems, not in column types.
Total loop was 5 rounds including this one. Other rounds covered coding (2 rounds), behavioral, and a hiring manager conversation. The system design was probably my strongest round.
Level-wise this was targeted at senior/IC4 equivalent, not staff. I've heard the staff design sessions are broader in scope and bring in a second interviewer for parts of it, but I can't confirm that.
Happy to answer questions about the other rounds.