Google

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

Google Software Engineering Interview Questions & Reviews

Updated Jul 30, 2014
All Interviews Received Offers

Getting an Interview  

36%
21%
16%

Interview Experience  

47%
34%
17%

Interview Difficulty  

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


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


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


6 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 Answers (2)
  • 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.


2 people found this helpful

Accepted Offer

Neutral Experience

Average Interview

Software Engineer Interview

Software Engineer

Interviewed at Google

Interview Details – Couple of emails exchanged with the HR, followed by the phone interview with a software engineer. Did not make it through the first round, should have prepared better. The wiggle problem, given an array of integers arrange them such that alternate elements are large and small.(2,5,3,6,...)

Interview Question – The wiggle problem, given an array of integers arrange them such that alternate elements are large and small.(2,5,3,6,...)   Answer Question


1 person found this helpful

No Offer

Negative Experience

Difficult Interview

Software Engineer Interview

Software Engineer

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

Interview Details – 1. HR Recruiter: standard chat
2. Technical Recruiter: scheduled the interview
3. On site Interview
- 5 rounds of technical interviews
- system design questions
- recursive questions
- some java language questions
Three out of five engineers doing the interviews were not very friendly. One was very abrupt. One behaved like a police officer who pulled me over. One was late and kept interrupt me while I was writing code

Interview Question – The java language questions   Answer Question


1 person found this helpful

No Offer

Positive Experience

Average Interview

Software Engineer Interview

Software Engineer

I applied online and the process took 4+ weeks - interviewed at Google in July 2014.

Interview Details – Contact by recruiters a couple days after submitting my application online. The interviewers are very nice and gave me hints when I were stuck. We had a very friendly conversation.

Interview Question – Questions about data structure, algorithm. Also object oriented design   Answer Question


1 person found this helpful

No Offer

Neutral Experience

Average Interview

Software Engineer Interview

Software Engineer
Mountain View, CA

I interviewed at Google in May 2014.

Interview Details – Recruiter contacted me via email or linkedin, can't remember exactly. Asking if I would be interested in Google. I have a long resume and somewhat specialized set of skills in embedded systems so I said ok I will give it a go, but that I am not quite sure how my skills would be useful at Google. They waived the phone screen and moved me directly to an onsite interview. They send you a list of things to go over to prepare for the interview that looks like something out of college computer science course. I was really busy at my current job so I had little time to go over it, but it was fun revisiting the basic algorithms and data structures.

Onsite was 3x45 miutes 1on1 interviews, lunch and 2 more 45 mins sessions. All back to back, no breaks other than lunch.

1st session: Interviewer introduced himself gave me time to introduce myself for the 1st 10 mins. Then asked 2 questions. 1st was arrays didnt require to writ code, 2nd was dynamic programming asked to wrote code. I did well on both so we had 10 more mins to spare where I asked him questions.

2nd session: Introduction took a really long time, interviewer talked at great length about himself and his work. Asked me if I am interviewing for real or just there to get some interview experience, because apparently thats what he did initially himself. When we got to the question there was only about 15 mins left. Tree related question, that in my opinion wasn't really presented very well. Code was required. I started solving it but he was basically walking me through every step. Not sure if he just wanted to pass me or realized that he already spent too much time talking. Got the correct solution, but I felt like I was being lead to it.

3rd session: Embedded systems engineer, asked me a lot about my actual resume. In the end asked me a pretty basic question embedded system specific, asked to write code. Was really easy for me, did really well. Probably the most enjoyable session.

Lunch: The weirdest part of the day. Interviewer only got notified the night before, didnt look like wanted to be there. Didn't even know where the closest cafeteria was. Ended up walking for about 15 mins around the campus. Dropped the tray when getting food and spilled lunch over clothes, got really upset. Then suggested we sit outside because its quieter there. But the day was hot and it was really uncomfortable, I was glad to get back inside.

4th session: Usual introductions. General distributed systems question. Went pretty well in my opinion, but then I am not a distributed systems specialist, so cant really judge.

5th session: The worst one ofthe day. Usual introductions. 2 Questions. 1st question supposed to be a warmup, really simple bit manipulation, but for some reason my brain just went into a feeze, not sure if it was the stress or the sun from the lunch. Anyway I worked manually through some samples and did come up with an algorithm and a correct solution. In fact the interviewer corrected something in my solution, but when I started running it through a test case it turned out my initial code was in fact correct, so we reverted it. Because 1st question took so much time, we only had about 10 mins for the 2nd one which was supposed to be the main question. So we didn't really finish it.

Recruiter called me a week later saying that they decided not to go forward with my candidacy at this time. I am not really too bothered since I am pretty happy at my current job and this was more of a learning experience, but I admit that if they did make me a good offer, I would've seriously considered it.

While driving home I did come up with a really good solution to that unfinished question from the 5th session. And then also found every single question that I got asked in my interview on programming websites. So looks like if I wasn't so busy and just spent more time preparing, the interview would've gone much smoother. I thought just experience would be enough to pull me through.

Other than the lunch person and the 2nd session interviewer, everybody else was very pleasant and enjoyable to talk to.

Interview Question – All were unexpected. I didnt prepare for any, but was able to work through most of them. None really difficult under normal circumstances.   Answer Question


Declined Offer

Neutral Experience

Software Engineer Interview

Software Engineer

Interviewed at Google

Interview Details – Interview was easy. Technical questions are no harder than the average company, but they really talk up their interview process to the candidates before the interview. Sent an email with "tips" that was longer than 1000 words


No Offer

Neutral Experience

Difficult Interview

Software Engineer Interview

Software Engineer

I applied through an employee referral and the process took 4+ weeks - interviewed at Google in July 2014.

Interview Details – Generally are two coding questions and mostly didn't ask the resume. One is about array and another is tree question. The questions are kind of hard and good coding preparition are needed.

Interview Question – The difficulty of questions is expected but is harder than average coding questions I have seen.   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.