Interview Experience
Current Employment Status
- Education: B.Tech in Computer Science from a Tier 2 college.
- Experience: 4 years from a Product Based Company.
- Position: L4 at Google
- Location: Bangalore
- Date: March 2022
I was apporached by a recruiter through LinkedIn for a Backend or FullStack role in the end of December. We conversed and scheduled my screening round at the end of January.
Note: I will not be able to share the problems due to NDA.
Screening Round:
The main gist of the problem was to merge n arrays into one. The real problem lies on how two arrays can be merged. I took a bit of time, but eventually came up with a solution to merge two arrays. The interviewer asked to implement it and I did. Then I focussed on applying the same logic to merge multiple arrays. Implemented that as well. The interviewer was happy with my approach and implementation. He then asked about the Time and Space complexity. Variation of https://leetcode.com/problems/merge-k-sorted-lists/
Verdict: Hire/Strong Hire
The recruiter followed with the feedback being positive. I asked him to provide some time(2 months) for perparation for the onsite interviews. I asked him to schedule the onsite interviews on the month March 2022.
Onsite Interview:
- Round 1 (Googleyness) - Behavioral round with questions based on past experiences and hypothetical situations.
Verdict: Hire/Strong Hire
- Round 2 (Coding) - Tree Based problem which involves using in-order traversal. Solved the problem quickly and implemented it with extra space. The follow up was to use constant space. Quickly gave a thought about it came up a with a solution and implemented it as well. The interviewer was happy with it. We had some extra time and talked about the project he is working on and his experiences at Google.
Verdict: Hire/Strong Hire
- Round 3 (Coding) - Tree + DP Based problem. Came up with a brute force approach and implemented it. Took a lot of time and a hint from the interviewer to solve the followup question. Solved the followup and but unable to implement it.
Verdict: Lean/No Hire
- Round 4 (Coding) - Not a typical coding problem but was based on real life. After discussion it boils down to a matrix based problem and solved it effienctly(I thought so, but there was a better approach with constant time complexity).
Verdict: Lean/No Hire
Got the feedback from the recruiter that two of the feebacks were mediocre and my packet will not be cleared for L4 instead it will be for L3. The recruiter asked if I am ready to take two extra rounds to compensate the two mediocre feedbacks. I accepted it and scheduled the interview a week later.
- Round 5 (Coding) - A real life challenge. After discussion it boils down to a graph based problem. Used BFS to solve the problem and implemented it. The interviewer asked for a followup and solved that as well. We then discussed about the time and space complexity and he asked me to identify the test cases and corner cases as well. He then asked if the space complexity can be reduced. Gave him a Union-Find based approach and he was pretty satisfied with it.
Verdict: Hire/Strong Hire
- Round 6 (Coding) - A real life challenge. After discussion it boils down to an array problem. First I solved the problem using bruteforce approach and implemented it. Discussed the time and space complexity. The followup was to reduce the time complexity. Took some time and used Binary Search to solve it. Explained him the approach and implemented it. He was satisfied with the approach and the implementation.
Verdict: Hire/Strong Hire
After 3 days, the recuiter followed back with the feedbacks being positive and schedule a Team match call. Discussed with the Hiring Manager about the product and the role I will be filling in.
Everything went smooth. Waiting for the HC to clear my packet for L4.
Takeaways:
- Hardwork will always pay off. I interviewed with Google in 2019, but was unable to clear the screening round. Since then I focussed on DSA more and now I am about to recveive an offer from the same.
- Understand the problem thoroughly and ask for clarifications if not. Jumping to assumptions will not make you look good.
- Always start with the brute force approach and then optimize it. Premature optimization can be disastrous.
- Brainstrom your thoughts even if they do not make sense. The interviewers want to know how you approach the problem and how you arrived at the solution.
- Write clean and production ready code with proper variable names and comments.
Preparation Strategy - https://pastebin.com/Tz3iAtVX
Compensation - https://leetcode.com/discuss/compensation/1971271/Google-or-L4-or-Bangalore