Google Software Engineer Interview Questions

Updated Apr 29, 2015
1,284 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,284 Candidate Interview Reviews Back to all Interviews

Sort: Popular Date Difficulty

Helpful (438)  

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 (26)  

    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 (14)  

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

    Software Engineer Interview

    Anonymous Employee
    No Offer
    Negative Experience
    Difficult Interview
    No Offer
    Negative Experience
    Difficult Interview

    Application

    I applied through a staffing agency – interviewed at Google.

    Interview

    A 3rd party staffer contacted me after a Google coding challenge. After getting to know what I was interested him, he found an open position for me and forwarded me to a Google staffer.

    The Google staffer set me up with a phone technical interview with another one of the employees.

    Interview Questions

    • Return the max k numbers from an unsorted integer array.

      Each number in the array is in the range [0, 10000).
       
      3 Answers
  4. Is this helpful? The community relies on everyone sharing – Add Anonymous Interview Review


  5. Helpful (1)  

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

  7.  

    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

  8. Helpful (1)  

    Software Engineer Interview

    Anonymous Employee in San Bernardino, CA
    No Offer
    Negative Experience
    Average Interview
    No Offer
    Negative Experience
    Average Interview

    Application

    I applied online. The process took 2+ monthsinterviewed at Google (San Bernardino, CA) in April 2015.

    Interview

    I interviewed for a Software Engineering role at Youtube. First round very easy and it was possible to get through the question in 2 lines of code with a recursive approach. My interviewer then asked me to write the iterative version which I did. 2 weeks later my recruiter called me to tell me I made the final round.

    The final round consisted of 5 technical interviews. For me there were 4 coding and 1 system design. The coding questions covered purely data structures, algorithms. The system design question was also very technical too. I managed to get to an efficient clean solution on every single interview, tested my code and got good feedback from each one of my interviewers as well during the interview. Also I had great discussions with all my interviewers at the end of each interview, they were all very nice and helpful.

    However, the recruiter told me that they were not moving forward with me. I was very surprised.

    The recruiter mentioned I had received high scores on communication skills, analytical skills, and coding skills. The feedback was that I had some bugs in my code. I checked through every line I wrote at every interview and I don't believe this was actually true. I have never done so well at an interview just to get rejected and honestly I am sure I am not the only one google treats like this. I found the process to be very disrespectful to candidates as if we are robots. I personally lost all interest of working for the company.

  9. Helpful (1)  

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

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.