Because the interview happened several months ago, I do not remember the exact timeline very clearly.
Phone Screen
Implement a service that supports:
generate(token_id, time): create a token whose TTL expires attime.renew(token_id, time): refresh the token's TTL so that it expires attime.count(time): return the number of tokens that have not expired attime.
BQ1: Tell me about a time when simplifying a feature was more important than developing the feature.
BQ2: How do you approach an unfamiliar project?
Virtual Onsite
Round 1
The hiring manager did not ask coding, design, or detailed resume questions. She mainly explained what the team did, said she was very confident in me, said the phone-screen feedback was very good, and mentioned that ramping up might be a little tricky, and so on.
She also asked how I would prioritize if I had a bug fix and a new feature that would take the same amount of time.
Round 2
The interviewer was the team's tech lead and a systems engineer.
He asked a design-oriented question: if there are 100,000 hosts, how would their GPU health status trigger a repair workflow? I answered using the usual system design template.
I felt that he wanted to see whether I had a background working with GPUs, because he asked how the health signal would come in. If you ping a host, you are pinging its CPU rather than its GPU, so how would we know whether the GPU was working properly? I thought for a long time and said I did not have GPU work experience, but surely something would passively or actively write logs or publish metrics that we could read, and so on. He then asked me to write pseudocode showing how to aggregate events into a host dashboard so it could help identify which host had a problem.
He also asked what to do if the repair workflow failed. The final question was a behavioral question about aligning multiple teams.
Round 3
All behavioral questions, with one interviewer and another interviewer shadowing.
BQ1: Have you encountered an emergency while on call, and how did you mitigate it?
BQ2: Tell me about an interesting project.
Although there were only two behavioral questions, they went deeply into both of them.
Round 4
Behavioral question: a scope change. I used my story about removing a subnet.
LeetCode 45.
I spent a long time explaining the logic to the interviewer, then went through a few test cases and a complexity analysis.
Round 5
Another interviewer was very nice and told me not to worry because the coding problem was simple, and so on. Then his HackerRank would not open, so in the end he shared a Google document for me to write in.
I wrote LeetCode 146.
Behavioral question: dealing with multiple teams.
On the third day, I was told that I had not passed at IC4. I passed at IC3, but there was no local headcount and I would have needed to relocate, so I declined.
Discussion
Loading comments…