Hi Everyone,
I'm here to share my google interview experience for L4 role.
YOE : 3.5 years at Citicorp
Application :
Applied through referral around early Nov 2023 for both L4 and L3. My application was rejected for L4
Recruiter mailed around Mid of Dec 2023 expressing interest on my profile for L3, and called around Mid of Jan 2024 and it was basically a recruiter screening call. The discussion was about my day-to-day responsibilities in this role.
She then gave me a month to prepare for my preliminary screening and I had a mock interview with a googler as well.
Note
I cannot disclose the exact question as per google's confidentiality policy. But I'll be giving the underlying idea of each problem that was given to me.
Preliminary Screening :
This happened around Mid of Feb.
The interviewer was from India only.
The idea of the question was the same as this : https://leetcode.com/problems/queue-reconstruction-by-height/description/
I explained the O(n * n) brute force solution quickly.
I started discussing the right approach of using Fenwick Tree + Binary Search to solve in O(n * log(n)) time complexity.
Since, I couldn't finish explaining the approach under the given time, the interviewer asked me to code up the brute force solution.
He was okay with the solution that I coded up.
Optimized solution for your reference : https://leetcode.com/submissions/detail/1205152192/
Recruiter called me later in the evening and told me that they are proceeding to put me as a L4 candidate in the upcoming on-site rounds.
I was a Lean Hire as per L4 standards.
I was given two weeks to prepare for the on-site round 1.
On-site Round 1 :
The interviewer was from Singapore.
The question asked was similar to this : given K and an Array of integers, find the longest subarray where sum <= k.
I messed up pretty bad in this round. I couldn't relate the given question to this idea and started doing some memoization approach.
Interviewer gave me a hint, but I wasn't receptive of it.
He asked me to code the solution hat I had on my mind. I coded it up and gave the time and space complexity.
He told me that it could be done with simple two pointers and I went ahead and implemented this approach.
The interview ended with me asking some questions about the role to him.
The recruiter reached out to me later in the evening and told me that I overcomplicated the solution.
Verdict : No Hire
On-site Round 2 :
This round happened one week after on-site 1.
The interviewer was from India.
Question : https://leetcode.com/problems/logger-rate-limiter/description/
This is LC easy and I quickly discussed the approach and he asked me to code it up.
Assuming 'n' calls, Time and space : O(n)
We had some discussion about the if conditions that I was using, and I made the corrections.
Follow up : Assuming timestamps were unique, how would you optimize the space complexity of the above approach ?
I thought for sometime and used an additional data structure (queue).
I was able to prove that there will be atmost 10 elements in both the queue and map in the worst case. (This idea is similar to sliding window maximum imo)
Space complexity is O(10) = O(1).
I was able to finish this right on the 45 min mark.
I would say this follow up was a medium-hard or a hard problem considering the interview pressure.
It feels like a medium on any other day where I casually leetcode.
I called the recruiter later that day and she told me that I was yet a No Hire for this round as per L4 standards.
I'm yet to receive a detailed feedback for this round.
Tips :
Look for simple solutions. It isn't always the case where google asks advanced questions.
Be receptive of the hints that the interviewer gives you.
Work on fast thinking and implementation.
Need to be crisp and clear on the basics. (My On-site 1 was a bad example for this).
Stay hard and prepare well everyone. All the best !!
Other interview experiences :
https://leetcode.com/discuss/interview-question/4878508/Goldman-Sachs-or-SDE-2-or-Offer-or-Accepted