Google Interview Questions & Reviews
Getting an Interview
- Popular Job Titles:
- Software Engineer (863)
- Product Manager (131)
- Intern (87)
- Software Engineer Intern (84)
- Software Developer (65)
- Senior Software Engineer (48)
- Software Development Engineer (44)
- Account Strategist (40)
- Associate Product Manager (39)
- Software Engineering Intern (38)
- Account Manager (37)
- Associate Account Strategist (36)
- Administrative Assistant (32)
- Software Engineer In Test (32)
- Site Reliability Engineer (31)
- Engineering (31)
- Adwords Associate (29)
- Program Manager (24)
- Engineer (22)
- Analyst (20)
- Software Engineering (20)
- Product Quality Analyst (19)
- Technical Program Manager (18)
- Technical Account Manager (18)
- AdWords Representative (17)
- Systems Engineer (17)
- Financial Analyst (17)
- Business Analyst (17)
- Senior Product Manager (16)
- Quantitative Analyst (13)
Software Engineer Interview (Positive Experience; Difficult Interview)
I applied through an employee referral and the process took 4 weeks - interviewed at Google in April 2014.
Interview Details – Direct onsite because I interviewed in the past and did well that time. From the time I sent my resume to interview day: 2 weeks. From interview day to offer over the phone: 2 weeks.
The syllabus for the interviews is very clear and simple:
1) Dynamic Programming
2) Super recursion (permutation, combination,...2^n, m^n, n!...etc. type of program. (NP hard, NP programs)
3) Probability related programs
4) Graphs: BFS/DFS are usually enough
5) All basic data structures from Arrays/Lists to circular queues, BSTs, Hash tables, B-Trees, and Red-Black trees, and all basic algorithms like sorting, binary search, median,...
6) Problem solving ability at a level similar to TopCoder Division 1, 250 points. If you can consistently solve these, then you are almost sure to get in with 2-weeks brush up.
7) Review all old interview questions in Glassdoor to get a feel. If you can solve 95% of them at home (including coding them up quickly and testing them out in a debugger + editor setup), you are in good shape.
8) Practice coding--write often and write a lot. If you can think of a solution, you should be able to code it easily...without much thought.
9) Very good to have for design interview: distributed systems knowledge and practical experience.
10) Good understanding of basic discrete math, computer architecture, basic math.
11) Coursera courses and assignments give a lot of what you need to know.
12) Note that all the above except the first 2 are useful in "real life" programming too!
Graph related question and super recursion
Design discussion involving a distributed system with writes/reads going on at different sites in parallel.
Array and Tree related questions
Designing a simple class to do something. Not hard, but not easy either. You need to know basic data structures very well to consider different designs and trade-offs.
Computer architecture and low level perf. enhancement question which requires knowledge of Trees, binary search, etc.
At the end, I wasn't tired and rather enjoyed the discussions. I think the key was long term preparation and time spent doing topcoder for several years (on and off as I enjoy solving the problems).
Conclusion: "It's not the best who win the race; it's the best prepared who win it."
Negotiation Details – You can and should negotiate politely. You are in a stronger position if you have another offer, but even otherwise, you should ask for more of every type of payment!
Associate Account Strategist Interview (Positive Experience; Difficult Interview)
I applied through an employee referral and the process took 5+ weeks - interviewed at Google in September 2013.
Interview Details – A little over 2 weeks after I submitted my application, I was contacted by a recruiter via e-mail. She asked if we could arrange a time to speak over the phone. We scheduled some time for later that week. During that initial phone screening we discussed my interest in the position, my current job, and established a deeper understanding of the role I was applying for.
After about 25 minutes, the recruiter said she'd like to arrange a time for me to speak with someone else who was actually in a similar position to the Associate Account Strategist role. A few days later, this call took place. There were a lot of situational questions.
- Tell me about a time when you overcame a challenge in the workplace
- How have you improved a certain process at work?
- Why Google?
- Tell me about a time when you spoke with a dissatisfied client and what did you do to appease them?
- Name 3 advantages of AdWords
- Have you ever improved the efficiency of a process/task at work?
Despite a lot of nerves, I got a call back and was asked to do an 'onsite' interview with 3 Googlers. I did this via a Google hangout since I was interviewing for a position in another country. Prior to the onsite interviews, the recruiter kindly walked me through how these interviews would be. She gave me lots of details including resources for how to prepare. They were right on point and helped to set a realistic expectation of what these interviews would entail.
The first interview was with the manager of the team. She asked questions about AdWords/Google products and my familiarity with role relevant skills like data analysis and client interaction. Example Questions:
-improvements you would make to your favourite Google product.
-Experence pulling and analysing data.
The second interview was with someone from another language team but in a similar role. She asked a lot of questions that started with, "Tell me about a time when..." or "Have you ever..." Example Questions:
- What accomplishment are you most proud of?
- A time when you took the initiative and led a project
Final interview was with someone else on the team I was applying for. He was friendly and asked situational questions as well as questions related to my personal interests. Example questions:
-What would you bring to the team?
-Why this particular position?
-How do you show creativity?
Overall, everyone I interviewed with was very professional and kind. I liked that everyone was polite, approachable but also to the point. I spent a lot of time preparing and used the following resources:
Glassdoor interview feedback
Google jobs website
Actual job posting description (read this many times so that I could have a firm understanding of the role)
Recruiter--Make sure to ask questions if you're unsure of anything. The lady I worked with was great about letting me know what to expect. It was incredibly helpful in planning on how to prepare.
Interview Question – If Google decided to charge g-mail users, how would you recommend implementing this? Would it be sustainable and what would be the advantages and disadvantages? View Answers (4)
Negotiation Details – Their offer was firm, no negotiations.
Software Engineer Interview (Negative Experience; Difficult Interview)
I applied online and the process took 8+ weeks - interviewed at Google in July 2014.
Interview Details – Day 0 — I apply to seven different Software Engineer positions in the Bay Area simultaneously via their website.
Day 0 — 38 minutes later, I receive an email from a Recruiter (call him R1), who's also an Engineering Manager (?). He asks when we can talk over the phone about "matching me up with the right opportunities at Google." I send a timestamp back.
Day 2 — Phone call with R1, about ten minutes. He asks to tell him about myself, what my background is, what I'm interested in, why I want to work for Google, etc. He ends by telling me we'll set up a phone interview, which I intentionally schedule for a couple weeks later. (R1 asks me to choose a programming language for the interview, and mentions that he'll be sending me a syllabus to prepare.) Recruiting Coordinator 1 (RC1) emails me the details of the phone interview, which we confirm.
Day 9 — Still no syllabus. I email R1. He sends me a verbatim excerpt from the Steve Yegge blog post you've already read.
Day 15 — Phone interview day. 25 minutes into the schedule time slot, no call. I email RC1. Auto-reply: that account no longer exists. Great. I wait a bit longer. I give R1 a call; no answer, leave a voicemail. He replies within the hour, says he's sorry, asks for availability to reschedule. I reply.
Day 23 — Phone interview finally rescheduled for day 28, by new Recruiting Coordinator (RC2).
Day 28 — Phone interview, take two. Interviewer (a Software Engineer) asks me a little about myself, then moves on to the questions (I won't go into details, due to the NDA). About twenty minutes of basic Q&A about my language of choice (nothing remotely advanced). Then he asks me to describe (just out loud) the 'find' method of a common data structure. Then he modifies the problem definition slightly, and asks me how I would change the 'find' method. This seems fairly straightforward to me. He asks me to implement it in Java in a shared Google Doc. I do. I step through it with some examples. That's about it. I hang up: I think I nailed it.
Day 36 — I email RC2 to check for any feedback. She defers to R1, who within minutes invites me on site to interview. I send my availabilities. I receive confirmation of my interview from RC2. I confirm, and send back two filled out forms (application + NDA; travel form).
Day 37 — I make my travel arrangements through their travel agency. They pay for my flight, lodging for the night before and night after, rental car for the duration, transportation to the airport, and food for the duration. (I easily add two more days at my own expense.)
Day 37 — R1 emails me to tell me he's leaving Google. R1 introduces R2 (not an engineer, this one).
Day 38 — R2 emails introductions and asks when we can talk by phone.
Day 42 — Introductory email from RC3, with two documents which are, again, verbatim excerpts of Steve Yegge's famous blog article.
Day 43 — Phone call with R2, describes the on-site interview; nothing I didn't already know, except (fairly useless) one-line bios of my four interviewers. Eventually I start wondering why I'm seeing and hearing "Google/YouTube" when it used to be "Google," so I ask. I find out I'm apparently applying for YouTube now and no one bothered to tell me. R2 also tells me she won't be able to make it to greet me on the day of my interviews, so R3 (also not an engineer) will be replacing her.
Day 54 — On-site interviews. I show up to the wrong lobby, having assumed there was only one. (Pro-tip: check your email from the Recruiting Coordinator for the exact building and address.) Luckily, I was early enough to make it to the right building on time. Interview, interview, lunch, interview, interview. No breaks at all between interviews. Interviewers either give you a blank expression with no feedback as you talk or else hold your hand all the way to the solution. No middle ground. Half the interviewers didn't seem to want to be there. Thought I did kind of okayish in three, badly in one. Very hard to tell over all, but I was pretty sure I wasn't getting an offer.
Day 57 — Within three minutes of each other, emails from both R2 and R3, asking to talk over the phone. I sort out the disorganization, get a call from R3, and am informed I will not be moving on. The only feedback I can get is that my "coding" is lacking, which doesn't make much sense to me.
Day 58 — On to other companies.
(Day 73 — Still no reimbursement of expenses...)
Interview Question – (Signed NDA) Answer Question
Software Engineer Interview (Positive Experience; Difficult Interview)
I applied through a recruiter and the process took 4 months - interviewed at Google in March 2014.
Interview Details – I was not looking to switch jobs, but I was contacted out of the blue by a recruiter on LinkedIn. I was happy with my job that I held with the same company since college graduation (10 years). However, I decided to give Google a shot. If anything it would probably teach me something about myself.
The recruiter set up a phone interview for roughly 1 month later. I apparently did well as the recruiter contacted me about 2 hours after the interview to say I passed. I was forwarded off to a recruiter in Mountain View that set up an on-site interview for about 1.5 months later. I'm sure the time frames here could have been quicker, but for each step I wanted time to study.
During the on-site interview, I met with 5 different engineers (4 where feedback was taken and 1 lunch interview). Each interview lasted between 45 minutes and 1 hour. I interviewed with members from 2 specific teams, the potential ones I would be joining if offered a position. Despite the fact the lunch interview was not supposed to count, I was told that the lunch interviewer was instrumental in getting me hired.
It took quite a long time after the on-site interview until I received an offer. It took 2 weeks to collect interview feedback and 1 week to get the go-ahead to put me through the hiring committee. It took 2 weeks to go through the hiring committee and an additional week to go through the executive committee. At that point I had an offer, but it took another day or two to negotiate the details. I initially wanted to decline the offer since I was leery of moving my family, but the recruiter gave me the weekend to think about it.
I verbally accepted after the weekend. It took another two days to choose a relocation package and 1 more day to receive a formal offer letter which I electronically signed.
I hope I made the right choice! I am worried that I took a step or two down in responsibility, but the compensation was a little bit better than what I was making even cost-of-living adjusted. If anything I'll have an interesting experience to talk about and Google on my resume.
Interview Question – However, I received 2 different dynamic programming problems which I didn't expect and I found to be quite difficult. 3 of the interviewers had me do whiteboard work but only 1 of them actually had me do any coding, which was a basic singly linked list type problem. Answer Question
Negotiation Details – I negotiated an additional $8K in base salary and an additional $5K signing bonus. Google would not budge on the RSU, though.
Software Engineering Interview (Neutral Experience; Difficult Interview)
I applied online and the process took 1 week - interviewed at Google.
Interview Details – First step was to submit an application through Google's online system, which included a resume and (optional) cover letter. I was contacted by a recruiter within 3 days (including the weekend) and set up an interview for 2 weeks from that date. It was two back to back technical phone interviews. The interviewers let you choose what language you wish to demonstrate your knowledge in. I chose Java for both.
My first interviewer was great. He introduced himself and throughout the interview, was very proactive on trying to guide me through a difficult part of the problem or hinted if he wanted more to the solution. I had to constantly verbalize my thought process, as it was a phone interview, so he mainly responded to that.
My second interviewer was not so great. He was 10 minutes late and seemed like he didn't want to help at all. Even after his "explanation" of the problem, including a confusion-inducing analogy, I was still a bit uncertain about the problem, so I just went with what I thought was right. It ended up being mostly correct until he literally started to yell at me over the phone for the last line, which was parsing an object to an int, then back to an object when there was another method that did what I was trying to do already (which he didn't explain, so I didn't know what it was, go figure). He seemed to not be paying attention at all, as there were multiple times where I asked a question, only to be answered with silence.
After that, I received a follow up email from the recruiter, stating I would know the results in a week or so. I ended up not getting the position (most likely due to that second interviewer), but am not deterred from applying again. I will admit my Java was definitely not up to par, considering that wasn't the dominant language I programmed in for the past half year and only really "studied" for two weeks before the interview.
Senior Product Manager Interview (Negative Experience; Average Interview)
I applied through a recruiter and the process took 3 weeks - interviewed at Google.
Interview Details – My interviews consisted of a phone screen and in person interview at the Googleplex
My phone screen consisted of a product design / brainstorming question which was a lot of fun. The interviewer was a new PM and very respectful.
I met with five PMs on campus. My reaction of the interview process is negative.
The good: Coordination was good. Recruiter was in touch throughout the process. The lunch interview was the highlight of my day.
The bad: The interview panel was not very diverse - in fact was largely white/male, former CS or Management Consulting background. Google's penchant for the tricksy interview questions is alive and well.
Most of my interviewers were arrogant (with two notable exceptions). However what gave me pause was the uniform response from all of the PMs on the panel that "PMs only focus on execution", "Engineers hold the power here at Google", "Engineers need PMs only when they need to launch products", "Engineers look down on PMs that only focus on the front-end". This was very unexpected from my (external) perception of Google.
Apart from the "pirates on a deserted island" set of questions, the rest of the questions were Product Design or Product Analytics focused. These were fun but I got the sense that they were going down a checklist without probing too deep. In fact, it almost seemed like they had made up their mind to reject anyone who doesn't fit a certain mold. I walked away very underwhelmed.
1. Engineers have come to you with a cool new feature. What ideas can you come up with that incorporate this feature?
2. Design an app around your interest. How will you take it to market? How will you evaluate success?
3. How will you launch Android Wear?
4. Brainstorm some unique ideas for a vending machine
5. Estimate the bandwidth needs for You Tube for one year
There were no technical or coding questions on my panel. Not sure if this means that Google has done away with the coding questions.
Interview Question – "On a scale of one to ten, how difficult was this question? " Answer Question
Reason for Declining – Google's process is geared at identifying very junior PMs.
PMs on my panel seemed arrogant. The tidbit about being engineering led and only focusing on execution was very unexpected. There was also a candid observation shared that successful PMs at Google optimize for the short term rather than the long term. One of the PMs very arrogantly contrasted his startup experience and mentioned that he had never ever worked at a company where everyone was of a really high caliber - which is usually true of large companies.
Finally, given the makeup of the interview panel, I am not sure I would be very comfortable in a PM culture that is not diverse nor values different perspectives. I also did not walk away with a sense that they were particularly engaged or happy at Google.
E-Billing Administror, Legal Operations Interview (Positive Experience; Difficult Interview)
I applied through a recruiter and the process took 4 weeks - interviewed at Google in August 2014.
Interview Details – I was first contacted by a Google recruiter, Emily, back in April about a different position that they ended up hiring internally for. She then contacted me about this position again in late June and I couldn't wait to discuss the role. Here's what sets Google apart from the rest in my opinion:
1) The recruiters (from my experience) take a genuine interest in you and your well-being. It was almost as if she was more of a mentor during the entire process, and I really appreciated her willingness to help.
2) They want you to do well, and will offer you information about what to study/prepare for the interview steps.
3) The interview process is VERY difficult. Although you are given some tips about what to prepare, you still have no idea what might be asked of you.
I cannot go into much detail, but this is the basic interview process that I went through:
1) Telephone contact with recruiter
2) Many emails and follow-up emails re same.
3) Telephone interview with member of the team
4) Google paid for travel to Mountain View, CA headquarters for in-person interviews with five individuals of the department.
Interview Question – NDA was signed. Answer Question
Software Engineer Interview (Positive Experience; Easy Interview)
I applied through a recruiter and the process took 6+ weeks - interviewed at Google in May 2014.
Interview Details – Timeline:
* Reached out to recruiter: day 0
* Call with recruiter: day 2
* In-person interview: day 15
* Calls with managers: days 28 - 32
* Three offer revisions: days 33 - 43
A pretty standard affair with 5 45-minute inreviews and a lunch after the first 2. Most of the people seemed genuinly interested in the interview (save 1 person who seemed annoyed at having to do such a menial task) and were a lot of fun to talk to. I can't go into too much detail on the questions themselves (covered by NDA), but it's standard fare and if you know your stuff, you won't have any trouble.
How to Prepare:
Just brush up on your algorithm design (iterative/recursive algs, big-o, etc). It might be helpful to just read up on some really clever algorithms from your academic days since the thought processes for those can have a lot in common with algorithms you might be asked to design.
The people who interviewed me seemed intelligent and very happy to be working at Google. One surprising factor for me was that every single person answered "what's you favorite part of working at Google?" the same way: "the people".
Reason for Declining – I had a better offer from a competing company that was also a better culture fit for me. I took it.
Software Engineer Interview (Positive Experience; Difficult Interview)
I applied through a recruiter and the process took 4+ weeks - interviewed at Google in April 2014.
Interview Details – Each of the questions were designed such that you will never get the perfect answer, especially on the first try. The problems were specifically made to stump you, and so you can continuously improve your design and show that you're curious to learn and improve.
Interview Question – They asked about servers and how networks functioned and I have no background with that topic. Answer Question
Staff Software Engineer Interview (Positive Experience; Average Interview)
I applied through other source - interviewed at Google in May 2014.
Interview Details – Sent my resume to a few Google employees. Heard back from the recruiter the next day. Phone screen was very straightforward (basics in computer security, some programming etc.) Had a day-long interview in Kirkland (five 1HR interviews). I cannot really go into the details of the questions due to non-disclosure agreement. However, focus on data structures and algorithms. Hash, heap, graphs, and depth-first-search seem to be the favorites.
Interview Question – None of the questions were what I had seen before. But none of them were very difficult either. Answer Question
Negotiation Details – Initially they offered me a Senior Software Engineer position. I declined the offer. The hiring manager called me, and I told him that the offered position and salary is below my expectations. They came back with Staff Software Engineer, and increased the comp by about 20%. I accepted it at that time.
Interviews for Top Jobs at Google