Before finally getting hired there I interviewed with Google at least 3 times (hard to remember), on a referral each time (for a different team, from a different person). Incidentally, doing an interview for any role puts you on a secret 6+ month lockout, so it turns out that if you're interested in working at Google you shouldn't interview unless you're absolutely sure you want <i>that</i> role and can ace the interview. Anyway,<p>Each time until my last interview cycle, they seemingly assigned me interviewers at random and they were usually a terrible fit. I'm a games/systems programmer, so think C, C++, C#, etc. Console games (PS4), PC games, etc. Never shipped a mobile app, don't have much Linux expertise, don't list them on my resume. Haven't written Java since the J2ME era.<p>So naturally, I kept getting assigned to interview with people who worked on the Android Play Music app, or people who wrote Linux cloud storage infrastructure (think talking to storage hardware directly, etc) in Python and C. Inevitably, it was impossible for us to have an in-depth technical conversation without a lot of overhead because the disconnect was too big. Sometimes they'd ask me to whiteboard and there was no appropriate language for me to use that we both understood. At the end of each day I came away having had interesting conversations with people but it was consistently a failure of an interview process, so it wasn't a surprise that they never made me an offer. You could tell that this messed up interview process was also an issue for interviewers - I had a couple different interviewers get really combative or frustrated because of the disconnect, in one case borderline abusive.<p>Then finally a team that really wanted me (the NaCL/WebAssembly team) looked at my interview history and just stacked the deck so that everyone interviewing me was actually qualified to interview me. It was a breeze. Sure, it was challenging like any good interview, but not a complete waste of anyone's time.<p>While I can't speak to this personally, I also have heard from current/former Googlers that in the past it was extremely hard to hire Linux experts (kernel devs, etc) because they kept giving those people the same garbage screen (let's talk about Java!) and then rejecting them in the same way. Apparently the fix was a special interviewing process for people like that, presumably that's the treatment I got eventually.