Google - Software Solutions Engineer

Status: Working as Staff/Principal Software Engineer in SFO.
Position: Software Solutions Engineer
Location: Sunnyvale, CA

Phone Interview: (45 mins)

Quick intro about 2-3 mins

Technical Questions:

  1. Basic questions about RESTful service such as all protocol methods/disadvantages/response code etc.
  2. When API is not responsive, what could be the reasons and how do you go about troubleshooting this?
  3. How do you load URL content when there is no browser on the system?
  4. Some basic questions about database normalization/denormalization/

Coding problem:

  1. Given API access log file where timestamp, API method(GET/POST) and ip address are captured, find out top 10 ips which contain more than x,000 entries.

Answerd technical questions with necessary details and solved the coding problem in about 15 mins.

Within a week Google recruiter called and informed that i made it in the phone interview and sent out the Google form for onsite interview details.

Tips for Phone Interview :

  1. Answer the questions clearly and share some deep insight information. They would like to know how much depth you know about the subject.
  2. Communicate well. They look for strong communicator as this role requires some business communication.
  3. Be strong in coding. Problem would be easy to medium. Make sure all edge cases are covered.

Onsite Interview: (3 Rounds - Each 45 mins)

Culture Fit/Googleyness Round:

  1. Questions on business communication - How do communicate with business stalkholders? how to convnince them? How to convince your manager/team?
  2. Questions on doing it right (Googleyness) - Did you ever go against status quo and why?
  3. Questions on API/Services - Metrics to evaluate Service availabiity

Troubleshooting/System Design Round:

  1. Troubleshoot some percentage of services failure
  2. Design Snapshot

Coding/System Design Round:

  1. Print the level sum of the N-ary Tree.
  2. Design Online ticketing system like Fandoogo

Tips for Onsite Interview :

  1. Know all Data Structure (Hash, LL, Tree, Trie, Graph etc). Even though recruiter might inform you that coding woud be basics for this role, you might be asked any DS questions in onsite interviews. Google always expects to you talk about your approach on coding first. So be very clear on your approach.
  2. Ask a lot of questions on System Design rounds. you may have only 15-20 mins for a System Design questions. Make sure you use your time wisely for asking questions and provide the solution pattern. you can ignore all unnecesary portions such as estimates etc. Questioning and crux of the solution is important.
  3. Be clear in your communication. Make sure interviewer can understand what you are communicating all the time.

Result:

Since i couldnt complete the coding on time (though i was on track and about to complete), they asked for follow up interview on one coding round that includes coding and system design. During my follow up interview, I was asked two coding (one is simple; one is medium) and one system design. Since i took more time for two questions (interviewer was 5 mins late though), i didnt have time for system design to perform well. Recruiter called after two weeks and said feedback was mixed and asked to try after 6 months.