Status: 2 YoE, F100 company, graduated with a BE in Engineering from small private school with no internships and <3 GPA
Position: Software Engineer, L3
Location: MTV
Date: April 2021
LC community has been SUPER helpful with other people's posts, setting my expectations for pay and timelines, as well as the process. I don't think I'd be here without the community. Just thought I'd pay it forward to anyone who was once in my position and is aspiring to join Google!
Technical phone screen (45 mins):
Quick introductions between interviewer and I, and then jumped straight into the problem. Quite literally a textbook example of knowing your graph problems, no tricks or anything, just be able to navigate a 2D matrix from one point to another. Followup was min cost problem, so make sure you know at least Djikstra's. If you know how to implement textbook graph traversals, you will be fine here.
Interviewer Feedback: Hire, nailed implementation, stumbled a bit on the time complexity analysis
I had competing offers and interviews coming up, so I was expedited through the process. Received the go-ahead for onsite on the same day.
Virtual Onsite (5 interviews - 4 technical and 1 Behavioral)
Round 1: Technical
No idea how to describe this one as it's not really similar to anything on LC. Google really means it when they say they try to avoid LC problems. This was an interval problem with a twist; I was required to build the intervals while considering a continuous input. Solved using priority queue and typical interval sliding window algorithm; interviewer was mostly satisfied with my solution but noted it could've been less space heavy. I also missed some edge cases to consider which were added in immediately after the hints. I probably could've saved some space on the multiple queues; but overall felt good about this one.
Interviewer Feedback: Hire, working solution, correct time complexity and space complexity, was not 100% optimal solution
Round 2: Technical
This was my worst round performance wise imo. However, it was one of my favorite rounds in terms of just enjoyment. We started off well; as both the interviewer and I were in the same domain space. Ran into issue with the doc, which caused us to lose ~10 minutes or so of time. Problem was also not similar to anything on LC; closest problem might be "K sorted elements". Came up with O(n) solution instantly and recognized O(logN) optimal time, interviewer was satisfied. Ended up having an issue implementing the whole binary search portion in time and did not finish in time; however interviewer was very satisfied with progress and gave me the benefit of the doubt due to the 10 minutes lost at the beginning. Overall a super positive experience even though we had a hiccup.
Interviewer Feedback: Hire, no working solution but identified correctly optimal time complexity and space complexity, believes I would've finished had we not lost time at the beginning (May or not be true :D )
Round 3: Technical
This was my best round by far. Problem was a very classic and pretty straightfoward DP problem; if you've done CTCI and Blind 75 you would know how to solve this. Immediately recognized that I had done a similar problem and proposed the same solution and time complexity as coin change. Very similar to coin change in nature, know how to build a solution from bottom up. Interviewer was impressed as I took ~10-15 minutes to write up the entire solution with no errors, spent rest of the time talking about other stuff. The interviewer actually gave me advice on how to squeeze Google for the most money should I get an offer, haha. Great person, had lots of fun on this one.
Interviewer Feedback: Strong hire, optimal time and space complexity solution, no hints needed
Round 4: Technical
Also another completely non-LC style question. Multi-step problem which included a class and sorting the frequency of one of the elements. This wasn't too bad; the followups were pretty much variations on the frequency input. There were 3 steps to this, which I would rate all at a easy-medium. Immediately identified that I just needed to sort the specified input and store the solution based on the sorting. Handled the frequency step with a priority queue, other parts were specific to the problem so I don't want to reveal too much.
Interviewer Feedback: Hire, close to optimal time and space, no hints required. Interviewer mentioned there was a more optimal solution that I had missed, but my solution was good enough for L3 as I had no hints from them.
Round 5: Behaviorals
I'm an extrovert, so behaviorals are almost never an issue for me. I've also had the unique experience of essentially immediately being required to perform the duties of a mid-level engineer due to some life circumstances at my old team, so I had plenty of experience to draw on. Most of the questions are the exact same you would get at any other company. Conflict resolution, stepping up, etc. None of the questions were specific to Google, so studying generic behaviorals will be good enough. I think the interviewer was very satisfied with my responses, they mentioned for one of my stories "This story specifically had a strong impression on me, I think I'll remember it for a while". Don't expect them to actually remember, but it was very nice to hear them say that regardless.
Interviewer Feedback: Hire/Strong Hire. Not much to say here, I passed convincingly.
Overall Interview Experience
Google has always been a mountain for me; I was too scared to apply as a new grad because I didn't want to waste my "chance". This time I just went for it, and I had a super pleasant experience. Everyone was super approachable, which doesn't seem that way from the outside looking in. I'm glad that I took this chance; now I get to work at the one of the few companies I've always joked/dreamed of being at.
Preparation tips
My interview prep consisted of going through CTCI (only skipping bit manipulation), and then doing Blind 75 while beefing up the parts I was weak in with a LC Premium. I redid some problems multiple ways to understand the concepts thoroughly; all in all I did about 150 problems in 6 months which is pretty slow considering some other people around here; but I was way more confident in my fundamentals this way. And that was enough to carry me through the interview. Don't try to memorize solutions; the interview from my experience tested your fundamentals, not whether you've seen a particular trick or not.
Post onsite
Compensation
My competing offers were all at midlevel, so my recruiter (who was an ABSOLUTE CHAMP) fought pretty aggressively for me in the comp committee. I believe he turned them down twice before they refused to go any higher the 3rd time. Ended up getting a >210k recurring package as an L3, and my manager is aware of the downlevel and is giving me the L4 scope I was pushing for originally.
Final thoughts
I'm not anyone special, you can tell from the first line. In fact, I'm probably worse than a lot of you reading this post based on my qualifications. Using the community and focusing my efforts on what the community has identified as important concepts to know basically got me this offer and the other ones that I didn't take. I would highly encourage anyone who's on the fence about applying to just give it a shot! You'll always be your worst enemy until you finally give yourself a chance, like I finally did. Good luck to everyone, and let me know if you have any questions. I'll do my best to answer them!