Google (Reject)| L4 | Bay Area | September 2020 - December 2020
Anonymous User
14042

I received a reject from Google about a week ago for an interview process that started in August/September of 2020 and I wanted to write about it so it can be helpful to others. Also, I'm hoping that writing it down will help me see clearly what I could have done better.

Experience : 7+ yrs
Current Role : Senior Full-Stack Engineer
Company : Top 10 in Fortune 500
Location: US

A recruiter reached out to me on LinkedIn sometime in July or August asking if I was interested in a role at Google. I told her very frankly that I had had a bad experience interviewing with Google right out of grad school 5+ years ago and I was not interested. My current team was seriously understaffed at this point because we weren't backfilling roles due to Covid and plenty of people had left at the beginning of 2020 because the company had proposed offshoring our team in late 2019 (which also stalled because Covid hit in early 2020), so I was essentially doing the job of 2 people and was seriously feeling burnt out and I was passively looking for a way out. So when the Google recruiter pushed me to give the Google interview another chance, I took it. We decided on a phone screen sometime in September.

Phone Screen:
I went into the phone screen not really invested in the outcome. Google, to me, was something so out of reach with respect to my capabilities that I was just using the phone interview to get some practice for other interviews.
The question was based on Stack data structure and I could come up with a brute force solution pretty quickly and coded it up. We then spent some time trying to optimise the solution but for every option I suggested, the interviewer seemed to hint that there was a better option. Finally 3 minutes after the scheduled interview end time, I could finally see what the interviewer was vaguely hinting at and hit upon the optimised solution and quickly explained it.

When the interview got over, I was very sure that I wouldn't have made it because I couldn't find the optimised solution within the interview period but I was happy. This one served to erase my older memory of that bad interview with Google the first time and I genuinely had a good time during the interview, trying to solve the problem.

Thr recruiter set up time for a call later the next week and told me I had made it through to the onsite interviews. I made sure to let her know that I had a really good interview experience with whoever did my phone screen and I really appreciated it. I asked for a month to prepare and we scheduled onsite for October.

Onsite
4 tech rounds + 1 behavioral. 45 min interviews with 15 min break between each and a 1 hour break for lunch.

Round 1 DS

Interviewer was again very nice, had a really great experience this round. It was a string + HashMap type question, not on leetcode. Came up with brute force solution quickly, coded it up, did dry runs with inputs. Interviwers then changed inputs that were edge cases so modified code to cover those too. Used up all 45 mins of the interview, could come up with optimized solution and could code it up. I had a 15 min break before the next interview, we spent it casually chatting about working at Google, favorite projects and day-to-day work life at Google. This round went well, I'd probably put it in the 'Hire' column

Round 2 DS

It was a math question, that's the best way to put it, not on leetcode. And, IMO, this round went poorly. After 5 mins of confirming the constraints of the question, I offered up some possible methods of solving it. The interviewer brought up conditions, edge cases that my solution wouldn't solve for. So I tried to modify my solution to come up with something that would also cover the edge cases. Keep in mind that up until this point, the interviewer and I are still just talking about the problem. Then the interviewer basically tells me that I was almost there but not quite and what I had missed was - and he basically tells me the solution. We're only 15 mins into the interview, I have not coded up anything because any solution I had proposed orally till then was batted down by the interviewer and then after 15 minutes of trying to come up with the optimal solution, the interviewer basically just told me. I spent 5 mins coding it up and then that was it. He said it looked good, we were done and asked me if I had questions any questions for him. I had a couple of generic ones, and it was over in 30 mins total.

Round 3 DS

The interviewer picked a question and as he started telling me, it sounded 90% like the question from my first round of onsite. I quickly told him that I had had this question asked of me before which completely threw him off. So then he spent a few minutes picking another question. This was a string question, not on leetcode. I came up with a brute force solution, coded it up and then did a dry run with some inputs. During one of the dry runs, got stuck on what looked like a possible OutOfBounds index error, spent 5 mins on trying to make sure there was no such error. It was only 5 minutes left in the interview when he asked me about some specific edge cases, went 5 minutes over interview time to come up with a solution that was optimized and covered all cases but unfortunately no time to code it. Again spent my break before the next interview talking about his job, made me really really want to join his team after listening to him.

Note: I suspect the fact that he spent 5 minutes in the bginning looking for another question and then I spent 5 minutes in the middle looking for the OutOfBounds error cost me dearly because it slightly threw him off and it threw me off and maybe, just maybe I could have been able to code up the optimal solution otherwise. The experience was great, interviewer was great but I'd put this interview in the No Hire column.

Round 4 DS

First round after lunch and I was ready to be done and just chill. Interviewer asked a basic graph problem, could immediately come up with optimized solution within 10 mins. Did dry runs with different inputs. He then built on top of it and it turned into a toposort problem. I could explain and come up with pseudo code, interviewer said it was good and I coded it up. Did couple of dry runs here too, unfortunately there was not enough time to go over any edge cases or check if it was 100% optimized. He asked me for Time and Space complexity by highlighting different sections of my code and asked for justification of my answer. I think this round went well, I'd probably put it in the 'Hire' column

Round 5 Behavioral

The best round by far. I really really loved the interviewer. More than anyone else, this person made me want to work at Google. I had been talking to engineers in all my interviews and while some of them plainly told me job security and the paycheck was the best part of Google, more than 80% of those were just really passionate engineers who loved the work they did. But this interviewer, when I asked him about the job, told me why he had taken a job at Google, what the difference between his previous and current job was, and why he was excited about his job at Google. And let me tell you, what he said is exactly what I'd felt about my engineering career in previous roles and organizations. At the end of 45 mins, he asked if I wanted to log off or if I wanted, I could ask him more questions for another 15 mins till his next meeting. Since it wasthe last interview of my day, I spent those 15 minutes asking him about his job. It is incredible to find someone who is as passionate about engineering and writing code as you are. A lot of people look at engineering and writing code as the way to a great paycheck and that's cool but to find a kindred spirit that was as much of a nerd (I mean this as a compliment) as you are about technology, well, that's something. Who wouldn't want to work in a place full of such nerds?

Recruiter Response

My recuiter then disappeared for 3 weeks. With Covid and my job slowly draining me, I put Google out of my mind and made peace with the fact that I probably hadn't made it, which I had always known. And then one day, while I was in a work meeting, I received a call out of the blue from the recruiter. She said that there hadn't been enough 'Code Signal' to go for a hire so she wanted to schedule 3 more tech rounds and asked me if I was interested. I don't know what that meant but I had come this far and how many people really get a second chance like this? I had nothing to lose with 3 extra interviews since saying no automatically meant a reject. So we scheduled the 3 rounds for mid December.

Round 6 DS

The worst interview I've had. The interviewer seemed completely disinterested. Gave me a question and when I offered up potential solutions, there was no response. I can't even remember what the question was about, I seem to have completely blocked it from my mind. Even trying to confirm the constraints of the question got no response from him. Anything I proposed as a solution got no response until I explicitly asked him if I was on the right track and if my solution made sense. He just shrugged and told me to write the code and we'll see later. So I did. Then he gave me no sign as to whether it was right or wrong or anything and it went completely silent after I wrote the code so I automatically did dry runs and came up with random inputs because I could not stand the silence. Once I was done, I asked him if there was anything else I could do to improve the solution or did he see something I'd missed, and he basically gave me another question with 5 mins to go. As soon as that happened I knew this round was a wash, no way could I come up with a solution and code it up in 5 mins.

Again, I tried to confirm the constraints of the question and he basically just repeated the question. I suspect this is close to how Chernobyl engineers felt while trying to fix things after the reactor melted - knowing that a good outcome was impossible but kept going anyway with a feeling of dread because what else is there but to try? I came up with 5 different approaches and no response to any of them. At this point I just wanted to run out the clock, I felt like shit because it felt like I was coding in front of someone who simply didn't care enough to be there. Finished the interview on time and he asked if I had any questions, I had none, I just wanted to leave.

Round 7 DS

Didn't have any high hopes after last round's fiasco. The interviewer asked the question (an array Q, not on leetcode) and honestly I just wanted to get through the 45 mins, because between actual life and current work and prepping for these interviews, I was ready for this to be over. The interviewer though completely took me by surprise. After giving me the question, he gave me a sample input and told me that we'd (yeah he said we instead of you) try to come up with a solution orally that worked then code it up. Again, I offered multiple solutions and for each he brought up an input for which my solution failed. I think by the 8th sample input, I finally saw the pattern to the question and we went through one more input just to make sure that I had gotten it right. This took all of 10 mins. He then asked me to write the pseudo code before actual code and then asked me to code it up. After coding, he asked for space or time optimizations, changed code according to that and we were done. After the previous round's fiasco I was ready to burst into tears of gratitude for an interviewer who didn't treat the interview like it was come hurdle or competition to best but as a genuine working of the minds. I told him honestly how much I appreciated it, that he worked with me to nudge me along and that it helped elevate my process rather than sinking me in despair. And he basically told me that he thought the interview process was unfair to the candidates if we expect them to guess at the solution correctly for any random question when actual jobs don't work that way.

Round 8 DS

It was a string question I think, not on leetcode. I had a really good time trying to come up with solutions and the interviewer was very nice and polite and responsive and engaging. He asked me to code up the bruce force solution and like the others, after a couple of dry runs, offered up inputs that my solution didn't account for. Modified the code to account for that and then he kept changing the constraints. With 5 minutes left till end of interview, he gave me a special case that built on top of the first question and said I only needed to verbally explain the solution, no need to code it up. Did that but I suspect if I had performed better I would have also had the time to code the second part, I think that was the expectation. Either way, it didn't matter. It was a pleasant, enjoyable experience and whatever the result of this round was, I was just so grateful to the interviewer for being engaging.

Final Result

If you've come this far, why? I already gave the result away in the title. Anyway I got a call from the recruiter the next week to tell me I didn't make it. I saw it coming but it still hurt to have gotten so close and not made it. She suggested that I try again next year but I'm not sure. As much as the behavioral round interviewer made me want to join Google, Round 6 interviewer really made me change my mind. For now, I'm just trying shrug this off and suit up for other big companies.

If there's any advice that I can give it's this : Specially for Google, come up with a basic brute force solution, do dry runs and work with the interviewer (or by yourself) to come up with edge cases to cover for that. It shows them that you think things through, that you didn't just memorize solutions but you know the basics and you know what to look out for when it comes to writing good code. Prepare not just technically but also mentally so that you are not shaken or put off by a bad interview experience. Rounds 6-8 I was just a mess because I had a huge mental block from the 6th round and that just fucked everything else up for me. As to whether this is actually good advice or not, I will leave this up as an exercise for the reader.

Comments (47)