I failed my Google interview and here’s what I did wrong.
All right, I hope this will be useful to anybody reading and preparing for a step in the Google SWE New Grad interview. Learn from my mistakes. But tbh I’m actually writing most of this for my own benefit so that when I re-interview in a year I will remember where I went wrong and hopefully focus on those areas to improve.
I’ve divided this into multiple parts based on what stage of the interview I was at.
Part 0 (Before the process):
Everything began in September. I was about to graduate this year so I had to focus on getting a full time job. Google came to my school and hosted a couple of information sessions, and one of them happened to be a super helpful resumé workshop. At that session, a few really helpful tips were given including:
- Write all your bullet points in SAAR/STAR format
- Have a section with your extracurricular involvement/hobbies
These two tips were the areas from my resumé which I modified the most. I would really recommend having that extracurricular section in your resumé, even if just for Google. I was told how the recruiters were looking for “googliness” in their employees, which I interpreted as what sets you apart from the rest of the crowd. Since my previous internship experience was mediocre and my transcript being extremely shoddy from my first two and a half years in life science, the extracurricular involvement was the only thing I could do.
I sent in the application on a Tuesday night after one of the information sessions and got a reply early Wednesday morning telling me that they’d like to move on with me to the Online Assessment. This was the first time Google didn’t reject me right at the resumé stage.
Part 1 (The Online Assessment):
You have 2 weeks to complete this part even though they tell you you have 7 days at the very beginning. But if you needed an extension and couldn’t do it in 7 days, they’d automatically give you 7 more days to do it. I did it on the 10th day. It was fucking hard. You’re given 60 minutes, and only one of my two questions passed the test cases. The first question took me 55 mins so I basically only had time to read the second question and write some comments about what I was planning to do.
After time was up, I gave up on my Google dreams and started applying elsewhere.
But three days later I got an email saying they’d like to move forward with me for the phone interview. ?_?
I thought that was a fluke but according to some of my friends also applying at the time also moved on at this stage having only completed one question on the online assessment. So don’t fret too much if you’ve only completed one of them.
Part 2 (The Phone Interview):
I’ve heard this part has a lot of different variation depending on your interviewer. This was my first phone interview of the year so I was super nervous. Tbh I think I got lucky with my question. It was a multi-part question I think designed such that if you solve the first part with a lot of time left, you move onto the subsequent parts. I had three parts in my question, but the third part was too much to code up in 5 minutes so I basically just explained my thought process to my interviewer.
I would put the parts in my phone question as:
- part 1: Leetcode easy
- part 2: Leetcode medium
- part 3: Leetcode medium (but Leetcode hard if I actually had to write out working code)
Imo Leetcode would be the best practice for this portion of the interview. Also read CTCI for some commonly used tactics that you can use to tackle problems.
I walked out of that interview very unsure of how it turned out, but a week later, I got a call from my recruiter telling me I had passed YAY. Following this, I had to fill out a form giving my availability for the onsite interview, and I ended up scheduling it a month away so it wouldn’t conflict with my midterms and midterm studying.
Part 3 (The Onsite):
The day consists of 4 technical interviews. You can use the bathroom anytime between the interviews. There are 2 back to back in the morning followed by a lunch “interviewer” who you pretty much just chat with to kind of see the culture. Following that, you have your last 2 back to back technical interviews.
Since I signed an NDA I can’t tell put out there what the questions were but I can put out there what I learned from my interviews. I will say here that I got rejected after the onsite but the following is what I believe my mistakes to be and where I can better improve.
Some of the biggest things that I tripped on were asking questions and approaching questions in different ways. For example, clarifying questions I always asked as I was writing code, not before writing anything. I think I was also terrible in trying to describe my thought process. So think clearly about your solution then describe it with maybe even some diagrams to draw.
To help combat my terrible ability at approaching problems in different ways, which I think might be something common a lot of us have trouble with when it comes to interviewing, I have devised a list to check off based on different common algorithms and data structures typically employed in solving these interview questions.
Algorithmic Questions to ask myself:
- Would sorting help with this problem?
- divide and conquer?
- greedy? (Although I did hear that you usually won’t get greedy algos in interviews tho)
- dynamic programming?
- Can I do this in place?
- bit manipulation?
Data Structure questions to ask myself:
- linked list?
- If linked list is too much work to implement, can I use a stack or queue?
- tree? What kind of tree? BST? AVL? Trie?
- Can this have a graph representation?
- properties of directed/undirected graphs
- properties of cyclic/acyclic graphs
- properties of weighted graphs
- hash table for that sick linear runtime? (think about possibility of collision if you’re thinking about this approach)
- make sure you recognize inherent properties of the data structure you are using while solving your problem
FYI Google provides you with internet at the hotel, like they did for me but I was too dumb to realize it. When I tried logging into the wifi it asked me for 15 bucks for 24 hours and I was like hell naw do I look like I’m made of gold. So I couldn’t practice any Leetcode the night before or the day of before my interview, but I found out from another interviewee staying at my hotel that you just accept the charge and Google will just pay for it.
Takeaway Lessons (Will add more in edits if I remember more):
- To help in approaching the question in different ways, form a bucketlist of approaches for tackling problems both algorithmically and with data structures. One thing to remember is ALWAYS go through all the possible data structures that can be used.
- If you can’t think of the optimal solution immediately and you think it’ll take too long to figure it out, start off with a shitty solution first. A shitty solution is better than no solution. Work up to a better solution using the algorithm/data structure questions you can ask yourself as listed above.
- The interview will often give you hints to help you get to the optimal solution. Often times it will help you, so listen to them carefully, but sometimes the optimal solution can be pretty convoluted. If it helps you, sure, but if if the hint confuses you even more (interviewers are humans too), take a step back and rethink the problem with or without the hint.
- If you get an easy question, the interviewer might actually be more interested in the edge cases that you manage to catch instead of the actual implementation
- Drink the shit out of coffee before your first interview. I was almost asleep for my first one and had trouble figuring out the most basic while loop terminating condition. I chugged one after the first interview and did SO much better in my second interview.
- Also do some more Leetcode problems
PS: shoutouts to my recruiter, she was awesome. I’m like 100% sure I got lucky because I’ve heard horror stories about other recruiters my friends had, but I never had any of that. She always called me the second she had information and never made me wait if she was able to make a call to me. I hope she gets a promotion or a raise sometime soon because she was the best recruiter I’ve ever had.
Also shoutouts to my lunch interviewer he was hilarious.