Status: Final year student, Tier 2 college (NIT/IIIT)
Position: Software Engineer (University Graduate)
Location: Bangalore/Hyderabad
Prior experience: A combined experience of 1 year through a couple of summer internships
Date: March, 2021
Process:
A recruiter reached out to me through mail and asked if I was interested in the Software Engineer (University Graduate) role.
Phone Screen(September 2020):
A straightforward LC medium question based on Trees and DFS.
https://leetcode.com/problems/delete-nodes-and-return-forest/
I was well versed with Trees. Quickly came up with the optimal solution, explained the time and space complexities, and coded the proposed solution. Interviewer was satisfied with my solution and we finished this round in less than 30 minutes.
Onsites(March 2021):
There was a 6 month gap between my Phone Screen and Onsites. My recruiter explained that Onsites will be split into (3+2) interviews. They'll review the feedback after the first 3 DSA interviews and will schedule another 2 interviews (1 DSA, 1 Googlyness) only if the feedback is positive in the initial 3 DSA interviews.
Round 1:
LC Hard DP question. https://leetcode.com/problems/stone-game-iii/
I quickly came with up the recursive solution but struggled to convert the recursive solution into a DP based solution. This was my worst round.
Round 2:
LC Medium Sliding Window question. https://leetcode.com/problems/maximum-points-you-can-obtain-from-cards/
Quickly explained the optimal solution, Time and space complexities and coded the solution.
Interviewer was satisfied and came up with a follow up question that involved DP. I used memoization to solve the follow up question. Provided optimal solution and coded it. This was my best round.
Round 3:
A question based on the intersection of intervals. Given the Employee Names, Start times and End times, output the names of employees who are working during each non-intersecting interval.
Example:
Input:
Name, Start Time, End Time
X, 1, 10
Y,2,4
Z,5,15
Output:
[Names], Start Time, End Time
[X], 1, 2
[X,Y],2,4
[X],4,5
[X,Z],5,10
[Z],10,15
I quickly came up with an O(N^2) based solution, where N is the number of employees. But the interviewer wanted me to do better. I got into tunnel vision and just wasn't able to come up with a more efficient solution. I was livid with myself since I had solved numerous interval intersection problems on Leetcode.
Result:
Recruiter contacted me after 3-4 days and informed me that they won't be scheduling the next 2 rounds since I got mixed feedback in the first set of 3 DSA interviews. Recruiter didn't provide feedback specific to each round.
My thoughts:
Don't have any weak areas while interviewing with Google. I covered pretty much all topics in-depth, except for DP. DP was my slightly weaker area as compared to the other topics. As it turned out, 2 out of my 3 Onsite interviews had a DP question. All hail Murphy's Law :)
Leetcode's Google frequent questions list does help. A total of 3 questions I faced in the Google interviews are in the top 20 of LC's Google questions (sorted by frequency)
Solved 465 LC problems - 166 Easy, 258 Medium, 41 Hard