Google MTV fail

I am a female in the 5th year of Ph.D. in Physics in a tier 2 school on the east coast. The process started early October when a recruiter reached out to me. We quickly scheduled a phone interview and the feedback for a phone interview was highly positive so they wanted to schedule the onsite as soon as possible. Unfortunately, I was out of the country and had a packed schedule so I had my onsite over a month after my phone interview. This was my first coding interview experience ever. I did not know whether I was interviewing for L3 or L4 until I walked into the room for my first onsite interview and accidentally saw the sheet they keep for checkpoints of the interview. I had a total of 5 interviews, one of which was behavioral and an additional hour for lunch. Each coding interview was 45 minutes and the behavioral interview was 30 minutes. The flight to MTV was exhausting and I was sick for a couple of days before the interview, so the result did not surprise me. I won’t give the exact questions but give a good idea which should help you prepare if you are applying for L4.

Round 1:

  • A complex question on traversing the DAG. My approach was to use BFS and I coded it completely. The interviewer was nice and helped me with the initial math needed for starting coding. The initial math corresponded to knowing your probability and number theory good. I thought I had a good hand on it but I needed to review it a bit before the interview day (last I studied them was 6-7 years ago). The interviewer asked me how to improve the runtime efficiency and my approaches were not super helpful. At the end of the interview, she told me that it can be done using topological sort. I did not know what it was.

Round 2:

  • The interviewer started with 5-10 minutes of introduction. Then she gave me a fairly simple problem which I solved using dp / recursion in 1-D array. I solved it and wrote the code for it within 10-15 minutes. The follow-up question was to extend the same problem to a 2-D array and my approach was to still use dp but I got stuck trying to find the 2-D dp formula. When I looked at the problem later in the evening, I realized that I was very close to the correct answer and was just missing a “-1” in the formula. During the interview, I tried to test my wrong formula on various examples but it didn’t work and I couldn’t figure out why. The interviewer looked confused and there was none to little feedback.

Lunch

Round 3:

  • An SWE asked me a bunch of behavioral questions. I do not remember them clearly now but a huge chunk of them was about describing an experience where there was a deadline with a team, etc.

Round 4:

  • The problem was a mild variation of sorting and the follow-up question was a less mild variation of sorting again. I knew all sorting methods well and I could write the complete code for both the initial and the follow-up problem well in time. We later discussed time complexity and alternate data structures to solve the problem. For an interview for L4, you do need to know all the complex, not so frequently used data structures. You obviously need to know all the common and non-common sorting algorithms.

Round 5:

  • The question was whether a given array satisfies the given criteria. I described my strategy to the interviewer and she asked me to start writing the code even before I could completely come up with the strategy. Maybe I was taking too long. Because of the last interview taking a few extra minutes, this interview started 5 minutes late. My approach was a brute force, but I could not think of a non brute force method to solve the given problem. Hence, I got stuck heavily and I did not get any help from the interviewer (I know I cannot expect help but I am just stating that). At one point, I asked her if my approach makes sense and she said “yes yes” without even looking at the whiteboard. She said we are out of time 5 minutes before we were actually out of time.

Key lessons:

  • The job has certain requirements of basic knowledge and if you are someone not from CS background, you really have a lot to read up and understand. This is something you might skip if your interview prep methodology is just doing leetcode problems
  • Speed is important. Do several mock interviews in the style of an onsite interview (know the problem, talk the approach, code it, test it, find complexity) with the time limit. You can easily expect 7-8 minutes getting lost in small talk and small things like understanding accents. So, I would recommend the mocks to be 40 minutes and each mock should be either one hard problem or a combo of one easy and one medium problem.
  • Before testing your code against an example, go over your code to see obvious issues.
  • Be prepared for rude, mean, and very rigorous interviewers.

After my interview, they passed my packet to the hiring committee the next day and got back to me within a week with the reject. I do wish that I had prepared better but to be honest, I was extremely packed with work and personal commitments and also, I had little idea on how to prepare.