Google New Grad Interview Experience
I’m a new graduate from a non top-tier CS school who had the opportunity to interview for Google recently. A lot of what you might read may suggest you need to be enrolled or graduate from a top-tier CS school in order to interview/get a job at Google. While it may help you get and start an interview here, I don’t believe it has as much influence on hiring decisions as you might think. After all, once you have an interview, it’s probably much more important if you can discuss Big-O notation and time complexities for your algorithms you code on a whiteboard than if you attend a top-tier school. The reason I stress this is because I personally have several friends who didn’t even bother applying because “the school I go to isn’t top-tier so they’ll probably reject me right away”.
How did I manage an interview?
I was lucky enough for Google to come by our campus last year. I talked with the recruiters there and made initial contact to apply for an internship. I managed to receive an e-mail within a few days to set up interviews for an internship. I’ll talk about those in a little bit. The following year, I did not even apply or reach out to Google. They contacted me asking to set up another interview for a full-time position. I hadn’t even begun my job hunt and Google wanted to interview me. This was really exciting news considering I had not even applied yet! At the end of the day, if you love CS as much as I do and can accurately portray that through a resume, cover letter, or campus career event, you can land an interview (do projects, do internships, do coding challenges, go to hackathons)!
What was the interview process like for an internship?
I interviewed over a year ago for an internship so my memory may not be 100% accurate but I remember the process quite well. The process for an internship is actually pretty short and standard. It began with a simple phone call to express interest and talk about the opportunity and what to expect. It was then followed by two technical phone interviews and that was it. The phone interviews were definitely the hardest thing I’d done up until that point. The questions were…difficult. You are expected to know advanced CS topics and have the ability to write them up on a Google Doc as a sophomore/junior. I can’t give any details about my specific questions but check out Leetcode and practice, practice, practice.
What was the interview process like for a full-time position?
Interviewing for a full-time position is way different than an internship (and much, much longer!). I’ll talk about my interview experience (it may be different for others). It began with an initial contact by a Google recruiter. This recruiter gave me the details of what to expect throughout the whole interview process as well as gauge my interests and get to know me a little bit. The first step was an online coding test. This test was an hour in length and consisted of 2 questions. I took the test and passed. The test wasn’t too challenging for me, but the time constraint was. The questions were pretty straight forward and the solutions I came up with in that hour time span definitely weren’t completely optimal, but showed them I knew how to code and it was worth their time to continue. If you can’t pass this first weeding out stage, or if you struggle a lot, you are probably hopeless as the process gets much, much harder down the line. From all of my colleagues that took the test, I’ve had many people get turned down at this point. If you pass this test, they then decide to set up a phone call technical interview. Expect a 45 minute coding question that gets more difficult as you pass over “hurdles” of the problem. These iterative problems are really, really good for the candidate and the interviewer. The interviewer is your friend here. They want to help you and get you to succeed. They will ask you lots of questions about time complexity, space complexity, better solutions, other solutions, etc. Be prepared! Study hard! What is the runtime of this algorithm? What is the space complexity? If you can’t answer these questions quickly and accurately, come back in a few years when you can. This seems to be very important to Google and if you don’t understand these basic CS concepts you will not make it. If you manage to pass this stage, congrats! Google is actually willing to expend more money and resources in pursuing you! In my case, it was an onsite interview. At this point I got a new POC (point of contact) and my other recruiter said farewell and good luck. My new POC contacted me and set up all travel arrangements for my trip out to Mountain View. Boy was this a fun trip! Before I talk about the actual interview I’ll talk a brief second about the trip. They set you up in a nice hotel for two nights and you have a full day (super day!) of interviews ahead. Expect four more technical interviews and an off-the-books “you interview Google” lunch. My four technical interviews were hard! Harder than I’ve seen yet! This was like a full out exam. My first interview was the “easy one”. It was almost warmup for the other three interviews. During the first interview, I ended up doing 3 coding problems and solved them all relatively quickly with optimal solutions. I felt really good after this interview thinking to myself, wow this isn’t that bad! I was wrong. Really wrong. My second interview was definitely my hardest. This was the type of question I prayed to avoid. I didn’t avoid it. As soon as he asked the question I knew I was going to struggle. You will almost certainly get a question like this. Here is how you handle it. Clarify! Begin by asking a million questions about what you actually need to do and make sure you understand exactly what needs to be done. Specify an approach you are thinking of taking. For me, I had a general idea of what I needed to do, but was clueless on how to do it. We talked about this design stage for a good 10 minutes. I asked many questions (the interviewer is there to help, don’t be afraid to ask!) and then I had a great understanding of what I had to do. Make sure, and I mean 100% sure, you know what you are going to do before you start coding. Never start coding until you understand the problem, have a solution, and only have to translate that into code. By the time you actually start writing code you should know what you are doing. Do not, I repeat do NOT, attempt to code yourself to glory. You have no IDE, you have no automatic testing, you have no reference guide. If you make a drastic mistake, you may be screwed. Take the extra time before you start coding to be sure you know what to do! I cannot stress this enough. Anyways, after this interview my day continued. I went to lunch with someone who had been with Google only a year, also fresh out of college. The lunch interviews is off-the-books so they encourage you to ask about things you would like to know and not worry about it getting reported. Ask about bad things, ask about time management, ask about working hours, ask about nightlife, ask about anything really. We ended up having a good conversation about many of the Google perks and benefits as well as all a few things he didn’t like (commute time from San Francisco, for example). This helped me a lot. After lunch it was back to the whiteboard for two more interviews. I’m the type of person who actually enjoys these interviews so I felt great for the rest of the day. My last two interviews were more iterative problems that I was able to complete well (I think?). After your last interview, you’re done! Congrats! You have completed one of the hardest days of your job searching career. I’ve primarily interviewed at bigger tech firms in the world and so far I’ve felt Google’s questions were the hardest for me.
What happens now?
Now you’re done! Sit down, relax, and enjoy the ride because it’s not over yet. Now your recruiter will take a look at your packet and decide if it should be sent to the hiring committee. Since Google deals with so many applicants the recruiters have an idea if you are a clear no-go and you can be rejected right away at this step. Once you are approved by the recruiter, they take a big packet of all your information including resumes, transcripts, interviewer feedback, any internal feedback and send the packet to the committee. This is arguably the hardest step to make it past. It’s unclear what the pass rate is here but it’s definitely very low. I’ve heard rates as low as less than 10% to rates as high as 30% that get a hire recommendation. Why is the hire rate so low? They’d rather turn down a qualified candidate than deal with the chance of a false-positive. Imagine if you had 3,000,000 applicants each year. There’s a good chance you will have many, many qualified candidates that are borderline hire. It’s easier for them to side with caution than to potentially hire someone who is not strong enough. If you get a hire recommendation (which can take up to a month, or more in some extreme cases) congratulations! You have just flipped the odds on the house. At this point, several Google employees think you are smart enough to work there. You are almost guaranteed an offer if they can fit you and have a position available for you. As a reminder the hiring committee makes a recommendation to hire, not an actual decision. The recruiter will ask you for some additional details about other current offers and confirm some other things before sending an offer to the final review committee who makes the decision of whether or not to extend an offer. The final review committee is made up of either Senior VP’s or other Google execs who like to see and verify everyone they hire (sometimes you may need an approval from Larry Page himself!). There are some cases where you can still be denied at this state, although it’s rare.
If you get an offer, congratulations! You are among the 0.2% of people who apply to Google that get this far (http://qz.com/285001/heres-why-you-only-have-a-0-2-chance-of-getting-hired-at-google/). Should you accept? This is a tough question. Cost of living is high but all the perks and benefits of working for Google and having them on your resume for the future is definitely not a bad thing.
The interview process at Google is tough! You cannot prepare enough for the technical interviews but honestly I recommend just doing your best. If you get an interview and perform to the best of your ability you can’t ask for much more. Give it your all and if you don’t get an offer, try again in the future. Thanks for your time and I hope you enjoyed learning about my interview experience with one of Silicon Valley’s largest tech companies.