I was contacted by a Google recruiter to schedule a phone interview. The interview was to be held on the phone and through Google Docs, where both the interviewer and I could type text on the same page.
When speaking with the recruiter, she asked me what languages I was strongest in. I responded that my most recent languages were C and MATLAB. She said the interview would be in one of these two languages, but that the potential on-site interview could be in anything on my resume.
My most recent background is in embedded systems development. To my complete surprise, once the phone interview started, the interviewer asked questions in C++. I did answer the initial basic C++ question correctly, but I was not prepared to answer the C++ questions. I asked the interviewer if she was familiar with my background and if she could switch to C instead. She agreed.
During the interview, she first asked about the software implementation of the cache driver. We had a detailed discussion about it. Then she asked if I was familiar with binary trees. I said that I had heard of them but never used them, and explained that I had used linked lists in the past and implemented basic search functions on them. We later discussed the differences between arrays and linked lists, and I answered all her questions correctly.
In total, I answered all the questions she asked correctly and frankly did not find them very insightful or difficult.
A week later, I received a call from the recruiter stating that I would not have any further interviews. Citing company policy, she declined to provide specifics. She did say that they were looking for people with broad backgrounds.
Here is what I think happened:
In short, the interviewer's background was completely different from mine. I would not have an issue with that; after all, Google is a software company. However, that is not how the process was explained to me. I was prepared for a completely different type of interview based on the recruiter's comments. Not only did the recruiter set me up for a different type of interview, but the interviewer herself was not familiar with my background.
There seemed to be limited communication between the recruiter and the interviewer, and little understanding of my qualifications on their behalf.
I feel misled because the recruiter told me the interview would be conducted in C, whereas it was clear the interviewer had her sights set on C++. I would have prepared for a C++ interview if it weren't for the recruiter's comments. For sure, I would not have asked to switch to C if I had any inclination that C++ was so important to them. The interviewer should have insisted on conducting the interview in C++ if it were so important. She should have insisted on my answering the binary tree questions if they were so important.
Lessons learned:
Design a 4-way software cache driver.
The following metrics were computed from 16 interview experiences for the Google Software Engineering role in Mountain View, California.
Google's interview process for their Software Engineering roles in Mountain View, California is very selective, failing most engineers who go through it.
Candidates reported having very good feelings for Google's Software Engineering interview process in Mountain View, California.