Google Interview Experience 💼 - Software Engineer 👨💻 (Accepted)
From Noob to Noogler 🚀
7 min read
Recently I got an offer from Google India for an L3 level SWE. So, I decided to share my interview experience because it makes me look cool, right? 😂.
There are already so many interview experiences online, why would you need another one?
Every experience is unique. I read a lot of experiences throughout the hiring process and each one of them provided useful insight into the process. Hoping to do the same for you 🤞.
In this article - I will share how I got the opportunity, Google's hiring process and, some learnings I had in this journey.
How did it start? 🤝
A little backstory here, I applied for Google during my engineering final year but got rejected after the phone screening round.
I never applied again, they reached out to me as they had my contact in their system.
1st July 2021
I got an unexpected call from a recruiter where she asked me if I am interested in a job opportunity at Google and I delightedly said yes 😊.
She gave me an overview of the process and what to expect in the interviews.
I asked for a month's time to prepare as I was not in touch with DSA at all and I could only spend around 1-2 / day because of my job. She agreed to it and sent me some resources to brush up on DSA.
Understanding a candidate's situation is a big standout in Google's hiring process. The recruiter takes an active interest in your preparation level, and only after you are comfortable does the recruiter schedule interviews.
Tip: Always try to schedule interviews asap because there is only a limited number of job openings and they fill up quickly.
If you are already prepared then don't take much time.
Interview Process 📝
- Phone screening
- 5 onsite rounds
- Team fit call
- Hiring committee
I started searching for a platform to prepare DSA problem solving, and Leetcode was the answer for my search.
I read a lot of interview experiences specific to google to understand the complexity level of interviews and then went through different learning resources.
Here are some preparation tips for you :
- Create a schedule, distribute time for different topics. (less time for topics that you are good at)
- Solve at least 2-3 good problems each day. (hopefully more problems on weekends)
- Set a timer for every problem you solve. 15 mins for easy probs, 25 mins for medium, and 35 mins for hard ones.
- Start with easy problems to build confidence, then move to medium and hard ones.
- Focus more on medium and hard(acceptance % should be high) problems.
- Give mock interviews closer to your interview dates. (there are some platforms online which help you with that)
and, the most important
Choose problems wisely. Not every problem on leetcode is worth your time.
Time: 45 mins
Platform: Google Meet
Coding Environment: Google's own IDE, looks like Google Docs.
Interviewers were really kind and supportive, they helped me whenever I got stuck.
1. Phone Screening Round
3rd August 2021
After a little introduction, the interviewer pasted a problem statement on the IDE and asked me to come up with a solution.
It was kind of a leetcode-easy problem so I solved it super-fast and explained the time and space complexities to him, he was happy with it and asked me to code it.
Then he switched to another problem which was a leetcode-medium including a couple of follow-ups as well. It was a real-life-based problem and I really loved solving it 😍 .
We had a healthy discussion over the problem, discussed different approaches and when finally he was convinced, I coded it.
Interview went pretty well. The next day my recruiter called me to inform that the feedback was positive and we will be moving forward for the onsite rounds.
2. Onsite Rounds
There were 5 onsite rounds, 4 technical, and 1 googlyness. First 3 rounds were taken on consecutive days and the last 2 rounds were scheduled after looking at the feedback from the previous 3.
Note: For L3 and L4 levels at Google, mostly technical rounds are all Data Structure and Algorithms based.
18th Aug 2021 - First Round, 1 leetcode-medium problem based on graphs. I explained different approaches and the trade-off between them. After few minutes of discussion, we agreed on one approach and I quickly coded it.
15 mins were still left on the clock but my interviewer decided not to ask any more questions, we just had some discussion about my work and all. I asked him about his team and the work he does at google, everything went well.
19th Aug 2021 - Second Round, 2 leetcode-medium problems, one was based on DP and the other on Graphs. I solved the DP problem quickly and moved to the second one, but I did some implementation mistakes while coding the second one and time ran out ⏰.
The interviewer told me that he understood my approach and will share the feedback with the recruiter. The feedback was good overall but he mentioned coding speed as an issue.
20th Aug 2021 - Third Round, 2 leetcode-medium problems, both based on graphs. Interviewer was a very experienced guy and he was quite fun to talk to. We discussed various approaches and when we both agreed I coded the solution.
I did a silly mistake of passing a parameter 'by value' instead of 'by reference' and got caught by the interviewer 😔. In my feedback he mentioned a negative in code quality, overall feedback was positive.
A week later, my recruiter called and informed me that she will schedule the remaining 2 interviews also.
7th Sept 2021 - Fourth Round, 1 leetcode-hard problem based on trees and the problem was very interesting, it took me some time to reach a perfect solution.
We discussed the time and space complexities of the algorithm, I coded it and the interviewer was quite happy at the end.
8th Sept 2021 - Googlyness Round, It was kind of an HR round but to my surprise, the interviewer was an engineer.
She asked behavioral questions where she basically wanted to understand how would I respond to different scenarios. The mantra here is to reflect positivity in your answers.
Team Fitment 📞
You must be thinking that now is the time for a result, right? Wrong, there is still some action left!
Recruiter called me and said that the interview feedbacks are positive, but there are some gaps also, like code quality and coding speed.
She suggested that to strengthen my profile we should get a statement of recommendation from at least one hiring manager. She sent my resume to different HMs and set up meetings also.
I had fitment calls with 5 to 6 managers from different teams, some did not meet my expectations and for some, I did not match their requirements.
Finally, after 3 months, I matched with a team and the manager was happy to move forward.
Hiring Committee 🤼
I had to share a few internal recommendations and then my packet was sent to the hiring committee. After that I was just waiting for the result to come, thinking about how would I say goodbye to my current team 😜
After a week my phone rang, it was my recruiter who informed me that the result is positive and now I can inform my friends and family about it 🎉.
The End 🛑
It was difficult to prepare while working full-time, the level of Google interviews is definitely high and it tests you on various aspects.
A lot of time I felt like giving up but the dream inside me kept the hopes alive. Remember 👇
Life is tough and so are you.
P.S: Thank you for staying till the end, this was my first ever article written online 😁. My sincere apologies if there was any grammatical mistake here, this is all I could write using Grammarly 😂.
I will try to create a detailed post for all the learning resources that helped me to prepare for the interviews. Till then, if you have any questions, please feel free to post in the comments or you can also connect with me via Twitter, @heySachin23