Status: 6+ YOE
Location: India
Date: Dec 2020
Phone screening
A medium difficulty problem related to movement of robot in grid, I had to take a little hint but solved the problem and wrote the code. In terms of solving the problem it was a cold start but I communicated and represented thinking out loud the way I was preparing for.
Recruiter contacted me and told that I am shortlisted for onsite rounds but there is a remark to improve efficacy, I took one more month to prepare.
3 rounds were scheduled at 15 min gap on first day.
Virtual Onsite
Round 1
A medium+ question related to pattern search in string, solved and completed code in optimum way.
Round 2
A medium question related to sorting, the heart of the problem was we could do the sorting in O(n). Then the problem was extended to huge file, distributed systems and multi threading. Gave the optimum solution for every problem and interviewer was happy.
Round 3
The interviewer was android developer so he asked a question which was something like design problem but from mobile app perspective. I was to the point for every questions and we finished within 20-25 minutes. I was confused whether I screwed up in this round or excelled. But the feedback was positive.
Recruiter contacted me to schedule next round and he was hopeful and started talking about hiring committee from this point.
Round 4
The interviewer started with a medium question and extended it medium+ which involved DFS + memoization. Was able to code up all the solution but had difficulty in explaining the solution (english is my 3rd language). The feedback of this round was positive.
After 1 week behavioural round was scheduled.
Round 5
Interviewer cancelled the interview.
After 1 week behavioural round was scheduled again.
This time interviewer did not know it was googlyness round so he was unprepared and did not take the interview.
After 1 week behavioural round was scheduled again.
Standard situation based questions, and some hypothetical situation based question. I found this round as the most difficult one.
Hiring Committee
I had my last round in the last week of Sep 2020. After 2 weeks recruiter contacted me to get some details and references before submitting the packet in HC, I took 1 week to pull up some indirect references and submitted the details. I have switched 3 organisation in past 3 years and did not have direct references so hiring committee kept my packet on hold, asked more details on why I made so many switch and get team matched and feedback from a hiring manager as well.
Hiring Manager 1
The hiring manager requirement and my experience was a exact match based on my experience in fintech domain. It was difficult to read the hiring manager during whole discussion time, he knew my CTO (they worked together in past). In 25 min discussion I told about my experience for 20 min and HM was open to question for 5 min. I was not considered by HM for the team. Later I got to know from my CTO that he and HM did not have good terms in past, I hope this was not the reason for not considering because HM was a very experienced and mature person.
Hiring Manager 2
Hiring manager briefly explained about the team and work then asked about my experience and shared concerns about the switch. I honestly explained all the reasons for switch and HM liked some of my experiences of architecturing service around orchestration engine and a good exposure to different technology domain (android, backend, embedded and infosec), HM was looking for a team lead which required a mix of understanding of backend and mobile platforms. We had a brief bi-directional discussion for 45 min. HM gave a strong support.
Hiring Committee
In next week after team matching packet was once again reviewed by HC and approved. Compensation was decided and offer was rolled out within 2 days in Dec 2020.
Overall experience
My overall experience was positive and was really impressed with the way hiring committee evaluates a candidate, I think since I did not have any direct references they asked a hiring manager feedback.
Preparation strategy
I read the whole CLRS book(bought an IPad Pro to keep myself motivated) and then started practicing on leetcode (random questions) and participating in leetcode contests. By the time I interviewed with Google I used to solve 4/4 questions in leetcode contests usually in 45 min. Leetcode stats are:
Easy: 55
Medium: 173
Hard: 85
Badge: Knight
FAQs in comment section
Q. Is reading CLRS worth it ?
With reference to the interview set even trying leetcode hard was an overkill. This was my second attempt at Google, in my first attempt last year(Only solved google interview card on leetcode as preparation) I was asked 3 Hard and 1 Medium questions, of which 2 hard I never encountered on leetcode, the easiest hard invoved applying DP after topologically sorting the DAG. I screwed up 2 hard rounds, 1 due to not able to solve the question and 1 due to miscommunication. So the two main reasons why I opted to to read complete CLRS are:
Q. What is all about indirect reference and is references mandatory?
By indirect reference I meant a friend of friend, people at google told me reference are meanigful only if they have directly collaborated in past. I did not know anyone directly at google. HC evaluates a candidate on many factors, not only interview rounds. If they have any doubt then they refer to writeups of references and hiring manager (I read it online) and it improves chances(told by recruiter), like in my case stability was an issue HC noticed.
Q. Resources to prepare for system design interviews?
https://github.com/checkcheckzz/system-design-interview
http://highscalability.squarespace.com/
Q. At what level I am hired?
It is L4, designation is Software Engineer.