I applied online. I interviewed at Google (Dublin, Dublin) in Jul 2014
Interview
I applied online on June 9, 2014. After two weeks I received an email from a recruiter asking me to evaluate myself from 0 to 10 (0 being "no experience" and 10 being "super expert") on the following list:
__TCP/IP Networking (OSI stack, DNS etc)
__Unix/Linux internals
__Unix/Linux Systems administration
__Algorithms and Data Structures
__C
__C++
__Python
__Java
__Perl
__Shell Scripting (sh, Bash, ksh, csh)
__SQL and/or Database Admin
__Scripting language of your choice (not already mentioned) _____
__People Management
__Project Management
I was really honest and evaluated myself a little low on almost all of them, except from Java, C++ and algorithms + data structures (which I thought were my strongest). However, the recruiter decided to schedule a phone interview with me. We agreed to have the interview on July 8, but something came up and I had to change it; she was really cool about it, and finally we scheduled for July 12.
Some of the questions were:
- What is the time complexity of Quicksort in the worst case scenario and in the average case?
- What is the unix system call that returns file attributes about an inode?
- Have you heard about linux 'tail' command?
- Without using a calculator, tell me how much is 2 to the power of 24?
The only one I got right was the first one =( because I read someone else's questions here, but I wouldn't remember otherwise. To be honest, if I needed to know any of that I would just Google it, but I don't remember it from 5 years ago when I studied them in the university. Also, it was a bit confusing because it was obvious that the recruiter was not a native english speaker, and neither am I, so sometimes I just didn't understand what she was saying, even after repeating 2 or 3 times. For example, on the 'tail' question I understood 'till' and of course I said I had never heard of it -.-
In my humble opinion, it seemed more like an end of semester test rather than an interview. Besides, she didn't even ask me anything on the topics I evaluated myself the highest. At the end, she obviously concluded and kindly said that this was not the job for me.
Interview questions [2]
Question 1
Which of these do not guarantee a time complexity of O(log n) ?
- Red black tree
- Binary tree
- Linked list
- Hash table
- B tree
Enumerate the following from 1 to 4, being 1 the fastest to execute and 4 the slowest:
- read cpu register
- disk seek
- context switch
- read from main memory
I applied through a recruiter. I interviewed at Google
Interview
The recruiter first did some screening by phone, asking a few technical questions and driving me through Google's "self-evaluation" in about 10 domains (networking, *nix internals, *nix sysadmining, algorithms, and various languages) (the recruiter had a good idea of how I *should* score). I was asked to narrow down where I would work. Google picked an interviewer from one of the would-be sites of employment for a coding interview done via phone and a shared document. After that I did a day of interviews at Google's offices. Lunch wasn't an interview but I was also accompanied by a Googler who let me ask questions about the work, office life and such (all interviewers did this, but the interviews rarely left enough time). Sent back feedback to the recruiter, who called me back when the hiring committee declined to make an offer. Unfortunately the recruiter gave very little feedback when asked, claiming it wasn't shared with them.
The on-site interviews featured troubleshooting, coding, large-system design, plus a bonus topic of my choosing (SRE-related) and an extra interview which I think was picked where I ranked highest. My least favourite was the troubleshooting, since there was no actual terminal prompt and I was at the mercy of the interviewer deciding how the system was built, how it would manifest symptoms, and their understanding of how my commands would work. That interviewer had asked me to pick a small number of things to monitor, without deciding what the purpose of the monitoring would be.
Aside from early interaction with the recruiter, and the fact that my interviewers had access to my resume, there was very little of the traditional HR approach to recruiting; this was almost all technical, and I was the only one asking questions about the more general fit.
One annoying thing is that, aside from the recruiter, everyone called me from numbers that wouldn't answer back. This plus the distance made organising some things painful. It also means you have to write down anything you might want to ask in advance, because the people calling you are more prepared than you do.
Interview questions [1]
Question 1
see description of troubleshooting above - more of a process than a simple question
I applied online. I interviewed at Google (London, England) in Feb 2013
Interview
First step was a phone with a recruiter, basically chatting about my CV and some easy technical questions as a screening.
Second step was a phone interview with an engineer, some knowledge based questions (general programmig, unix system programmin) and a small programming task (implementing a call of the C library).
Third step was also a phone interview with an engineer along the same lines as the second, of similar difficulty, with a small programming task, fairly easily and the interviewer guided me as well when I could not come up easily with the solution.
Then, I was invited over to London for an on-site interview. I had 5 interview in differrent domains : system administration, networking, algorithms, problem solving, large scale design. All of them where very demanding. My advice would be:
- sysadmin: you need real world experience, very good knowledge of GNU CLI tools, etc
- networking: very good knowledge of TCP/IP (up to the bits of the protocol, workflows etc), experience in network design
- algotihms: you need to solve *literally hundreds* of problems an be able to reason about them with common and not so common algorithms (*including* NP graph algorithms). I had't and I struggled.
- problem solving: books won't help much, you need real world experience
- large scale design: you have not seen problems at google scale, best option is to read some google papers, like GFS, big data etc.
I was not given an offer since I did not meet the expectations and they could not give me any specific details on my performance on individual sessions.
It was impressive that the entire process, up to the last stage I reached, did not involved *at all* typical HR stuff like behavioural questions etc.