Google

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

Google Software Engineer Interview Questions & Reviews

Updated Jul 15, 2014
All Interviews Received Offers

Getting an Interview  

39%
14%
12%

Interview Experience  

73%
16%
10%

Interview Difficulty  

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


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


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


4 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 Answer

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


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


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.


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.


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.


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.


Accepted Offer

Positive Experience

Average Interview

Software Engineer Interview

Software Engineer
Mountain View, CA

I interviewed at Google in June 2013.

Interview Details – I had an intern at Google, so they took another two interviews at the end to decide for full time position. They also took 3 references from my mentors. The interviews were typical of a company sized as Google. They included algorithmic and system design questions. After two months waiting time I was hired.

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.