I was contacted by a Google recruiter to first schedule a phone interview.
The phone interview was to be held on the phone and through Google docs where both the interviewer and I could type in text on the same page.
When talking to the recruiter, she asked me what languages I was the strongest in. I responded that my most recent languages were C and Matlab. She said that 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, but 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 and I asked the interviewer if she was familiar with my background and if she could switch to C instead. She did.
During the interview she asked about software implementation of the cache driver first. We had a detailed discussion about it. Then she asked if I was familiar with binary trees. I said that I have heard of them, but never used them, and explained that I have used linked lists in the past and implemented basic search functions on them. We later discussed differences between arrays and linked lists and I answered all her questions correctly. So, in total, of the questions she did ask, I answered all of them correctly and frankly did not find them very insightful or difficult.
A week later, I received the call from the recruiter 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 any issue with that, after all Google is a software company, but that is not how the process was explained to me. I was prepared for a completely different type of interview, based on the comments from the recruiter. Not only did the recruiter set me up for a different type of interview, the interviewer herself was completely not familiar with my background. There seem to be limited communication between the recruiter and the interviewer and little understanding of my qualifications on their behalf.
I feel misled, because I should have not been told by the recruiter that the interview would be conducted in C, whereas clearly the interviewer must have had her eyes set on C++. I would have prepared for a C++ interview if it were not for the comments by the recruiter. For sure I would have not asked to switch to C, if I had any inclination that C++ were 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:
1. Do not take everything the recruiter tells you as 100% accurate. Google is now a large company and has large company policies, meaning the recruiter may have very limited communication with the interviewer.
2. Be prepared for any type of questions, regardless of your own background. It may not be checked.
3. Be prepared for specific skill tests, not only for evaluation of your thinking ability. In spite of Google claiming that the interview process is about determining how candidates think, it is apparently not always true. I have IQ over 170. My logic in my answers was 100% accurate, but I did not want to discuss issues I was not prepared for. I do not think the interviewer was interested in my thought process or in my thinking capability. It appears that she was merely interested in me solving academic problems that she knew the answers to.