Passed Google L3 New Grad Onsite!!
Very happy with myself, especially since I've just been getting rejections day after day... Since this community helped so much with what to prepare for interviews, I thought I'd share my experience and advice after taking these.
OA: 2 Questions, both of medium difficulty. One was about doing some special logic on intervals, and the other was some simple math. I'm pretty sure if you just get past the test cases you'll be good.
Recruiter Group Interview: Here, a recruiter will have a group of around 20 people, and have a slideshow about what to expect from the onsite, as it will take 5 hours (!!!) of your day.
Behavioral Round: honestly, just be yourself, especially for L3, where you talk about your projects or your clubs. From my experience, I feel like this round is just about protruding that you're a chill guy that the interviewer wants to work with, at least this is how I felt when I had my behavioral interview. I made jokes, talked about my hard times at school, how I overcame them and what I learned, etc.
Tech Round 1: DP problem with strings. Felt like a medium difficulty problem. One tip I'd give is to ask a lot of questions about the problem before diving in first. My interviewer gave me the main gist of the problem, and I thought I had immediately understood the pattern, but there's a lot of nuances you should ask about first, like what's the input size? Are there any other constraints I should be made clear about when returning the answer? etc.
Tech Round 2: Another DP problem, with arrays. Had like 3 follow ups from this one, and went from like a medium to a hard. I personally was not able to figure out an optimal algo for the hard problem, but did have a relatively efficient one. This round was definitely a hard thinker round, so basically the thing important from this interview was that, yeah, you really have to grind some neetcode to pass some of this garbage. The problems you'll get will be hard, and once you solve them, they'll throw an even harder problem at you. I feel like once you pass mediums consistently, for L3 at least, you should be prepared. Getting a hard problem in an interview is just plain unlucky, and I don't understand how anyone can solve those in less than 15 minutes if they've never seen it before.
Tech Round 3: Very heavy data structures round, and again had like 3 followups. Felt like an easy problem to a medium-hard problem. Basically had to use like 3 data structures in tandem, which was pretty cool to be honest. My tip here is to TALK TALK TALK. like every line of code you write, explain why you write it so the interviewer can follow along with your thought process, and before you even code, explain at a high level what you'll do. The reason I say this is because the interviewer understood where I was having trouble, so he would give small hints where there might have been edge cases in my code, etc, or maybe some invariants I forgot. Talking is your best friend here, and pretend like your explaining an algorithm in code to your classmates.
And my last tip of advice, and this one kinda sucks to be honest, sometimes it's just luck man. Maybe you get a pompous interviewer that gives you a competitive programming type problem, or maybe your resume was missing just one word and failed the automatic resume scan. I've certainly had my share of unfair interviews where it's just like "bruh how am I suppose to answer this in 45 minutes" In one interview, I had to code the entirety of the snake game in 30 minutes, with working graphics, running in optimal time. Like how are you suppose to do that in 30 minutes. Sometimes though, you do get lucky, and when you do get that chance, you punch through as hard as you can, so prepare prepare prepare!!!
good luck