A Recount of My Technical Interview with Google
Jul 20, 2019
So, I finally clicked send. My application for a Software Engineering opening at Google was on its way. I was very surprised to hear back from a recruiter that very same day, just within a few hours. I was thinking that it would be weeks before I get a response (if ever). He replied saying that the team had reviewed my application and wanted to schedule a phone call with one of the engineers for a technical interview. He also requested some additional information regarding the application. I had the option to schedule the call within two to four weeks, and along with his reply, I got a list of topics that could be covered during the interview. The first technical interview, which was over the phone, was focused on data structures, algorithms, coding skills, and general computer science knowledge. I sent back my proposed schedule, and I took the full four weeks that were allowed.
The Preparation Begins
For the next month, I continued my interview preparation, studying and practicing every day. I divided the four weeks in half, the first two I used just for review and study, and the last two for actual coding practice. It was intense, but I got a whole lot better at solving algorithmic problems. I studied and practiced probably more than for finals in grad school.
Another goal of the interview was to “see” how candidates think and how they approach and solve problems. Intentionally, the questions will be open-ended and sometimes with missing information. You are expected to ask questions and clarify information, rather than just assuming things. A problem may be nearly impossible to solve unless you get that little extra piece of information. But, remember that problems in real life are often like this. You don’t have complete information, so you have to do some research and gather some data if you want to find a solution. That is if you want to find a solution that is not just a “band-aid fix.”
For the interviewer to see how you think, it is highly recommended that you think out loud, explaining your thought process and how you come up with a solution. So, part of my preparation included solving problems while explaining my thoughts out loud. Nothing weird, just a guy talking to himself out loud in a room.
The Day Has Arrived
Finally, the day of the phone interview came. We were talking over the phone, and we also had a Google shared document opened in our computers, where I was going to type in my code when solving the technical questions. Both my interviewer and I were able to see whatever was typed in the document. Needles to say, I was a little nervous, however, I felt confident because I had a pretty solid preparation. After the initial introductions and the more general questions, we got to the technical part. I was asked not to discuss the specifics of the problem that I was given to solve, so I won’t. I will say that it was a reasonable problem, in terms of difficulty. And, I was able to come up with one optimal solution. I.e. an algorithm that makes efficient use of CPU (computation) and memory resources. Unfortunately, we ran out of time and didn’t get to a second problem. I was supposed to get at least two, and they are very strict with the timing, which was one hour for the whole interview, from which only 45 minutes were allotted to the technical part. In the end, we chatted a little more and I got to ask a few questions. We thanked each other for our time and hung up.
A few days later I received an email from my recruiter, he wanted to set up a call the next day to discuss the results of my interview. I wasn’t sure what to think, but I thought it was a good sign that he wanted to have a phone call. He called me the next day and delivered the news. The next step in the process was a set of on-site interviews at the Google offices. However, the news was that they had decided not to move forward at this time. He gave me some general recommendations and later sent me another email with additional resources. During our call, he explained that I can re-apply for the position and that I should keep preparing. He also mentioned that, on average, candidates get an offer until their second or third time applying. In general, he was quite nice and helpful during the whole process, he even checked in with me a week before the technical interview.
Yes, I was pretty bummed for a few days after getting the news. Especially since I worked so hard during my preparation. But, even though I didn’t get the offer this time, I’m still grateful for having had the opportunity and the experience to interview with Google. This was one of the most challenging interviews I’ve ever had. And, of course, I will be applying again in the future. Google receives millions of applications per year, and the fact that I was selected for an interview, is a clear sign for me that I’m on the right track. I guess I’m one step closer to the door. For now, I will just put a pin on that and move forward. There are plenty of opportunities out there!