Journey to Google : Part 2
As I promised in my previous post Journey to Google : Part 1 I will share my interview experience with few of the FAANG companies.
Among the FAANG companies, I gave an interview with Google, Facebook, Amazon. Out of these, I had cracked Google and Amazon but failed in the Facebook interview process.
I will start with my dream company 😀.
The interview process started with a exploratory call from one of the google recruiters, in which he explained to me what they expected in interviews, how much my preparation should be, and also where most of the candidates fail. It was an informative and explanatory call, they provided me with a lot of resources. One good thing about them was, they dint gave me any false expectation that it would be an easy process but along with that, they gave me confidence that if I prepared well it would not be a hard nut of crack. Overall after talking to them you feel motivated.
The interview process started with screening rounds and after that 5 rounds of interviews, out of which 4 were technical and 1 was Googleyness round.
- Screening Round
In this, you have 45 minutes. Depending on the interviewer you will get one or two questions. I was asked two questions.
The questions were similar in concepts to these questions :
I was able to solve both questions.
Few important points that I had realized after giving screening round was that :
- They pay much attention to how quickly you can write bug-free code.
- They ask you in detail about the complexity of your solution and the different complexities that you can come up with.
- Always ask clarifying questions from them. I am sure if they are good you will get some bonus points.
The next day I got a call from my recruiter that I had cleared the screening round and they are ready to move forward. It took almost 5 months for preparation.
- Round -1
The interviewer had asked a question that was similar to Task scheduler. After solving the question, the interviewer had modified the same question (related to multi-core CPU)and asked me how will I modify my solution to satisfy new requirements.
The question asked was somewhat similar to Russian doll envelope but a little harder than this. After solving the initial question he had modified the question (he went into multi-dimensional boxes). The focus was more on my coding styles e.g. he asked me about lambdas’ function and why I have used them, what is the pros and cons of it. So, I will advise you to know in-depth about the in-built functions you are using in your code.
- Round 3
It was related to the encoding decoding of a string with some kind of pattern encoding. He asked me how to optimize the encoding process in terms of space and time complexity. This type of question I had seen for the first time. Also, it was more of a discussion question rather than coding.
- Round 4
He started by asking about some of my challenging projects. Then similar to the “top K elements” question was asked, and different approaches to solve it based on memory constraints. It was a very detailed round, which checked on my conceptual knowledge of data structure.
- Googlyness round
Usually, Google will ask you situation-based questions like :
If you have a project to develop and you need to collaborate with another team, how will you convince another team to give time to you from their bandwidth?
How will you develop a project in minimal time, and how will you filter out the requirements based on their importance, and decide which will go in your first version release?
After two weeks I got a call from my recruiter that my candidature is going to the Hiring Committee of Google and after two weeks they gave me a green signal that I am selected in google.
After this, I went through team matching rounds, where based on your past work experience best teams are selected which also takes into account how much that team manager is interested in your previous work. If in this team matching round you and that team manager find each other suitable then team selection is completed, otherwise, this process continues until you find a suitable team as per your requirements.
Finally, after I got selected in a team, google extended me an offer letter. At that moment I was on cloud nine. All the hard work of almost 6 months paid off and seeing my loved one happiness was the best feeling in the world.
I gave an interview for the Facebook London office.
Same as Google, Facebook recruiters were also very friendly and gave me sufficient preparation materials.
In the Facebook interview, I had to give both system design and data structure rounds other than a behavioral round.
Similar to Google initially they had screening round :
- Screening round :
It was the same pattern as in Google, they gave 45 min and 2 questions were asked. The question was somewhat in a similar concept to these questions :
After around one week recruiter called me up and told me that I cleared my screening round and after this, I will have 3 data structure rounds, 1 system design round, and 1 behavioral round.
After 1 week I got a call that I have cleared screening rounds. After this, I took around ~2 months for preparation, before going for the next set of rounds.
It was a data structure-based round. He had focused on various approaches to the question, along with the complexity. The question was not this much easy but the basic concept was similar to this.
The question was a graph-based question where I was given a start and end target and had to find a minimum cost based on certain constraints. I went with the BFS solution for this. Then he went into the further discussion that what if we have a large number of vertices, how will you reduce memory footprint (I answered bidirectional BFS). He discussed the pros and cons of each approach that I had shared with him.
- Round -3
It was a purely Dynamic programming-based question that required the use of a binary lifting approach. This was the toughest round among all data structure rounds.
It was a system design round. He had asked me to design an auction system. He went into depth on distributed systems like how to avoid replication lags, how to tackle inconsistent data, what to do in case of race conditions.
In some of the questions related to these topics I got confused and was not confident in my solution, which I think costed me.
- Behavioral Round
All questions were popular behavioral questions and nothing surprising came up in this round.
After 2 weeks I got a call from a recruiter, that I did not clear Facebook. I had aced in data structure rounds but the system design round was not up to the mark. 😒
Amazon interview process started with hacker rank round, which had two questions and 1 hr was given for it.
After this hacker round got cleared. I had two technical rounds, 1 system round and 1 behavioral round, and 1 managerial round.
- Technical Round 1
It was based on Trie data structure. It was a hard level question and around 1 hour was given for the same.
The question was asked directly from leetcode.
- Technical round 2
They had asked Edit distance question of dynamic programming and focused mainly on concepts of dynamic programming.
- System design round
The interviewer had asked to design a system similar to BookMyShow and emphasized mainly database designing.
- Behavioral round
All the questions were based on the leadership principle of Amazon.
- Managerial round
He asked me related to designing the Twitter-based system and then dwelled in-depth related to my challenging projects and discussed in detail the challenges that I had faced.
After 1 week I got a call from the Amazon recruiter that I have cleared amazon rounds and they are ready to extend the offer.
Few takeaways after giving FAANG interviews are :
- Google and Facebook focus a lot on bug-free optimized quick code and they have strict time constraints. Amazon is a little lenient in this context, they can extend the time, and somewhat buggy code also works fine with you if your approach is correct.
- I have noticed that none of the questions of Google were directly from anywhere. You can ace their interview with a lot of practice. Comparatively facebook and amazon questions are directly from leetcode, geeksforgeeks, or other well-known coding sites.
- For each of these companies, you need to be clear about what you are writing, you should know different approaches to solving the question. Don’t mug up any concept because sometimes they go in-depth and you may get in trouble.
- Just a suggestion always keep few competing offer in hand when you are negotiation with any of these companies, that will help you a lot😉
In the end, I would also like to tell you that luck plays an important role in these interviews. Interviews don’t decide your technical ability or your knowledge. Just have confidence in yourself and your preparation and never get distressed. There are a lot of companies in this ocean, just believe in yourself and stay focused.
So, I hope I was able to help you with these tips and my interview experience. Good luck with your preparation journey and enjoy each and every day of it.Stay tuned 😊