Google Software Engineer Interview Questions & Reviews

Updated Aug 26, 2014
Updated Aug 26, 2014
892 interviews

Interview Experience

Interview Experience

47%
34%
17%

Getting an Interview

Getting an Interview

34%
23%
15%

Interview Difficulty

3.5
Average

Interview Difficulty

Hard

Average

Easy

892 Candidate Interview Reviews Back to all interviews

Sort: Popular Date Difficulty

106 people found this helpful  

Software Engineer Interview

Anonymous Interview Candidate  in  Mountain View, CA
Anonymous Interview Candidate in Mountain View, CA
Application Details

I interviewed through an employee referral. 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!

Interview 1:
Graph related question and super recursion

Interview 2:
Design discussion involving a distributed system with writes/reads going on at different sites in parallel.

Interview 3:
Array and Tree related questions

Interview 4:
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.

Interview 5:
Dynamic programming,
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!
Accepted Offer
Positive Experience
Difficult Interview

Other Interview Reviews for Google

  1. 6 people found this helpful  

    Software Engineer Interview

    Anonymous Interview Candidate  in  New York, NY
    Anonymous Interview Candidate in New York, NY
    Application Details

    I interviewed online. The process took 4 weeks - interviewed at Google in August 2014.

    Interview Details

    My interview and hiring process was extremely tiring but satisfactory. I dropped out of college and cancelled my plans to study in an university because I wasn't learning anything there. I studied and mastered computer science alone at home within 2 months. Although I am just 19, I decided to apply for Google and I wouldn't care if I got rejected really. I applied online and quite suprisingly; they replied back the next day to set-up an phone interview. They asked a few question and then told me "Alright, we'll call you again next week." And when they did that the next week, they invited me for an on-site interview. I met some interesting people there, and most of them were amazed due to the fact that I dropped out of college but had the abilities and in-depth knowledge of a Harvard-graduate software engineer, also because I am just 19. Some guy named Paul came to me and asked me a brain-teasing question about algorithms and I gave him back a cheesy, but informative answer and he told me "You're probably going to get accepted."

    During the on-site interview, they asked me long questions and gave me difficult tests/tasks on:
    1. Recursions
    2. Dynamic Programming
    3. Graphs
    4. Data Structures
    5. Problem-solving query test
    6. Array and Tree
    7. Computer architecture (binary search, low level enhancement...etc)

    They gave me some stuff related to graphs and recursion to build over, it was mind-boggling like hell. But that doesn't mean I didn't enjoy it. I like challenges, and Google managed to give me those....a LOT of those.

    The interviewer's name was Caleb, and he said that I fulfill the criteria of a Google software engineer, and thus; they hired me immediately. Caleb was a fun person, I enjoyed being interviewed by him. He also said that I am the YOUNGEST software engineer in the history of Google, I felt really proud at that time. He gave me lots of compliments after the interview like "You're an exceptional person" - Google interviewers are extremely nice and respectful, you don't need to be nervous around them.

    Interview Questions
    • You dropped out of college, and you're just 19. Do you think you can handle Google at this age?   View Answer
    Negotiation Details
    Tiring but satisfactory. I negotiated a $190,000 per-year salary and an $5k starter bonus.
    Accepted Offer
    Positive Experience
    Difficult Interview
  2. 7 people found this helpful  

    Software Engineer Interview

    Anonymous Employee  in  Mountain View, CA
    Anonymous Employee in Mountain View, CA
    Application Details

    I interviewed online. 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 Questions
    No Offer
    Negative Experience
    Difficult Interview
  3. 11 people found this helpful  

    Software Engineer Interview

    Anonymous Employee  in  Mountain View, CA
    Anonymous Employee in Mountain View, CA
    Application Details

    I interviewed through a recruiter. 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

    In-Person Interview:
    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.

    Culture:
    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".

    Reasons for Declining

    I had a better offer from a competing company that was also a better culture fit for me. I took it.

    Declined Offer
    Positive Experience
    Easy Interview
  4. We want your feedback – Is this interview information helpful to you?  Yes | No
  5. 2 people found this helpful  

    Software Engineering Interview

    Anonymous Employee
    Anonymous Employee
    Application Details

    I interviewed online. 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.

    No Offer
    Neutral Experience
    Difficult Interview
  6.  

    Software Engineer Interview

    Anonymous Employee
    Anonymous Employee
    Application Details

    I interviewed online. The process took 1 week - interviewed at Google in August 2014.

    Interview Details

    Applied online and received an e-mail for a phone interview. I received some links and documents on how to prepare for the interview which are already in other reviews on glassdoor. The interviewer asked a programming question (to write a code for a simple game) which required the appropriate use of classes. The phone interview lasted around 45 minutes.

    Interview Questions
    • Going through the thought process aloud was quite difficult.   Answer Question
    No Offer
    Difficult Interview
  7.  

    Software Engineer Interview

    Anonymous Employee  in  Mountain View, CA
    Anonymous Employee in Mountain View, CA
    Application Details

    I interviewed through an employee referral - interviewed at Google in July 2014.

    Interview Details

    Google's actively seeking software engineers so it's not difficult to get an interview, but don't let that trick you into believing the interviewing process is easy. They're looking for engineers that have both good analytical and design skills.

    Once you're set up with a recruiter, he'll be your point of contact in terms of scheduling interviews. You'll first be given a phone interview and if you pass that, they'll bring you on-site for several 1:1 interviews.

    Interview Questions
    • Given a sorted matrix where the number below and right of you will always be bigger, write an algorithm to find if a particular number exist in the matrix. What is the running time of your algorithm.   View Answers (2)
    No Offer
    Neutral Experience
    Average Interview
  8.  

    Software Engineer Interview

    Anonymous Employee
    Anonymous Employee
    Application Details

    I interviewed through a recruiter. The process took 2 months - interviewed at Google in June 2014.

    Interview Details

    Was approached by a recruiter, we had an initial phone screen. From there, I had a technical phone interview with a SWE. The questions were pretty straight forward, nothing too difficult. After that, I had four on-site interviews. Two of them went very well, one went pretty well, and I did pretty poorly in the other. I signed an NDA, so I can't go into details, but my suggestion to anyone would be to prepare as much as you can.

    Interview Questions
    • Low level question, which I wasn't expecting (far from my area of expertise).   Answer Question
    No Offer
    Positive Experience
    Difficult Interview
  9.  

    Software Engineer Interview

    Anonymous Interview Candidate
    Anonymous Interview Candidate
    Application Details

    I interviewed online - interviewed at Google in November 2013.

    Interview Details

    They came to my school (UCI) and interviewed a good amount of people. Each candidate was given two 45 minute interviews. They ask difficult questions but not as difficult as a full time position. Then if you do well in that you go into host matching where they try to find an internship suitable for you after you give them your preferences. They described an internship and it sounded fun, but I later found out it was a very annoying project and was not satisfied with the initial description.

    Interview Questions
    • The conversion interview was at least twice as hard as the internship interviews.   View Answer
    Negotiation Details
    I was too excited to get the offer. I didn't desire to negotiate.
    Accepted Offer
    Positive Experience
    Difficult Interview
  10.  

    Software Engineer Interview

    Anonymous Interview Candidate
    Anonymous Interview Candidate
    Application Details

    I interviewed through college or university - interviewed at Google in August 2014.

    Interview Details

    Recruiter was very helpful, but the whole process can take a few weeks. Usually 4-5 technical interviews about algorithms and data structures. Each one gave a problem with a specific question but it develops several concepts. Be sure to think outloud and start from something simpler if you are stuck. Pretend the interviewer is your colleague. Spend some time beforehand practicing code on a site like hackerrank.com so that you are comfortable writing code on command.

    Interview Questions
    • One of the reviewers was a bit cocky. Stay calm in situations like that, ignore whatever is bothering you, and just address the question at hand.   Answer Question
    Accepted Offer
    Neutral Experience
    Difficult Interview

Worked for Google? Contribute to the Community!

The difficulty rating is the average interview difficulty rating across all interview candidates.

The interview experience is the percentage of all interview candidates that said their interview experience was positive, neutral, or negative.

Your response will be removed from the review – this cannot be undone.