I interviewed this past Thursday.
The first question was: given continuous call stack samples, generate timestamped function start/end events. While I was answering, the interviewer kept pushing back with follow-up questions, including things like:
- How do you compute the change between adjacent call stacks using the longest common prefix?
- Why do end events go from inside out, while start events go from outside in?
- How do you distinguish between recursive calls to the same function name?
- A function only counts once it's appeared n times in a row — how do you maintain that state?
- If the samples come in as a streaming input, how do you avoid keeping the entire history?
For the system design part, I had to design a platform for shipping tens to hundreds of GB of model weights out to a large number of GPU workers. My interviewer mostly cared about:
- How do you get observability when node capacity is opaque or a deployment gets stuck?
- How do you guarantee that requests only get routed to instances that have fully loaded the correct version?
Still waiting on the result.
Discussion
Loading comments…