Google

  www.google.com
Work in HR? Unlock Free Profile

Google Software Engineer Interview Questions & Reviews

Updated Jul 18, 2014
All Interviews Received Offers

Getting an Interview  

36%
21%
16%

Interview Experience  

47%
34%
18%

Interview Difficulty  

Average Difficulty
861 candidate interviews Back to all interview questions
Relevance Date Difficulty
in
56 people found this helpful

Accepted Offer

Positive Experience

Difficult Interview

Software Engineer Interview

Software Engineer
Mountain View, CA

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!

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!


21 people found this helpful

Accepted Offer

Positive Experience

Difficult Interview

Software Engineer Interview

Software Engineer
Mountain View, CA

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.


6 people found this helpful

Declined Offer

Positive Experience

Easy Interview

Software Engineer Interview

Software Engineer
Mountain View, CA

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

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

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


We want your feedback – Is this interview information helpful to you?  Yes | No
5 people found this helpful

Accepted Offer

Positive Experience

Average Interview

Software Engineer Interview

Software Engineer
San Francisco, CA

I applied through an employee referral and the process took 2 months - interviewed at Google in June 2014.

Interview Details – I had three rounds of interview with Google within one mouth. I got the information 1 mouth before the interview, so I found some open judge website to solve some algorithm problem which I might encounter during the interview

Interview Questions

  • We took the interview through Google Hangouts and coded in a Google docs. In the first round of interview, the interviewer asked me: given a set of points in the plane, output all the set of points which are collineation.   View Answer
  • Given a array of numbers, output the array like this: a1 <= a2 >= a3 <= a4 >= a5...   View Answers (2)

Negotiation Details – The most important thing is communicating. Keep talking about what you are thinking.


No Offer

Positive Experience

Difficult Interview

Software Engineer Interview

Software Engineer
Mountain View, CA

I applied through a recruiter and the process took a day - interviewed at Google in July 2014.

Interview Details – Standard: 1 phone screen + 5 on-site technical rounds. Overall the interviewers were pleasant and they look for coherent solutions with bug-free code. Prepare for computer science fundamentals especially algos and data structures. I was lucky that they did not ask any system design questions.

Interview Questions

  • Find the local minima in an array. A local minima is defined as a number whose left and right indices are greater than it in value.   Answer Question
  • An array contains integers with the property that a particular number, called the majority element, appears more than 50% of the time. Give an algo to find this majority number   Answer Question
  • Implement std::vector's push_back()

    Also asked for maximum contiguous subarray problem
      Answer Question
  • There are n points in a plane. Find the max number of points that lie on a line   Answer Question
  • In a given binary tree, find the number of elements that lie in a given range.   Answer Question


1 person found this helpful

Accepted Offer

Positive Experience

Difficult Interview

Software Engineer Interview

Software Engineer
Mountain View, CA

I applied through an employee referral and the process took 6 weeks - interviewed at Google in June 2014.

Interview Details – Contacted by the recruiter, interview was scheduled around 3 weeks later. I had 2 back-to-back interviews, each for ~50 mins. I will not disclose the questions because I respect the NDA, but generally the Google interviewers like to start with a question and make it more and more difficult as the interview proceeds.
The first interviewer was not as friendly. In fact he was a little intimidating. The question that he asked, I hadn't even heard of it despite the fact that I always over-prepare, and in the first 2 mins I really thought I am gonna screw this up since I had no clue where to start from, but I anyways started and was surprised by my own performance. They are not looking for people who have crammed the code line by line and just write it perfectly. They are looking for people who can think and implement on the fly.
The second interviewer was pretty cool and when he asked the question, it was a piece of cake, but I was amazed to see how difficult he made it as the interview proceeded. At a couple of points, he even told me that he just expected a verbal solution since there was not much time left to write the code, but I told him I will write the code instead, which I did. Needless to say, he was very impressed by my enthusiasm all throughout the interview.
I was contacted by the recruiter in less than 4 business days that I qualified for the 2nd round, and after 3 weeks I had a host-matching interview with a team. I took the offer.
The best tip I ever got - Always review your code before you say 'I am done'. Walk through code, see that you have covered all the edge cases and say you are done when you are done.

Interview Question – None were easy, but won't disclose any because of the NDA.   Answer Question


No Offer

Neutral Experience

Software Engineer Interview

Software Engineer

Interviewed at Google

Interview Details – Initially emailed by HR to set up an initial screening. Phone screening was just background questions and questions about my education. Technical interview came about a week later. It was a bit strange because the person who originally contacted me (HR) ended up either moving to another position or got left for some reason, so I got passed around a lot and had 3 HR people throughout the process.

Interview Question – Write a function with integer input which returns an integer having been flipped around in the binary sense. Example:
Given 3, it should be turned into 0000 0011, then flipped 1100 0000, then return 64+128 = 192. I commented that this was easily done via bitwise manipulations, but I have not done those in a while so I wrote a program out in C to do it manually.
  View Answer


No Offer

Negative Experience

Very Difficult Interview

Software Engineer Interview

Software Engineer

I applied through a recruiter and the process took 4 weeks - interviewed at Google in May 2014.

Interview Details – Was contacted by a recruiter before graduation. Had a phone interview which went well and was then brought on site. I regret that this was my first on-site interview, and I wasn't as prepared as I needed to be. The technical questions were very hard - harder than the other companies I've subsequently interviewed at - and I wasn't able to give satisfactory answers to several.

Interview Question – The technical questions   Answer Question


Accepted Offer

Positive Experience

Difficult Interview

Software Engineer Interview

Software Engineer
Mountain View, CA

I applied through an employee referral and the process took 3 weeks - interviewed at Google in October 2012.

Interview Details – I had my interview in late 2012. The first round was a 45 minutes phone interview. Then I was brought onsite to meet 5 interviewers. The questions consist of whiteboard coding, algorithms and design questions. The interviewers are all nice and professional. Some people care about bug-free coding. Got my offer about one week later.

Interview Question – some algorithm questions can be very hard, due to NDA I won't be able to share.   Answer Question

Negotiation Details – I had offers from other companies (fb). Google beat their offers.


No Offer

Neutral Experience

Very Difficult Interview

Software Engineer Interview

Software Engineer
Boulder, CO

I applied through a recruiter and the process took 8+ weeks - interviewed at Google in May 2014.

Interview Details – I was contacted by a recruiter, waited several weeks, passed a technical phone screen, waited several weeks, had an on-site interview with 5 technical sessions and an informal lunch in the cafeteria. After another week I was called with my results. Interviews ranged from a thought provoking discussion of "What features and issues would you watch for if you implemented [a given mobile app]?" to processing streams of ints and traversing tree structures efficiently.

Interview Question – Describe how you would design a fully automated continuous build/test/configure/deploy system for arbitrary applications and software packages. Feel free to dive into any piece of this problem that is of interest to you.   Answer Question

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.