I applied through a recruiter. The process took 7 weeks. I interviewed at Google (San Bruno, CA) in Nov 2015
Interview
A recruiter contacted me inviting me to submit a resume and transcript if I was interested in working for Google. The recruiter got my information from an internship application I submitted last year (I was never contact for an interview for this internship), so this just goes to show that it never hurts to just submit an application.
I went through the phone interview and then was flown out to the YouTube offices for the onsite. After my onsite interview, however, the recruiter told me that while I wouldn't be moving forward in the SWE process they felt I would be a really good fit for their Engineering Residency Program, and so if I wished to be considered for that I would just need to complete one additional interview (over Google hangout). The recruiter was able to schedule that interview within the next few days (I had an impending deadline and the recruiting team did an awesome job accommodating my schedule). After this final interview I waited for a week until I was notified that I had gotten the position.
In general all three rounds of interviews were of the same format (though some had one or two behavioral/program fit type questions). I would definitely recommend going through problems in Cracking the Coding Interview/leetcode/hackerrank. Know your data structures (emphasis on hash tables and graphs), know how to figure out space/time complexity. The recruiters will send you a study guide, so definitely go through all the topics listed on that guide.
Lastly, throughout this whole process I've come to realize how much of the outcome of an interview comes down to sheer dumb luck. Luck in the fact that an interviewer will ask you something that you just practiced the day before, or something relating to your course work, or that it turns out you have very similar interests as your interviewer and you just click. So sometimes it just might turn out that despite all your preparations the interviewer just happens to ask you something you are super shaky on. There really isn't any way to prepare for any possible question that you could get asked, so just remember to breath, stay calm, and ask for help if you need it!
Interview questions [1]
Question 1
Questions about specific data structures. Standard "write a program that does ___." Given this set of data, design a system in which we can figure out ___.