A confusing System Design interview at Google (feedback requested)

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:

  1. The question was explained to me. I clarified some of the functional requirements on the whiteboard. So far so good.
  2. I asked about some non-functional requirements (e.g., expected number of users, expected frequency of events). It seemed like my interviewer did not expect to be asked that. He asked me why I needed to know.
  3. After some back and forth, it turned out the application I was designing could be confined entirely to a smartphone; no servers required . That threw me off a bit.
  4. But there were still potential problems I could identify, which I had encountered and solved in the past. I decided my best strategy for the remainder of the interview would be to discuss those problems in depth. (Some cool ones, actually, which I’ve researched for my PhD.) But when I brought up each problem, my interviewer told me not to worry about that; and he would simplify the requirements so my solution was no longer needed. This left me tongue-tied. Near the end, the requirements were so simple, there didn’t seem to be much left for me to ‘design’. It felt like something I could code entirely in an afternoon.
  5. At some point during the exchange he asked me to design the classes . This felt like an unimportant implementation detail to me. I wasn’t even sure I’d want to use classes yet. The problem didn’t lend itself to any interesting design patterns that I could see. I started drawing a class diagram anyway. A bunch of time had elapsed already, and it all felt a bit rushed at this point. And as the requirements were simplified (see 4), I had to erase the parts of the diagram that became redundant.
  6. Eventually I managed to communicate to him that I felt constrained, and he opened up the requirements a bit. But it was too late. There was less than a minute left. I didn’t have the presence of mind to communicate this earlier.

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.