I did my on-site interviews at Google recently, for the SWE Tools and Infrastructure role. My System Design interview went badly, and I can't quite put my finger on why. I have guesses, but that's all they are.
Because the other four interviews went quite well, I'm being given another chance at this one. So feedback would be appreciated! Were my interviewer and I simply on different wavelengths? Did I go in with the wrong expectations?
Note: I'm afraid I can't share the actual interview question. All applicants are politely requested not to. Ignoring that request just feels like a bad way to start a professional relationship. But the question shouldn't be relevant here, and I think this may still be informative to others.
The interview
Here's how it went from my point of view:
Confusion 1
So the first part that threw me off was point 3.
All other system design interview questions I've studied have been about designing cloud-based infrastructures and making them scalable. E.g., "design Twitter", "design Google Search", "design Amazon sales ranking". This was the opposite of that.
Fair enough, I suppose. Getting me off-script / catching me off guard can be part of an interview like this. They need to know how well I can think on my feet. I still wonder: Is this common? An if so, why haven't I encountered this before?
Confusion 2
What really tripped me up were points 4 and 5.
My understanding was that I should be leading the conversation into directions where I can best signal my expertise. But it felt like the interviewer was expecting a very specific set of answers from me, and blocking every path that lead elsewhere.
I don't want to be unfair to him; I could be dead wrong about any of this. Perhaps every time I asked about non-functional requirements, or brought up a potential problem (which I thought I could solve), this was misinterpreted as me asking for help?
Next time, should I ask up-front about what level of abstraction I should be working? I suppose if I'd known right away that I was expected to produce an OO design, I could have used my time more productively.
I don't have enough interview experience to put this interview in context. I would love to get some insight from people who do.
Update 1
I'm happy to say my second System Design interview went better than my first.
The question was much more in line with my original expectations: a cloud-based infrastructure, and how to scale it, plus some related issues.
More importantly, communication with my interviewer went a lot more smoothly this time around. It was a productive session. (So it seemed to me, at least. I don't know what standard they'll be judging against.)
Fingers crossed. I'll add another update after I get my feedback.
Update 2
The high-level feedback on my second interview was positive! No negative points at all, actually. (I myself am aware of a few bits I could have done better. But I guess interviewers aren't supposed to nitpick on their reports.) So it seems I'm on to the next stage. My information has been sent to a number of hiring managers.
Anyway, thanks for everyone's feedback!