Welcome to another giving it back to the community post!
College: Tier 1.5 (NITs and stuff)
YOE: 4, when latest interviews started.
Description of self: Did do competitive programming 4 years back in college. Able to code anything, like anything, very quickly if am able to figure out the approach. Very strong hold on basics.
Applied via referral on careers' website.
Phone Screen
Interviewer: Indian Male
An even advanced variation of https://leetcode.com/problems/guess-the-word/
Messed it up, blanked tf out.
Verdict - Rejected
Recruitrer reached out on LinkedIn. Said yes to giving it another shot.
Phone Screen
Interviewer: Female from Singapore. Very helpful, motivating and supportive.
I cannot recall the question exactly. This happened way back, nor can I find the question anywhere on the web, but it was something like this.
A graph is given with source and destination along with some conditions and cost to traverse. Need to figure out if we can reach two-and-fro from the two points, and if not, till where can we reach. It was bit more advanced than this.
From the graph conditions, we could figure out it is a tree. I used a running sum, and maintained a List while traversing the graph. If I was able to reach the node within the limits, return true. If not, I ran a binary search over my maintained prefix sum list to check till where I could reach.
It took me time to figure out my approach. I was still not sure if this is the best way to solve, but given time constraints, I decided to go ahead and code. Cant recall if I did a dry-run. Time was almost up, recruiter asked time and space complexity. I again think I messed a bit here but corrected myself, and gave justifications on my previous answer, which the recruiter kind of bought.
Recruiter gave a followup quickly and asked to discuss only the approach. It was doable again using the same binary-search logic over the persisted prefix sum. She seemed satisfied.
Self Verdict: Praying. Dont know. 50-50. But felt that I did the best I could.
Verdict: Forwarded to Onsites
Round 1 Onsite
Interviewer: Indian Male. Helpful and supportive.
Question: Same as the second question here https://leetcode.com/discuss/post/6806755/google-sde-l3l4-virtual-onsite-ii-iii-iv-j43g/ (Google 5/23 3rd interview (interval problem))
Asked clarifying questions after providing some edge cases. Solved the question. Discussed time space complexity. Recruiter asked to do a dry run on the edge cases I provided intially and some more cases he wrote. All worked. No follow ups.
Self Verdict: I did the best I could.
Verdict: Strong Hire
Round 2 Onsite
Interviewer: Indian Female. Straight talk.
Question: Same as https://leetcode.com/discuss/post/6038441/google-l4-phonescreen-by-anonymous_user-zqpk/
Asked questions. Wrote code. Didnt dry run. Interviewer asked to do a dry run. Logic failed because I initialized the DP array with size+1 which led the answer to be off by +1/-1 of the correct answer. Corrected the mistake. Recruiter asked follow ups. Solved and coded them all. Discussed time space complexity.
Self Verdict: Cursing myself for messing up array size initialization. Should have maintained my calm and dry-ran myself.
Verdict: Hire
Round 3 Onsite - Googlyness
Interviewer: Indian Male. Engineering Manager.
Usual Googlyness questions. Tried to answer in STAR format.
Self Verdict: Did the best I could.
Verdict: Hire
Round 4 Onsite
Interviewer: US Male. Very weird vibe. I was scared. He told me he is not interested in usual DS based stuff. He wants to discuss what multiple ways we can use to solve the problem.
Question: Same as Elimination round problem here https://leetcode.com/discuss/post/6848596/google-l3-sde-ii-interview-experience-5-9ffz2/ (MEX)
Asked clarifying questions. Gave multiple approaches and reasoning. Wrote code. Discussed time space complexity of each. Recruiter then asked to write test cases. Wrote multiple test cases. He then asked follow ups based on edge cases I wrote, what if counter overflows. Gave multiple approaches to tackle it. End.
Self Verdict: Dont know. Praying. I could think of more approaches later on, but I think I did the best I could during an interview.
Verdict: Lean Hire
Team Matching
Matched with my first team. Had 2 rounds with them, one with the tech lead and then with the hiring manager.
Hiring Committee
Suggested an additional round citing that I need to work on testing and debugging.
Additional Round
Interviewer: Indian Male.
Question: Same as Onsite 2 question here https://leetcode.com/discuss/post/6812909/chances-of-swe-3-at-google-by-anonymous_-2wwd/ (Solar Panel)
Asked clarifying questions. Solved the question. Did dry run myself after writing multiple test cases. Solved the follow up. Did dry run again after writing a test case. Time's up.
Self Verdict: Praying. Thinking if I could have done anything better.
Verdict: POSITIVE
FINAL DECISION: OFFERED L4 ROLE
-x-x-x-
Already widely available tips and suggestions if anyone is looking for them
Offer Details
Current Compensation: Around 60LPA
Had offers from other FAANG companies and some tier-1 startups.
First Offer: Lowballed massively. TC in the range 60-65LPA. Requested to revisit the offer.
Second and Final Offer: On-par with what Google has been offering very recently in the range 70-75 LPA.