I applied online. The process took 3 weeks. I interviewed at Google (New York, NY) in Mar 2013
Interview
The interview process consists of 1-2 technical phone interviews, and an in-person technical interview. Each phone interview is about 45 minutes to 1 hour, and the in-person interview consists of meeting with several different people over a period of about 4 hours. It seems to me that the second phone interview is done if there is some uncertainty as to the skill level of the candidate. I managed to get a second phone interview, however I did not make it to the in-person interview.
My best advice for the phone interview(s) is not to answer any question immediately if you have the slightest doubt your answer will be insufficient. Taking a minute or two of silence to take notes and think about the problem in silence is better than giving a weak or insufficient answer. I am certain the same strategy would apply to the in-person interview. I also highly recommend going to the interview coaching sessions that Google hosts at their offices, it was very informative.
One last thing to note is that Google's hiring process is very slow, and recruiters tend to take awhile to get back to you. Expect it to take 4-6 weeks to finally receive an offer if you manage to get through the entire process, and keep this in mind while dealing with your other potential job offers.
I applied through a recruiter. The process took 1 day. I interviewed at Google (Mountain View, CA) in Mar 2013
Interview
I was contacted by Google recruiter and went directly with on-site interview because (I think) strong internal referral. I spent a week preparing the interview. On interview day, there were 5 rounds of technical interviews + lunch. 9 questions in total, I answered all of them correctly, although one of them I figured out it's DP but didn't have time to figure out details because I was only given 5 minutes to work on the problem ( the next interviewer was waiting). I did use hints for solving some of the problems. I felt really good about the interview. A week later, I got rejected and recruiter said she couldn't give me any feedback.
I can only think of two possible reasons for rejection:
1. They only hire engineers who can come up with perfect solution in 5 minutes which is not what they claim in interview tip video that they want to see the brute force solution first and they want to see the analytical skills.
2. They rejected me for factors outside of interview
I felt the 2nd reason is more likely for my case and they rejected me due to my experience, age, and/or lack of ivy league education. In the past I got offer by top company with worse interview performance. This is ridicules, they seem to have a mysterious formula to determine whether you are a good fit. They can pretty much figure it out from my resume, why waste my time and energy on the interview! It cost me $500 to take PTO.
I applied through a recruiter. The process took 6 weeks. I interviewed at Google
Interview
They called me up after seeing my LinkedIn profile. It took a while to set up because it was near the holidays, but the arranged a phone screening interview, then an onsite interview. Both were what I have come to know as typical google interviews. Technical coding questions, questions with several possible answers, but only one 'best' answer. I made a lot of dumb mistakes like leaving return statements off of the end of functions even though I had gotten the main body of the function accurately, and I was quite nervous, which didn't help. They were mostly nice, although a few of them seemed resentful that they had to be running an interview.
Interview questions [1]
Question 1
They asked me a computer vision question that involved needing to compute the integral image, which took me a while to dredge up out of deep storage.