I applied online. The process took 2 months. I interviewed at Google
Interview
Two back to back hour long interviews. One coding question in each plus questions about my resume. A super easy question in the second round but lots of confusion aroused.
I applied online. The process took 3 months. I interviewed at Google (New York, NY) in Jun 2018
Interview
Applied from glassdoor link, next day recruiter emailed to schedule phone call the following week. Scheduled technical phone interview 1 month later. The next day after phone interview recruiter informed that they'd like to fly me out to New York (they asked which location I'd like to work for, I said New York) for onsite interviews. I scheduled it for 1 month later. The day before my onsite interviews, I attended Google's interview coaching session in New York, which was helpful. Onsite interviews were 5 rounds of technicals with 45 minutes each with lunch break after 3 interviews. Difficult interviews, you won't know how well you do regardless if you finish coding up or not, but I think that's the point. The following week recruiter followed up said the interviews feedbacks were good, so will go to Hiring Committee. The following month is just Hiring Committee, team-match and different approvals, lots of waiting but my recruiter was extremely kind and transparent through it all. She essentially updated me everyday with what's happening. Offer came 1 month from the time I did my onsite interviews. No need to negotiate (really), extremely generous offer with relocation benefits and all.
Interview questions [1]
Question 1
NDA but lots of data structures and algorithms with some optimizations.
I applied through an employee referral. The process took 4 weeks. I interviewed at Google (London, England)
Interview
I was rejected without any interview for a few consecutive years (for intern positions) until I applied for a graduate role for which I got phone + onsite-interviews for.
Compared to several interviews I took from other companies this year, the overall interviews at Google was the best in my opinion, but not perfect. This review is written hastily and is my sole opinion so it is to be taken with a pinch of salt!
The hiring process was good. The two recruiters I had were particularly good, flexible, gave feedback, great/proactive communication and advice - they can answer a lot of questions should you have any. Plenty of Google-specific interview resources/experiences were available online (more so than other companies) from Reddit/Quora/Glassdoor/etc. My application was sent to the hiring committee and then rejected.
I had one phone interview which was about 45 minutes and excellent - I love the use of Google Docs. Call (sound) quality was good and questions started very easy and gradually increased in difficulty. Very good experience with that one.
After the phone interview, I had an on-site quickly scheduled (roughly 3 weeks after the interview) which consisted of 45-minute interviews (with a Lunch break in it). A great thing I would love to point out is Google lets you do coding on the laptop - since I really do not like whiteboard coding. I like how toilet breaks were always asked by every interviewer where appropriate. These two things (toilet breaks + laptop coding) made my experience so much better and are often overlooked by other companies.
All interviewers were polite/friendly. There was also a whiteboard in the room which you can use if you like.
Overall I am satisfied with all the on-site interviews and questions were to-the-point but I will try be constructive. Cannot really complain about two of them which were super super good (including one who gave a poker-face which could be part of the test but made it hard for me). A problem with one interview is I felt I was misguided to a suboptimal solution when I suggested a more optimal one and on a different interview I was gradually encouraged to a particular solution halfway through rather than my own similar (but working) solution which made it slightly awkward for me to code (and too many hints were given too quickly/soon); however this actually might be part of the test to see if you can handle these situations, so technically it is my fault for not adapting and handling this appropriately. In the real world, a good candidate must be able to handle this and debate with others, instead of agreeing blindly without checking. In the real world, you must be able to adapt to different kinds of communication styles. As a random example, imagine if someone said it's O(n^3), a good candidate will double-check it instead of quickly accepting that information - just my opinion though.
Although being open minded is good, you have to trust yourself and not be nervous which I failed to during the interviews. In the real world, a software engineer shouldn't panic or be nervous when there's a sudden high-priority bug to be fixed (e.g. exploited security issue). You have to have good communication skills.
I am also glad that I never seen any of the questions before the interview as they ban common questions; however doing common questions (and the Cracking The Code Interview book) really helped. All my interviewers really do vary in personality and approach in communication (maybe to test me but perhaps I am over-thinking).
Unfortunately, one of the main issues was I felt the questions asked were not diverse enough in category (e.g. not enough on data structures) and were similar in one sense.
Lunch and office tour by my lunch buddy was especially good.
For some reason I thought you had to do 3 questions per 45 minute on-site interview, but really you usually get one difficult problem, which led me to incredibly rush the first two interviews. I felt I coded too quickly.
Overall I am really happy with the whole process. I did underperform enough to get rejected but I still found the interviews to be a great experience and one that many can learn from.
Good luck to the other candidates. Those who do the on-site twice would have a great advantage as you can learn a lot from the interviews.
Tips to candidates:
* Take your time and don't be nervous.
* Break down the problem and explain your thought processes.
* It's not only about the coding, you want to show good communication skills and that you can work with others. You won't be assessed one-dimensionally on your coding/problem-solving skills.
* Be good at explaining complexity.
* Practice a range of difficult problems online.
* Be good at algorithms + Data Structures.