Google
4.2 of 5 2,282 reviews
www.google.com Mountain View, CA 5000+ Employees

Google Software Engineer Interview Questions & Reviews

Updated Jul 10, 2014
All Interviews Received Offers

Getting the Interview 

36%
21%
16%

Interview Experience 

47%
34%
18%

Interview Difficulty 

Average Difficulty
852 candidate interviews Back to all interview questions
Relevance Date Difficulty
in
41 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!

Was this interview helpful?  
Yes | No
Flag Interview  |  Add Employer Response

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.

Was this interview helpful?  
Yes | No
Flag Interview  |  Add Employer Response

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 Answer

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

Was this interview helpful?  
Yes | No
Flag Interview  |  Add Employer Response

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

No Offer

Neutral Experience

Software Engineer Interview

Software Engineer

Interviewed at Google

Interview Details – 2 Phone interview, 45 min for each. Using google doc to type codes. Most questions are coding problems. Not hard, but need to be careful not to make silly mistakes. After that it tooks very long to tell me the final result

Interview Question – in order traversal of a binary tree,
next element in inorder traversal
  Answer Question

Was this interview helpful?  
Yes | No
Flag Interview  |  Add Employer Response

No Offer

Neutral Experience

Software Engineer Interview

Software Engineer

Interviewed at Google

Interview Details – I got an email from the recruiter within 45 minutes of submitting an application, but the whole process of the interview took nearly a month. The first interview was a phone interview, which wasn't too tricky. The interviewer was very kind and help with any questions I had. After passing the phone interview I moved to an onsite interview. I had a series of 4 interviews. None of the questions I got asked where too challenging, but all of the interviewers pressed me for more or to expand on what I had after I had worked out a problem. All but one of the interviews were kind and helped me with any questions, but the last one was tight lipped throughout the interview, and just expected me to figure it all out and write it on the board.

Interview Question – The one that tripped me up asked me to write code to return all words in a dictionary that can be formed from a string of numbers (e.g. 34556), where the numbers map the same why they do on a phone (e.g. 1->A, B, or C).   Answer Question

Was this interview helpful?  
Yes | No
Flag Interview  |  Add Employer Response

Declined Offer

Positive Experience

Average Interview

Software Engineer Interview

Software Engineer
Cambridge, MA

I applied through a recruiter and interviewed at Google.

Interview Details – I initiated the process by responding to an email message from a sourcer and was handed off to a recruiting coordinator. I spoke several times with the recruiting coordinator, who was my primary contact point throughout the proces. After an intial phone screen, I was invited onsite to speak with 5 engineers (with a break for lunch mid-day).

Folowing the interviews, I received a tentative "not officially an offer" congradulatory call at which point we discussed teams that would be a good match for my skill set. Once one was selected, I received a formal offer, which I had 5 business days to accept.

Was this interview helpful?  
Yes | No
Flag Interview  |  Add Employer Response

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

Was this interview helpful?  
Yes | No
Flag Interview  |  Add Employer Response

Declined Offer

Neutral Experience

Very Difficult Interview

Software Engineer Interview

Software Engineer

I applied online and interviewed at Google.

Interview Details – Applied online.
Screened with two phone interviews each an hour long. Extremely technical.
Then I had to wait until second round for a hiring manager to be interested in my profile.
Had another interview with hiring manager. It was technical but less formal than the screen. More like telling him about some stuff that I had done in previous jobs.

Was this interview helpful?  
Yes | No
Flag Interview  |  Add Employer Response

1 person found this helpful

Accepted Offer

Positive Experience

Difficult Interview

Software Engineer Interview

Software Engineer
New York, NY

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

Interview Details – My resume was referred by a current employee. I got a call from a recruiter a couple weeks later and had a 10 minute conversation with her about the whole process, bit on my background, and what I'm looking for. She sent me an email with all of the content that is considered fair game for an interview. I asked for a month to study before the phone interview.

The phone interview was 45 minutes, with maybe 35 of it being technical questions and coding in a Google Doc. The recruiter called me later that day saying they wanted to bring me in for on-site interviews. I asked for them to be scheduled as soon as possible (already been studying, didn't want to forget anything). The on-site interviews were scheduled for almost 3 weeks later.

My round of interviews on-site wasn't as smooth as the recruiter claims they usually are. I was taken to a small conference that was to be my "home" for the day and the recruiter wrote the schedule of who and when on the white board. The first guy that showed up was not the one listed. Second guy was 15 minutes late. Last guy of the day turned out to be working at home and they had to substitute on the fly (15 minute delay again). Not really a big deal, but I think worth noting.

The interviews themselves were 45 minutes each, again about 35 - 40 minutes of which were technical questions and coding on the white board. All questions fell within the review content suggested by the email. One interview was more of a design/approach interview and np-complete did come up once. In general the questions were designed to be challenging, but solvable in the time-frame.

To study, I read Wikipedia pages and took notes for the topics mentioned in the email. I used a couple other materials for design and integration patterns. This worked as sufficient review for me.

My final comment is regarding how I think they determine level. I was out of undergrad for four years when I interviewed. My experience in the field is longer than that. The recruiter said for their purposes my level was "four years", which I think worked in my favor because they expected less.

Interview Question – The design/approach interview was the hardest simply because it's far more open ended.   View Answer

Negotiation Details – I chose not to negotiate as the offer was more than acceptable for me.

Was this interview helpful?  
Yes | No
Flag Interview  |  Add Employer Response

No Offer

Neutral Experience

Average Interview

Software Engineer Interview

Software Engineer

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

Interview Details – refered by a friend, then quickly got a phone interview one week after. First I described my current work and project and experience on my resume. Then was asked difference btw interface inheritance and implementation inheritance. coding problem is simple: binary search.

Interview Question – follow up with this: someone modified your binary search code and the result is bad(modified version may not be binary search any more). create a test case to find out whether the code is binary search without source code on hand.   Answer Question

Was this interview helpful?  
Yes | No
Flag Interview  |  Add Employer Response
RSS Feed Embed
Interviews for Top Jobs at Google

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.

Glassdoor is your free inside look at Google Software Engineer interview questions and advice. All 852 interview reviews posted anonymously by Google employees and interview candidates.