Google | L3 | Sunnyvale, US | Mar 2021 [Offer]
Anonymous User
9959

Status: Professional technical experience, but not specifically Software Engineering, MS-CS 2019
Position: Software Engineer, L3
Location: Virtual Onsite Interview
Date: Mar 05 - 2021

I have the NDA, but I also dont think any of the questions I faced matched exactly with what I have solved on LeetCode. I will share few questions from Leetcode that use similar concepts. If you know how to solve the questions I share, and fully understand the time complexities, you'd have aced my coding interview.

Technical phone screen (45 mins):

Google's technical interview process seems to be a little different from other companies, they usually dive in directly with the coding questions. Some interviewers might ask for Behaviorial style questions such as "Tell about a time when you faced a problem (bug or a challenge), what was it? and how did you solve it?", but they will keep it brief. In my case, I only had to solve technical questions.

I was asked three questions during my phone screen. They were not very difficult, I think they are just checking if you are comfortable coding and can explain what you are doing well. The following questions have the same concepts and level of difficulty that I faced during the technical phone screen:
https://leetcode.com/problems/open-the-lock/
https://leetcode.com/problems/binary-tree-level-order-traversal/

I feel like I did pretty well, they did take about a month to invite me to the virtual onsite, but thats just the process these days. They are taking quite a lot of time to respond to candidates. Of course, your mileage may vary.

Virtual Onsite (5 interviews - 4 technical and 1 Behaviorial)

You will have 3 interviews back to back, then a 45 mins break, and then the remaining two interviews. Behaviorial interview will be the last one. I had interviewed once before in early 2019 with Google and they had the same schedule, so you can expect the same. The interviewers will try to keep all the interviews limited to 45 mins, but you do have a 15 mins window to wrap things up or ask some extra questions. I reccomend you keep working on the problem, the best you can, until the interviewer points out that you guys are out of time. In my case, we usually stopped coding at around 40 - 42 mins into the interviews. Then I asked my questions, a couple of answers turned into discussions and we ended up talking for 10 mins but I usually had about 10 mins to drink some water or go to the restroom.

Since there is a separate interview round dedicated to Behaviorial questions later in the interview process, my understanding is that there will no behaviorial style questions in the first 4 interviews. But my first interviewer did ask me such a question.

Round 1

The round started with a brief introduction, and a behaviorial question, but he didn't care too much about the details. I think this is a good way to start because I was pretty calm during the whole interview process having made a human connection with the interviewer. Then I was given one question to solve, and the whole interview revolved around that same question. Here are some similar questions I found on LeetCode.
https://leetcode.com/problems/number-of-islands/
https://leetcode.com/problems/number-of-islands-ii/ (requires subscription)
https://leetcode.com/problems/number-of-distinct-islands/
https://leetcode.com/problems/max-area-of-island/

Round 2

Second (also 3rd and 4th) rounds started directly with a coding question, after a hello. The interviewer was very helpful and polite. When the interviewer asked me his question, I immediately started suggesting a DP solution. The interviewer nudged me to look at more examples before jumping into a solution, which I did. After looking at more examples, I realized that DP would have been a bad choice. It was actually one of those array and strings type of question that requires a little bit of logical thinking, and can be solved in linear time.

The interviewer then nudged me and said that we should improve the code even more, and I did that too. The solution was still linear but I cleaned it up a bit. He then asked more follow ups by chaniging a few rules from the initial question. He made a mistake in one of the follow ups and I immediately told him that he must have made a mistake because what he said did not make sense, and I even told him what his follow up question should have been. It was a funny little moment, and I felt a bit more confident seeing him struggle for just a second to understand what I was saying (he agreed that I was right). I liked the guy, it did not feel like an exam at all.
https://leetcode.com/problems/jump-game/
https://leetcode.com/problems/jump-game-ii/
https://leetcode.com/problems/odd-even-jump/

Round 3

Pretty straightforward, asked a question. I stumbled a bit but was able to come up with a good solution fairly quickly. While I was coding, I figured out an even better way and said "you know what! I think I could have done it this way!!" and he said "well, we still have time.", so I re-did the code. Then a couple of followups and we were done.
https://leetcode.com/problems/verify-preorder-serialization-of-a-binary-tree/
https://leetcode.com/problems/check-if-word-is-valid-after-substitutions/

Break

Round 4

I was asked two questions, first one was pretty easy tree based question. The following should cover it:
https://leetcode.com/problems/flip-equivalent-binary-trees/
https://leetcode.com/problems/symmetric-tree/

The second one was a bit harder, the following questions should cover all concepts. Not alot of insights to share here. I basically vocalized as I was coding, and he was asking questions about my choices which I justified. At the end I realized it wasn't the most optimal solution, and I asked him what I should have done instead. He explained how I could have optimized the code, and I basically spent the rest of the time discussing that optimal solution and did not ask anything else.
https://leetcode.com/problems/longest-line-of-consecutive-one-in-matrix/
https://leetcode.com/problems/alphabet-board-path/
https://leetcode.com/problems/longest-increasing-path-in-a-matrix/

Round 5

There were many followups on each of my answers but you could go prepared and think about the following:
Tell me about a time when...
"... you faced a challange"
"... you faced or observed bias"
"... you resolved a conflict within the team"
I think they just want to see if you can work in a team, you can grow or take up new challenges. Also exhibit that you can stand up to social or moral issues, or atleast not be biased yourself in some way.

Overall Interview Experience

The experience was really good, I think i did really good in 3/5 interviews and the rest were ok. My suggestion would be to get the LeetCode subscription, there is a separate section for all of the top tech companies and you can focus on the problems and concepts that those companies value most. Just to be clear, you don't necessarily need the subscription, especially if you either have a lot of experience solving these kinds of problems or you are just starting your interview prep. But, I had about 2 months time and a regular 40+ hrs job, so I decided to just focus on Google. After I was done solving google problmes I went through the most popular questions by frequency and started practicing those. During my last week of prepration I did not solve any new questions, I just tried to re-do all the questions I had already done, and tried to optimize them if possible.

Team Match

I thought I'd add a few things about team match as well. So, as soon as you get approved by Hiring Committee (HC), your recruiter should start flowing your info to teams that are looking for candidates. Getting a team match could take between 1 day - 6 months. Its really a matter of luck. If there are teams interested in talking with you, I reccomend you treat this like an interview rather than a casual conversation which its actually supposed to be. There will not be any technical questions, they will just ask about your interest and what you've done. Some might ask one or two behaviorial questions. Ask questions about the team, and what they do, show some enthusiasm, ask about their challenges, etc. If you are lucky, you will find a team that you are interested in and they are interested in you too. I had 7 team match calls in total only one was interested in me, I was interested in 5 of them, only one was interested in me and I'm joining them soon.

Comments (21)