Google | L4 | SF Bay Area | March 2020 [Offer]
Anonymous User
543

Hi Leetcode community,

I recently got an L4 offer from Google so just wanted to just share my experience and how I prepared.

Background:
College: top 25 cs college
YOE: 4 years as full stack engineer

Preparation:
I did Leetcode on and off for pretty much the whole time I was working but didn't do it consistently until about a year before my interview, which was doing a few leet code questions each week consistently. I focused on doing the questions from the Google interview questions sorted by top frequency. After doing this for about 9 months though, it felt like I hit a wall and wasn't improving. I realized that it was because I kept looking up the answers to learn "faster" or being content with getting an answer as long as it "passed." You can tell if you truly understood the concept if you try to do a question you've done previously. For me, I noticed that I couldn't do most of the questions I've done before, some of them even if I've done the multiple times before.

So for the last 3 months before the interview I started studying with a new approach. If there were multiple approachs to a problem, I would try to implement all of them. For example if a question could be solved in bottom-up DP, try to do the same in top-down DP, or can it be solve in greedy way or can it solved in divide and conquer way. This also means not just doing the most "optimal" solution, try doing the non-optimal solutions as well, if you think you can learn from it. I also had to control myself from looking at the solution too quick or thinking it's good enough. If I got truly stuck and couldn't do a question, I would always try to understand the solution but "favorite" it so I can come back in a few days and try implementing it. I really recommend redoing the question that you couldn't get at a later time. It's really easy trick yourself into thinking you understood the solution if you reimplement it right away. To really test if you truly understood the solution, come back to it after a few days. Personally, it was a bit depressing to see how wrong I was in thinking I understood something.

And then in the last month, I compiled a list of different algorithms and concepts and split them between concepts that I understood very well, that I kind of knew, and that I didn't know at all. And worked on doing questions focused on the concepts that I didn't understand very well. Before doing this, I was just randomly doing Leetcode questions. This is really obvious in hindsight, but I was focusing on mastering the question and not on mastering the concept, and having the list really helped me shift my focus to mastering the concept. This also helped me gain confidence and track actual progress.

Beyond the technical preparation though, I think it's also equally important to prepare mentally and physically. Focusing on being in good physical shape (happy body = happy mind), I gymmed three times a week and ran about 2 miles almost every morning. I deleted all my computer games so there won't be any distractions, and most importantly focused on getting really good sleep the night before by not looking at any screens about two hours before going to sleep. The difference is honestly night and day when you are well rested.

Actual onsite
I won't discuss the actual onsite questions here (NDA), and tbh I don't think they are too useful because I personally didn't get any questions that I've seen before on Leetcode, it's better to focus on actually understanding the concepts than hoping you get lucky and get a question you've seen before (worse if you get a question you've seen before but you forgot how to do it).

Mine had to be virtually because of COVID and had 4 technical/1 behavioral (no system design, whew). My interview was actually for L3/L4 role depending on how well I did. I guess my interview performance was strong enough to allow HC to pass me as L4.

I also heard interviewers at Google like Java more than Python, but I don't know how much of that is true.

Good luck everyone, and I am open to answering any questions in the thread.

Comments (2)