Hi Blind, recently had an onsite with Google and want to share my experience. There were 3 coding interviews, 1 soft skills, 1 design. Interviewers were super friendly and generally it was more like tech discussion with my colleagues, no pressure. The questions were:
1. Leetcode easy + optimisations which converted it into med. Nothing special. I made two requested optimisations and messed up with the third one;
2. Medium interval related problem. The problem statement was obscure and I spent about 15 minutes trying to understand what interviewer wanted and clear corner cases.
3. Variation of topological sort. Haven't seen such problem at leetcode. Coded, but missed two bugs, after interviewer highlighted them - fixed the code.
4. Design was something crazy. It consisted of two problems and you will not find those in Grokking System Design course. Basically, I was asked to implement a sort of data collector + data analytics tool for multi data center environment. Interviewer was not very responsive and kept nodding to everything I was saying. Dunno, how is it possible to answer this question in 45 minutes without practicing it in front of the mirror for several times.
After the interview I had a so-so feeling. I thought that I did well in 3rd round, and the 2nd round was bad, since I spent a lot of time trying to understand the problem and interviewer had no time to ask optimisation questions.
In 3 days recruiter called me and after she thanked for my time, I already knew it would be a reject. Fun part, that she said I did great in 2nd round, and because of the bugs in code - 3rd round went bad. And I bombed system design question, since my design was too abstract. So, never trust your personal feelings folks :)
Always, always be skeptical about your feelings and never let your guard down during interviews.
Anyways, just 2C.