Status: Working with a product based US company since 2 years
Location: India
Interview Timeline: June - September 2020
This has been a ride!
For four months I was this bundle of nerves, and now here I am, with my packet approved by the Google Hiring Committee. And trust me - I've faced so many rejections this past year. It was only a few months back when I was prepared enough that I cracked a few companies and well, Google.
I won't be disclosing any questions due to NDA, and this is just a general overview of my entire process. Hope this helps someone! :)
Technical phone screen I (45 mins):
Technical phone screen II (45 mins):
Good news - made it to onsites!
The phone screens were done by June end. Now I took entire July to prep and set up onsite interviews for August.
Onsite (4 rounds)
Now, full disclosure, none of my interview questions were directly from LeetCode. All of them were ambiguous problem statements that I needed to break down and think about. However, preparing from LC can equip you with a lot of techniques and confidence, that are DEFINITELY needed for any interview question!
So I'm just going to map their difficulty level to that of LC questions.
First round: A Medium difficulty question on arrays. It had a follow-up question too which I coded well within time to have around five minutes remaining at the end. I'd say this interview went pretty well, the interviewer seemed happy too.
Personal rating: 4.5/5 (this was my best round and I was so pumped!)
Second round: The question was around the usage of heaps. Again, I'll put it as a Medium problem. I actually wasn't sure if I had come up with the most optimal solution so I kept on thinking how to make it better. The interviewer asked me to code up the initial approach only as we were getting short on time. However, I got a feeling that he was satisfied with my initial approach itself and we also had a good little chat at the end!
Personal rating: 3.5/5 (or maybe a 4, if it was indeed the best possible solution. Like I said, it doesn't make sense judging your own performance!!)
Third round: I was given a very vague problem statement - it revolved around some concepts from Geometry. I later found research papers on that problem when I googled! Anyway, I took quite some time to think of a good enough approach (which the interviewer was satisfied with), but couldn't complete the good. I'd say I coded 50% of that solution only. Felt like crap after that! The interviewer was very friendly though. We had a nice little chat at the end!
Personal rating: 3/5 (FWIW, I thought I screwed this round as I couldn't even complete the code!)
Fourth round: I was given a vague problem statement, again. It involved geometry, again. :|
Took some time to come up with a solution, but coded it really fast later. Interviewer seemed happy with it!
Personal rating; 4.5/5
Googlyness round: I had a great conversation with the manager. Don't know how they perceived my Googlynesss factor, but I had a great time answering questions around all those past and future scenarios.
Personal rating; 4/5
I also had a team matching round before HC, and got matched with the first team manager I interacted with. This happened in September.
Result: HC approved in October :)
[EDIT] Answering the questions from comments -
Did you practice previous google problems on Leetcode?
Yes
Do you have competitive programming experience?
I used to do it in college. It's been 2+ years now without any competitive programming.
Did you practice topic wise?
Nope, I did from top company lists or the top 100 questions list etc.
How many Leetcode problems did you solve before the interview?
Don't remember the timeline specifically. But from April-August I've done around 335 questions. (224 Medium and rest Easy+Hard almost equally)