Google Software Engineering Interview Questions

Updated Apr 19, 2015
1,281 Interview Reviews

Interview Experience

Interview Experience

52%
30%
16%

Getting an Interview

Getting an Interview

47%
25%
14%

Interview Difficulty

3.5
Average

Interview Difficulty

Hard

Average

Easy

1,281 Candidate Interview Reviews Back to all Interviews

Sort: Popular Date Difficulty

Helpful (429)  

Software Engineer Interview

Anonymous Interview Candidate in Mountain View, CA
Accepted Offer
Positive Experience
Difficult Interview
Accepted Offer
Positive Experience
Difficult Interview

Application

I applied through an employee referral. The process took 4 weeksinterviewed at Google (Mountain View, CA) in April 2014.

Interview

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

Interview Questions

Negotiation

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!

Other Interview Reviews for Google

  1. Helpful (21)  

    Software Engineer Interview

    Anonymous Interview Candidate
    Accepted Offer
    Positive Experience
    Difficult Interview
    Accepted Offer
    Positive Experience
    Difficult Interview

    Application

    I applied online – interviewed at Google.

    Interview

    I first had a phone screen interview. After this, I was asked to come onsite for further interviews. I had 4 whiteboard and 1 lunch interview with the Youtube team. After this, I was told that my application is going through the Hiring Committee.

    Hiring committee asked my HR to find a team for me before giving any decision. I then had two phone interviews with different teams in Android. I informed my HR that I am interested in the first team. Next day, HR emailed me and said that this team no longer has an open position. I again went through the same process. This time, platform team was interested in talking to me. I gave 2 phone interviews wherein they made me write code. After their feedback, I was put through the Hiring committee again and this time I got a thumbs up from them. 1 week after that I was put through executive committee and got my offer.

    I had 7 other offers and my HR asked me about all of them before putting me through executive review. They gave me more than any other company I had offer from.

  2. Helpful (12)  

    Software Engineer Interview

    Anonymous Employee
    No Offer
    Positive Experience
    Average Interview
    No Offer
    Positive Experience
    Average Interview

    Application

    I applied online – interviewed at Google.

    Interview

    I participated in two phone interviews. I did not clear the second phone interview so I can't speak for the rest of the interview process. Each phone interview is accompanied with a google doc where you type in your code. In the first phone interview, I was asked to give an introduction of myself, then the interviewer asked me two technical questions. In the second phone interview, I was asked two technical questions. In three of the four questions I was asked to walk them through some test cases after writing the code.

    Interview Questions

    • Implement a class that can calculate the running average of a stream of input numbers up to a maximum of N numbers.   5 Answers
    • Implement string rotateString(string input, int amt)   6 Answers
    • Implement int strncmp(const char* s1, const char* s2, int n)   1 Answer
    • Implement a function that takes the set-wise subtraction of two sorted sets of integers. ie A = {1, 2, 3}, B = {3, 4, 5} => A - B = {1, 2}. There can be duplicates, in which case all duplicates should be removed should there be an occurrence in B. IE: {1, 2, 3, 3, 3} - {2, 3} = {1}.   6 Answers
  3. Helpful (12)  

    Software Engineer Interview

    Anonymous Employee
    Declined Offer
    Positive Experience
    Average Interview
    Declined Offer
    Positive Experience
    Average Interview

    Application

    I applied online. The process took 2+ monthsinterviewed at Google.

    Interview

    2 Hangout interviews. First, DS question (sliding window) and second, couple of Java and OO questions. Interviewers were very helpful and caring. They also asked about the projects I did in the past. Overall, very positive experience!

    Interview Questions

  4. Is this helpful? The community relies on everyone sharing – Add Anonymous Interview Review


  5.  

    Software Engineer Interview

    Anonymous Employee
    No Offer
    Positive Experience
    Easy Interview
    No Offer
    Positive Experience
    Easy Interview

    Application

    I applied through college or university – interviewed at Google.

    Interview

    I got this interview pretty early, about early October. Two 45-minutes interview, the questions are basic, but I failed I made the question complicated. Of course there was also some project questions.

    Interview Questions

  6.  

    Software Engineer Interview

    Anonymous Employee
    No Offer
    Positive Experience
    Difficult Interview
    No Offer
    Positive Experience
    Difficult Interview

    Application

    I applied through an employee referral – interviewed at Google.

    Interview

    Three rounds of technical interviews, no behavior questions. The attitude of the recruiter is really friendly. First round hardest, then gradually each round gets better. Back to back. First round asks a probability and derivative related math question, and a regular expression match. Second round is pthread, and array operations. Third round is the easiest IMO, just quite normal OJ type hash question.

    Interview Questions

  7.  

    Software Engineer Interview

    Anonymous Employee in Los Angeles, CA
    No Offer
    Neutral Experience
    Average Interview
    No Offer
    Neutral Experience
    Average Interview

    Application

    I applied online. The process took 3 weeksinterviewed at Google (Los Angeles, CA) in April 2015.

    Interview

    Got first phone interview after submitting my resume 3 weeks earlier, the person who interviewed me asked two technical questions, first one was focus on probability calculation, and the other was combination of digits.

    Interview Questions

    • Calculate the combination of three digits number consisting of 0-9, and no duplicate is allowed.   1 Answer
  8.  

    Software Engineer Interview

    Anonymous Employee
    No Offer
    Neutral Experience
    Average Interview
    No Offer
    Neutral Experience
    Average Interview

    Application

    I applied online – interviewed at Google in April 2015.

    Interview

    Applied online, contacted by a recruiter who set up three back-to-back phone interviews. I basically answered every single question. Needed a slight push a couple of times, but a slight push was always sufficient. Then a couple of days later I received a devastating rejected letter. Is it possible that it's just too late in the recruiting process so they don't have many interview positions left, or did I simply not do as well in the interviews as I thought?

    Interview Questions

    • Signed a non-disclosure agreement, but the topics were algorithms and data structures. You can be extremely well prepared by looking at the questions posted on Glassdoor.   Answer Question
  9.  

    Software Engineer Interview

    Anonymous Employee in Mountain View, CA
    No Offer
    Negative Experience
    Average Interview
    No Offer
    Negative Experience
    Average Interview

    Application

    I applied through a recruiter. The process took 3 daysinterviewed at Google (Mountain View, CA) in April 2015.

    Interview

    I was contacted by a recruiter who told me the hiring manager liked my resume. She then setup a technical phone interview. For that interview, I was contacted an hour ahead of the scheduled time. I asked my interviewer if he could give me 5 minutes to get ready, but he said it was alright and would call me an hour later.

    He called and mentioned his name and that he was from Google. Then he copy-pasted a problem into Google Docs and asked for a solution. So yes, no introductions about himself or about me. I guess they don't care until you go onsite as a "potential" candidate. I asked a couple of questions to make sure I understood the problem. Afterwards, I wrote a recursive DFS solution. The interviewer said my solution was fine and that he had no more problems for me. I asked him some questions about the job role, but all I got was vague/cryptic answers. Very weird?

    Overall, the experience is negative/neutral. My recruiter was AWESOME! (Keep in mind that Google recruiters are different from those who schedule your interview.) Very nice and well spoken. She also articulated to the best of her abilities the role I was applying for without getting into a lot of the details because of confidentiality. Unfortunately, my phone interviewer was a dud. I guess interviewing with Google matters much about the coding skills you have as well as the luck of the draw on who interviews you.

    Good Luck!

    Interview Questions

    • Similar to this: Given an NxN grid of 0s, 1s, and 2s, find out whether 1s or 2s is surrounded starting at (i,j). Being surrounded means that 1s is surrounded by 2s or that 2s is surrounded by 1s.   1 Answer
  10.  

    Software Engineer Interview

    Anonymous Employee in Los Angeles, CA
    No Offer
    Negative Experience
    Average Interview
    No Offer
    Negative Experience
    Average Interview

    Application

    I applied through a recruiter. The process took 2 weeksinterviewed at Google (Los Angeles, CA) in April 2015.

    Interview

    Got a recruiter's email one day, and ask some behavior question and ask for arranging a pre-screen interview. And two week later, we had a phone interview with google document for technical questions. The coding question would be to generate all the combination of 3 digit numbers with no duplicate. 0 can be at the first digit. But I think I might be too nerves to response the question well.

    Interview Questions

    • First, a mathematic question, asking about a card game with how many possible way for the combination based on the rules it given.
      Second, let you to print out all the combination of 3 digit numbers with no duplicate, ex. 012, 013, ....123, 124, 125...
       
      1 Answer

Work at Google? Share Your Experiences

Google

 
Click to Rate
or

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.