Google | L3 ML-SWE | Mountain View | Feb 2022 [Offer]
Anonymous User
8474

Status : Recent MS grad from top 10 CS universities
Experience : No previous full-time experience

Interview Timeline

  1. 29th Spetember 2021 - Online Application
  2. Mid Ootober 2021 - Superday (5 interviews)
  3. Mid November 2021 - HC Approval
  4. Mid November 2021 to early January 2022 - Team Matching
  5. Mind Jan 2022 - Recieved the offer

For me it was a little long process, especially during team matching due to Christmas break. Although my application profile was specific to ML, entire interview was generic SWE coding.

It was only during team matching phase that I have been ask ML related questions, Although team matching is more of a discussion than an interview.

Interviews
I did not have any coding assessment or phone screen, the very first email I recieved after applying was to schedule the fullday interview. the format was usual 4 coding interviews + 1 Googlyness (Behavioral) interview.

  1. Googlyness (30 Mins) -

    • The Questions were scenario based, such as what would you do given that you team situation is XYZ, what would be your first action?.
    • There were also questions related to entrepreneurial spirit, such as tell me about a time when you had to lead people, you had to take a stand for your project, ...
    • Preparation : I was not shared any specific leadership principals by Google to prepare for. I went through the leadership principals from Amazon and other tech companies, as I think behavioral interviews in tech companies are overlapping. Youtube has some really good content on what to prepare for your behavioral interview at Google. Some Google specific principals are Solve hard problems and Do the right thing.
  2. Coding Interviews (4 x 45 Mins) -

    • All 4 interviews were focused on different areas of competitive coding, I do not remeber the exact order of them, but the order does not matter anyway.
    • 1st : There were 2 class design question.
      • The first one was related to Job scheduling, Given the job Ids and their prerequisites, Determine the order(s) in which all jobs can be performed. There were a few follow-ups as well, such as rathar than all jobs, decide order to perform just one job.
      • The second question was about returning list of possible recipes given the raw materials, https://leetcode.com/discuss/interview-question/1504849/Google-Onsite. There were a few related follow-ups as well.
      • Both the questions were Graph related with possibility of using Hashmaps to improve the time complexity.
    • 2nd : It was one medium level Tree related question with 3 follow ups.
      • Given a tree with 0s and 1s find the total area of islands (count number of 1s). Assume )s are water and all the area outside the trees are also water
      • follow-up - Count number of islands
      • follow-up - Count the histogram of island-area (apply a Counter on isand areas and sorting them by by area)
      • follow-up - Dont remeber the exact wording but it was related to improving the complexity.
    • 3rd : Dynamic programming - Given a matrix of 0s and 1s count number if full rectangles - A full rectangle is the one filled with only 1s - https://leetcode.com/problems/count-submatrices-with-all-ones/
      • Follow-up : Improve time complexity -> can you do it in n^2?, similar thing was for space as well -> target O(n)
    • 4th : Dynamic programming - Find stored water
      • Given an array, consisting {-1, 0} U N, which representes peaks, valleys and sink (-1). There is also given a water level, which is value greater than 0. Find the amout of water than can be stored.
      • the sink(-1) absorbs all the water coming to it.
      • Example: Given the array [0, 1, 0, 4, 2, 5, 3, -1, 2] and water level of 4 the answer would be 13. the amount of water stored at each array location would be [4, 3, 4, 0, 2, 0, 0, 0, 0].

Tips during the interview

  1. The class design questions were not hard but time consuming, as it involves writing custom class definitions, and methods for each objective asked by interviewer. The interviewer will be looking for tidyness and understandability here more than reduced time/space complexity. If you encounter design question, manage your time accordingly.
  2. Google interviewers cares a lot abut edge cases and test-case walkthroughs, so at least keep the last 7-10 mins for that. As Google uses docs like documents for coding with no capability run the code, you will have to do walk-throughs manually. It is especially tedius to do this with Trees and Graphs, as while testing the code you also want to make sure the interviewer understands what you are doing.
  3. The manual code-walkthroughs can be a bonus as well. If you think that you are too exhausted and can not take another follow-up just keep testing the edge cases. This will show your thoroughness, while you can eliminate the burden of solving anotehr follow-up :p.
  4. I realized that, as I moved further in the day, the complexity of questions were same, but it becomes mentally more stressful, as you will be doing coding for 4 hours back to back. Keep water bottle next to you, and try to take a small walk between the interviews.
  5. Keep interacting with interviewers, they should know where you are stuck, so that they can help you accordingly. The purpose of interview is not just prove yout technical skills, but interpersonal as well. They will drop hints time to time.
  6. I would say stop practicing a day before your final interview, and definitely do not practice on the day of interview.

Preparation

  1. I did not focused on a specific Google related questions. As I think there are about 1000 questions in this list https://leetcode.com/company/google/, and I did not have enough time to prepare between applying and interviwing.
  2. I mostly focused on Hard and Medium questions as well as specific topics. The topics I have prepared more were Array, Dynamic Programming, Tree, Graph(DFS/BFS) and Searching/Sorting. I have done about ~100 Questions targetting Google interview, with total about 450 (during last year).
  3. One important resource is the Leetcode discussions, I have went through all the questions from this query -> https://leetcode.com/discuss/interview-question?currentPage=1&orderBy=most_relevant&query=google%20onsite. I think some questions were similar or atleast inspired by the previously asked questions.

Comp. details -> https://leetcode.com/discuss/compensation/1737521/Google-or-L3-ML-SWE-or-Mountain-View

Good Luck :))

Comments (13)