L3 interview experience
Anonymous User
3935

I recently completed my interview process with Google for an L3 role, and I wanted to give back to the community by sharing my experience.

How It Started

A recruiter reached out to me at the end of December to explore opportunities at Google. Due to the upcoming holiday season, we scheduled the Technical Phone Screen (TPS) for early January.

Phone Interview

Question: Number of Ways to Build Sturdy Brick Wall

I solved the problem rather quickly and managed to write about 80% of the code. However, I couldn't fully complete it because the solution required a substantial amount of code while maintaining good coding practices.

Rating: Strong Hire


Onsite Interviews

Round 1

Question: A variation of this interview question.

Problem Statement: Given an integer n, return a license plate number following this pattern:

Ranges:

  1. 00000-99999
  2. A0000-Z9999
  3. AA000-ZZ999
  4. AAA00-ZZZ99
  5. AAAA0-ZZZZ9
  6. AAAAA-ZZZZZ

Helper Functions Provided:

  • padToBeginning(reqLen, charToPad, value): Pads the given character at the beginning of a string to achieve the required length.
    • Example: padToBeginning(9, '0', '123') = 000000123
  • alpha(value): Converts an integer into an alphabetic sequence.
    • Example: alpha(0) = A, alpha(25) = Z, alpha(26) = AA

I initially thought I had completely bombed this interview because I got stuck multiple times. However, my recruiter later informed me that I received positive feedback across the board.

Rating: Lean Hire / Hire


Round 2

  1. Gift Buying Problem
    • An uncle wants to buy gifts for his nephew. The nephew provides a list of gifts, where each gift has:
      • day: The day the gift is available for purchase
      • price: The cost of the gift on that day
    • Example:
      3 4
      4 2
      6 4
      10 5
    • The uncle saves $1 per day and can only buy a gift on the specified day. If he skips a gift, he cannot buy it later. The goal is to determine the maximum number of gifts he can purchase.
  2. Building Occupancy Problem
    • Given security logs with timestamps for entry and exit of users, determine:
      • The maximum occupancy of the building at any given time.
      • The time at which that peak occupancy occurred.

I solved the first problem using a priority queue, even though the interviewer hinted toward a dynamic programming approach. The second problem was simple enough that I was only asked to explain the approach, not code it.

Rating: Strong Hire


Round 3

Problem: Given a chat log file, find the top N most talkative users along with their total word count.

Example Log:

10:00 < John > Hi, How is everyone?
10:05 < Amy > Hello John
10:06 < Maria > Great, Having my morning coffee
13:00 < John > Let's meet this weekend
13:30 < Amy > Woahoo

Helper Function Provided:

  • parseLog(filepath): Returns the word count of each message.
    • Example Output:
      [{'John', 4}, {'Amy', 2}, {'Maria', 5}, {'John', 4}, {'Amy', 1}]

Follow-up Questions:

  1. Optimize for better complexity.
  2. Implement the parseLog() function.

I initially solved the problem using a priority queue and a hashmap for counting words per user. Then, I optimized it using the QuickSelect algorithm. The final follow-up seemed like a basic algorithm check, as we still had 10 minutes left.

Rating: Strong Hire


Googlyness Round

This round focused on behavioral questions:

  1. Tell me about a time you advocated for yourself or a teammate.
  2. Describe your ideal workplace environment.
  3. How do you consider different customer segments when developing a product?
  4. Tell me about a time you handled multiple tasks at once.

Rating: Hire / Strong Hire


Final Thoughts

Overall, my experience was positive, and I was fortunate to receive strong feedback across the rounds. I hope this helps others preparing for Google interviews. Good luck!

Comments (19)