Recruitment Process for a Google Site Reliability Engineer
blog.lambda-startup.com
blog.lambda-startup.com
I was also contacted by a recruiter based on an open source project I had contributed to. I went through the same series of phone interviews, culminating in an on-site in NYC. I left there feeling largely positive about my chances, but a few days later, I was politely rejected. I was not that broken up about it, as I already had a job that I liked, so I just counted it as good interview practice and moved on.
A year later, almost to the day, the same recruiter called me up out of the blue and asked if I'd be willing to try again. I agreed, and after an abbreviated version of the phone interview process, went to Mountain View for another on-site. Soon after, I was hired!
It's actually very common for Google to reject candidates the first time around, as the interview process is deliberately tuned to produce a lot more false negatives than false positives. We have that luxury thanks to the volume of applicants we receive (there are still a surprising number of Nooglers starting each week despite the selectivity). The hiring committees recognize this tendency to reject qualified candidates and won't count you out after one try. If you got to the on-site stage, then rest assured that your interviewers took you seriously as a candidate. If you've decided that you would really like to work at Google, you will still have a good shot if you try again in a year or so. And if not, then hopefully it was at least a fun challenge and a free trip to London.
The guy was obviously qualified for the job and they still rejected him because he got nervous. He had done well except for one and they said no. I guess if you have so many people interviewing where you have some that did better it makes sense, but it's silly and personally I don't plan at working at companies that interview this way.
Google isn't special. They're just a well known consumer brand, and all that marketing is what's got into people's brains. Coke is just sugar water, it doesn't make you cool. It just puts fructose corn syrup into your stomach. You wanna be the person that has to obey Larry Page's whims and integrate Google+ into more places users don't want it?
It takes you a while to get to this mindset as a technology worker. Everyone's motivation is different though.
I'm 31, have 13 years of experience, and keep getting rejected by SpaceX for a Linux Admin job at launch operations Cape Canaveral. Yes, I'm overqualified. Yes, I'd be taking an enormous paycut. But I want to help send rockets to Mars damn it.
It's not always about the money, nor about the work. Sometimes, you're simply irrational about it.
Don't get me wrong, I would likely work for Google if I had the opportunity, but I would go anti-google if they did this to me.
They build rockets!.
I'm not remotely in their league though as a programmer.
I build web apps.
They're not much of a consumer brand tbh, but they pull in tens of billions a year creating virtual properties to sell advertising space on.
(an aside) One of the startups I worked for years ago, rented a huge office near San Jose, but decided to change directions and hire out of cheaper locales for a while. So we sublet the space out. For a good 2 years this space generated more revenue than the rest of the company and we joked that perhaps we should get into the real estate business. We even had two employees with real estate licenses in 3 states.
People google stuff on bing, tho. So, if you're brand is a verb, in widespread common usage, I'd say it's doing ok. Kinda like Kleenex.
If that's what floats the boats of the best and brightest, I feel kind of sorry for the direction of the species.
Sure they have lots of cool feeder technologies to support this singular goal, but getting people to click paid links is not exactly the same as colonizing Mars.
The vast majority of engineers at Google have never worked on click through rates in their lives. Downplay it as a "feeder technology" all you want, but I'm pretty sure Google search, for instance, has had a huge impact on humanity. One that some people might consider just as important as sending a robot to Mars.
Actually, I am not so sure about this. Sure, it's convenient and saves time, but I wouldn't call it "a huge impact on humanity". It has been more than ten years since it has been around, and I haven't noticed a massive change. I would say, it appears to me that people are more connected, and slightly more aware of the news, which is due to a conjunction of the massive penetration of Internet, the social networks, and the improvement of the search. Google has an important part for sure, but again, for me it's not "a huge impact on humanity", like would be, say, the colonization of Mars or the end of the poverty (where Google search may or may not play a role).
SV and the greater Startup ecosystem has taken this to heart and turned it around, trying to "change the world" with photo sharing apps or weather reporting toasters or whatever. The fact of the matter is, this messaging is a hack to get people to feel good about using the service or buying the device. It's psychological slight of hand because people don't like it when a nameless gray haired white man in a suit says he's looking to maximize revenue growth the next 3 quarters.
Why is Google in search? To deliver ads. They can deliver better ads by having better search, no? They can deliver better ads by providing locational service. They can deliver better ads by getting your face stick to a mobile screen playing matching games that serve up ads. They can deliver better ads by...<insert method>.
Let's say google develops and licenses technology for self driving cars to all the automakers in the world. What do you think people are going to be doing in those vehicles? Surfing the internet and probably looking at ads.
Do you think Sergey Brin, when he's travelling to his private vacation island, bought with ad revenue, in his private jet, paid for with ad revenue, going over the quarterly report, about ad revenue, is thinking to himself, "I'm really satisfied with how many people found trivial information about pop stars with our technology" or is he thinking, "how can I get even more people to click the top-most served ads?"
It's great that I can get global turn by turn directions on my phone, it's improved my life, but google hasn't provided that to me because they think I'm a nice person and want to make my life better. I could have just kept buying Garmins after all. They want me to search for "restaurant" and have a top paid advertisement for "Bob's Pancake House" show up in the list and have me click that so Bob transfers a little money to Google's bank account.
Helping humanity is simply a fortunate side effect of Google's work. But it's not the focus.
He's probably scared shitless that he has exactly one revenue stream worth talking about, and has no idea how to supplement it.
For what it's worth, Google has a public reputation as a great place to work and as a company that hires "high quality" engineers. Both of these things mean that some people are willing to put more effort into getting a position there. My post wasn't meant to say that he must keep trying at all costs, but just to let him know not to be discouraged if he happened to really want that job. In many places, you're dead in the water if you don't make it the first time, but Google is not like that.
Personally, I didn't see my interview process as "something I had to go through", i.e. a laborious means to an end. I enjoyed the challenge and the opportunity to get a glimpse of a company like Google from the inside. Even when I was turned down the first time, I came away feeling glad that I had done it. It's not like I had anything to lose from trying.
> You wanna be the person that has to obey Larry Page's whims and integrate Google+ into more places users don't want it?
Not in the least, nor do I feel that I am doing that. I don't work on Google+ or anything related to it. However it may look from the outside, Google is not Google+. It's a big, multifaceted organization with opportunities to work on all sorts of interesting things. Much of our work is driven directly by the engineers themselves and not by management whims. And there's plenty of mobility to change roles if you decide you don't like what you're doing.
SRE specifically has proved to be a truly interesting and unique position. There are engineering challenges that we face which quite simply don't exist anywhere else. Beyond the much-touted perks, that's what makes Google special, in my opinion, and well worth the comparatively small effort I put into getting there.
TYLER
You're too young. Sorry.
JACK
Wait a minute...
Tyler comes back inside, shuts the door.
JACK
"Too young?"
TYLER
If the applicant is young, we tell
him he's too young. Old, too old.
Fat, too fat.
JACK
"Applicant?"
TYLER
If the applicant waits at the door
for three days without food, shelter
or encouragement, then he can enter
and begin training.
JACK
"Training?" Tyler...I had a few conversations but did not take it further. My reasoning was not going further was not the nature of the interview process, although I found it a little strange that they expected a director level position to know how many bits were in a mac address or nature of google as a business but the description of what the engineering team did for the majority of the time. Rather than building 'stuff' the team seemed to be involved in very low level debugging on the Google infra and apps.
I know somebody has to do that stuff but it's not something I was very sold on when it was described to me.
Incidentally the role is still being advertised so maybe finding engineering directors that know how many bits in a mac address or what the default signal sent with a kill command :)
All (or the overwhelming majority) of the engineering directors I know of at google are very technical. Maybe it's silly, but I think it increases their credibility with their transitive reports.
I've advised people on a job search that the way it works with tech hiring is they ask you a few questions and either you'll happen to be able to get the answer quickly or you won't, and if you go on enough interviews eventually you'll get one where you get all the answers quickly and you will look really smart as a result. Consequently, you can't pin your hopes on or predict whether you would be able get hired by any particular company.
Google errs on the side of rejection because one bad hire has a much bigger impact than one good hire.
We do not hire at random, each hiring goes through multiple interviews and the results of each of those interviews are also reviewed by multiple people (interviewers are required to record all notes/code produced during the interview). Then a decision is made. If we feel not super certain we err on the cautious side and turn down the candidate, even though we know there is a good chance for false negatives.
As far as I can tell, our false positives rates are very low, and everyone I've worked with here at Google are incredibly qualified at their job. Are there people who don't perform? For a company this size that's an obvious yes, but I think if you judge interview's goal of eliminating false positives at the expense of producing false negatives, then we've been pretty successful.
Had one recruiter phone screen with some easy questions, a technical phone interview and then was informed they decided to skip the second phone interview. Got called on-site in Dublin directly instead.
My experience from there pretty much resembles what the author describes. First interview was about my knowledge of C, memory mappings and the related security implications. Let's just say that it helped I had experience from both little-endian and big-endian architectures. The second one was the fairly well known python interview. The problem is devious but really interesting. I botched that one, because I failed to follow my instinct and sketch a visualisation out first. That caused my attempts to derail pretty badly and by the time I realised I would need to rethink and simplify much of the logic, we were out of time.
Third one was a fascinating trouble-shooting problem. It was not just about the technical problem or the symptoms, but also about how to deal with people who may have these kinds of problems due to being frightfully clever at getting themselves set up with the problems in the first place. I think I nailed that one. We had a nice chat about the history of the problem with the interviewer because we had some time to spare.
Fourth one was a system design problem, and it was a true pleasure. The interviewer wasn't as much asking me questions, as he was more laying out the problem and the proposed architecture. We went through the requirements, limitations and he even showed me one neat trick which I hadn't ever thought before. (The actual architecture in question was effectively a DHT with an interesting twist. I thought it was brilliant.)
The fifth one was basically about how well I understood the system internals of unix and linux. However, the approach chosen was not the off-the-shelf one I've seen elsewhere - the dive into internals started with task_struct. Yes, the one which nobody is supposed to understand completely. (At least according to Robert Love in Linux Kernel Development.) I got it right, evevntually.
I was, of course, rejected due to "not good enough at coding". I don't hold that against the interviewers or the process. I know I'm a slow starter with any code - and I seem to suck at whiteboard coding. Whiteboard is great for doing visualisations and writing down short snippets where they are relevant, but for actual programming it just doesn't work for me. My most important design tools to this day are a large paper pad and a good pencil. After that it comes down to debug logs...
What may sound strange, is that the on-site day remains one of the most enjoyable experiences of my life. The interviews were designed to keep my brain spinning at overdrive, and the interviewers themselves were good enough not to actively mislead (they did keep me asking questions and stating the reasons for my approaches, which was crucial). Loved it.
I've told all this to my hacker-type friends and still remain convinced that any engineer worth his title should experience the Google on-site day. It's a challenging, but also extremely satisfying experience. Some of them have tried, and at least one has been actively courted. I'm convinced he would ace the interviews without a hitch. The requirement to move is the one thing keeping him away.
If Larry or Sergei call up personally and give you a blank check to start your own team/project, (and let you open-source your work...) maybe that'd be a different story.
But otherwise, seems like working elsewhere will be the better option if you care about experience/skills over climbing the corporate ladder and having an easy paycheck.
Can you give some examples of some pieces of interesting SRE work that is happening at startups ? I'm curious.
I think the SRE role is still misunderstood a bit outside Google. Few startups that I'm aware of (there are a few, mind) care enough about "Reliability" to make a dedicated reliability engineer among the first 50 employees.
I interviewed for a SRE position in Dublin half a year ago, I made it to the on-site interviews but after that I didn't get hired. I agree with pretty much everything the article says, specially the concerns about the interview about Large Scale Design. That one is pretty weird, it's the only one I couldn't really prepare. The only thing I don't agree with are the ending conclusions.
First, I wasn't told anything about where I had failed. It'd have been great to know it, so I could prepare better for the (unlikely) next time.
Second, maybe I'm a pessimist, but I don't feel like _I can compete on this very top level of computer engineering_. I feel more like I was quite lucky to get where I got. Maybe (in fact, I hope) it has something to do with the Dunning-Kruger effect...
When is the last time you heard of a system administrator writing down problems on a whiteboard as opposed to asking a colleague or Googling the answer? I think the real test after the initial phone call interviews and Google docs one is to sit you down in-front of a computer and make you solve real problems, not theoretical & made-up problems in which they ask you to solve them in impracticable and unrealistic ways.
This is a flaw in the corporate hiring process almost everywhere in the software world. It's not the 70's any more, people rarely solve problems on whiteboards and paper. They solve them on the computer, sometimes through knowledge and their skill-set and other times through luck and Googling.
Don't feel too bad for being rejected, it just means something else could come along that's better.
This isn't universally true. Anecdotally, I often find I'm much better able to think through tough problems if I step away from the keyboard and spend some time sketching out ideas on paper or on a whiteboard. I also keep the on-paper results in a notebook, which is occasionally useful to refer back to later in a project.
Sometimes just introducing some distance between you and the problem is enough to give you a key insight. That said, the interview environment is still nothing like this. There, you're under great pressure on the whiteboard, something which is probably not true in your day-to-day.
If something really, truly has never been done before, nor even anything similar enough to be useful to me, then yes, this is the right way to work. But it's more common that someone has actually worked on something at least related (even if not quite the same), and that I could solve the problem more quickly if I looked for what they said about it first. That might take a bit of searching and reading to discover, sometimes even a few hours of it. But usually not as much time overall as re-solving it myself does... especially taking into account re-discovering all the edge cases.
My hypothesis is that many people don't realize this because they never follow up later to check if their solution was really novel, or was just lurking behind a keyword they didn't think to try. If you do that a bit and adapt your habits to miss things less often in the future, you can get better at finding and adapting existing solutions, rather than re-inventing things from scratch. But that's sometimes a bit deflating, because then you realize you weren't inventing so many new things before, either...
[1] I mean this in the sustainable competitive advantage sense
"You're a site reliability engineer at Google. Google is offline and you have to fix it, what do you do?"
"I'd Google the answer"
"Try again"
"I'd ... Bing and decide?"
both laugh
The interview described is pretty much exactly as I remember them. SRE is actually quite difficult to get into, precisely because you need to have fairly deep knowledge on a wide range of topics. The "ways in which you were asked to solve problems" are actually the best way to determine if an application actually knows about what they will need to know.
If collaborating with others in a remote office, I begrudgingly make a Google doc and treat it like a whiteboard.
Most of what we do involves enormously complicated systems with lots of nodes and RPC flows between those nodes, different pathways depending on the flavor of the RPC, systems spread out in different metros around the world... it's very difficult to visualize all that complexity in your head if you've never seen it on a cocktail napkin.
For example, just last week I sketched out a diagram inspired by the famous visualization of Napoleon's campaign to Moscow (http://www.aviz.fr/wiki/uploads/Research/minard.jpg), primarily to help me wrap my head around a complicated RPC flow (at the first node, 32% of the RPCs are classified as XYZ. Each of those spawns 3 new RPCs that go here and 1 that goes over there...) When I got stuck, I called over a colleague, and he was able to immediately see, just by looking, where I was going wrong, and with a few strokes of the marker, set me straight.
I later turned it into a spreadsheet so I could use it to explain the model to others. Also, it was nice to be able to use worksheet functions to do the math. But I never would have been able to get that far that fast without starting at the whiteboard.
This is not true for everyone. I see it as more of a failure on Google's behalf to create a good selection process. The flawed assumption you're making is that, since they have a noticeable false positive rate (i.e. good people getting rejected), they don't have false negatives (i.e. unqualified candidates getting offers). There is no guaranteed correlation between false negatives and false positives.
To carry this a little further, I would argue that it's very likely that some bad engineers get into Google because, by definition, their selection process is not correctly picking good engineers - just a rough approximation of what they think makes a good engineer.
But you have to look pretty hard to find those engineers...much harder than you do to find quality engineers that have been turned down by Google. And I believe it's intentional...that those false positives are about seeding the rest of the industry with people rejected by Google. I believe they interview more candidates than they need to bring in to fill their open positions in order to feed the perception (not the reality) that Google's engineers are the best of the best. That's the perception they care about, not the perception that their interview process is good at choosing employees.
I turned her down because I'd gotten a really bad impression of the whole process. No other company I've interviewed at have managed to be nearly as Kafkaesque in the hiring process, and several of the Google recruiters I've spoken to over the years have vented their frustrations about the process at me when I told them this, while non-Google recruiters have gleefully told me they hear this a lot and consequently see less and less competition from Google for candidates.
I'd consider a request from a Google recruiter for an interview again, but the threshold for me to bother starting down that route again has gotten higher each time - I don't feel Google is worth the hassle unless they were to approach me with something exceptional.
Once you move beyond roles which are effectively operations, maintenance or been-done implementation to anything that can be called engineering you'll start to face problems for which there are no canned answers.
>"It's not the 70's any more, people rarely solve problems on whiteboards and paper."
This has nothing to do with era, it's a matter of scope and scale. When you have problem that is big / complex enough that it can't be reasonably solved by a single person a whiteboard is invaluable in laying things out and thinking them through.
>"They solve them on the computer, sometimes through knowledge and their skill-set and other times through luck and Googling."
Where do you think all that helpful information on Google, or anywhere else actually originates? When the folks at Google were in the process of engineering GFS do you think they just Googled "chunk replica placement" and hoped to luck into a StackOverflow post on HDFS from 10 years in the future?
I don't know what you do or where you work, but it's no job I've ever had, nor any office I've ever been in. It's not unusual to end up spending most of a day in rooms with whiteboards and a few colleagues working through problems.
I'd estimate that no more than 50% of job is spent coding, if that. Solving computer/software/system/architecture problems, yes. Coding, no.
You don't hand a car engineer manufacturing tools on day one of making a car, you need him to produce a design/blueprint first.
Really?
Let's be clear: whiteboards are a fine tool for design, problem analysis, architecture, etc. etc. People take issue with "write me bubble sort up here on this whiteboard."
The implementation part of "software engineer" very often is much easier and sometimes even trivial when compare to the design/architecture of the entire system. Implementation is also very easy to improve upon and refactor out, if you have a good design to begin with.
> I found it amazing that for each of the interviews I was given enough information in advance to actually be able to prepare myself.
I had the same thought. To me, Google seemed 100% concerned with evaluating engineering skills and they wanted to do the opposite of hitting my weak points or quizzing me on trivia. I got a pretty good amount of detail on what to expect, loads of links, book recommendations, practice exercises, and even a video SRE interview coaching session by a couple SREs (all of which I combed through, yes, I even bought two of the books). Personally, it was a great interview experience.
I also interviewed with another large software-oriented tech company, but Google put more effort into providing preparatory material.
> So the fourth interview (1:30 PM) on that day was the large systems design interview. Unfortunately, I was a blockhead on this one, then got nervous more and more and thus failed it.
It's also the area I felt the weakest in. It was the hardest to prepare for and they gave the least amount of prep material.
(Disclaimer: I start with them in 3 weeks.)
Would you be willing to share some of their/your recommendations?
Edit: To clarify, this is for SE, not SRE.
FWIW, I bought "Programming Pearls (2nd Edition)" and "Advanced Programming in the UNIX Environment (3rd edition)". "Programming Pearls" was definitely a good choice.
Highly recommend it.
http://steve-yegge.blogspot.com/2008/03/get-that-job-at-goog...
P.S. It worked for me. :)
Good luck!
Google has a strong reputation for paying well & being a desirable company to work for in the minds of many, so they can afford to do this as a part of their process.
For me, the preparation was primarily:
* honing the skills I did have to make sure I was comfortable using them in a tense situation
* refreshing and re-honing some things I hadn't seen in a while (some since college)
* filling in some gaps of knowledge (so I could connect the dots in an in-depth explanation better)
* preparing my thought process for the types of questions I'd have
The last one is subtle but important. If the interviewee has a good idea of what is expected of them, they can converge on a good path quickly and avoid going down rabbit holes or wasting 15 minutes trying to get on the same page as the interviewer.
As a side point:
> doesn't that mean your current skills aren't a good fit
Don't they really care about your skills at the time of being hired (which they approximate by measuring them at the time of the interview)?
This covered everything from design patterns to failing SSD's to static init order problems in C++ to arm assembly instructions...
Sadly every interview I've been in usually involves being a human compiler and key/value store for algorithms rather than being a human problem solver.
Other co-workers do the algorithms KVS stuff and classic concurrency quizzing although. We need both.
Now I'm trying to think how I can interview people for coding design decisions & wisdom. Like religiously following the Don't Repeat Yourself principle or other things out of the pragmatic programmer. You can be an algorithm KVS star and still do stupid shit like that. All I have is hints, like 'sorry for this copy paste but I only have 10 minutes left, normally i wouldn't do this'.
I'm really starting to understand the damage bad coders can cause to a code base attitude that google has. It can create a 5 people shoveling more shit than you can shovel out at a time situation that you really want to avoid.
I concluded there's a number of factors at play:
1. Google views software engineering skills as fungible. If you can learn domain X, you can equally well learn domain Y. Hire smart people, and put them on something they find interesting, and you'll get high quality work out of them. Computer science / problem solving then becomes a sort of proxy for whatever skills are ultimately necessary. If you can learn that, you can learn anything.
2. Google wants to quantifiably improve its interview process, which requires that it be standardized. Tailoring the interview to the candidate too closely makes it harder to compare interviews across candidates. Computer science and problem solving are reasonable baseline skills for a SWE.
3. Having a famously difficult interview helps Google cultivate a reputation for exclusivity, which in turn attracts candidates. Same as why universities like to show off low acceptance rates.
But also some less charitable factors (which are by no means limited to Google):
1. NIH syndrome. Skills acquired outside Google are viewed as less relevant precisely because they were acquired outside Google.
2. Ego. I want to pretend my job is more about sophisticated algorithms and problem solving than tracking down null pointer exceptions.
3. Ageism. Whether chosen consciously or not, structuring the interview around topics taught in school / programming competitions, instead of on the job, slants the process towards recent graduates. Google has one of the youngest workforces among established tech companies, outside of Facebook.
When I've asked Google engineers about it, they've admitted that their interview process is imperfect, but also think it's the least bad approach known. At a minimum they deserve credit for working to improve it, instead of the haphazard approach employed at most companies.
I get the impression from your post that you view this as a positive attribute. I actually think it is a negative. I feel that, like other engineering disciplines, software engineering is so broad (and getting broader every year) that skills are not truly fungible and that a certain level engineers must specialize. The result is that companies like Google either test for a breadth that fewer and fewer engineers can actually achieve, or they trick themselves into thinking their evaluation covers everything when it does not. It might (a big might) work when you are only a couple years removed from your undergraduate degree, but its a lousy way to hire experienced people.
If I ask you random language questions, that you've not prepared for, I am not selecting you for being a good developer, but by being good at remembering language minutiae, which you could always google anyway. Now, if instead I hand you 2000 lines of code 2 days in advance, and tell you that we'll be working on them during the interview, I get a much better approximation of what you can and can't do in a real life scenario. Can you become very familiar with a tiny codebase quickly? Can you really analyze it critically, and tell me where it sucks? When asked to fix bugs, or make code changes, can you make the changes actually fit into the existing structure, or are you going to want to rewrite the world?
If you'd get a very different result in an interview if I gave you the questions I was going to ask an hour in advance, then I am not testing work skills at all. You don't hire a juggler by seeing if he is good at playing basketball, you watch him juggle.
As an experienced engineer who is happy in his current job, what is my motivation to jump ship? Google recruiters act like the chance of working at Google is by itself sufficient incentive. Google's entire process seems to geared towards selecting people who really want to work for Google and who will jump through whatever hoops Google sets up. Long-term, it is probably dangerous for Google to be so chock full of corporate confirmation bias.
I'm also an experienced engineer, happy in my current job.
Glad to see someone else with the same thoughts!
I guess it'd be possible to game this signal, but that's a lot of effort and still just one signal.
My real point is that it absolutely does not count against you.
From a certain point of view it makes sense - how are they going to schmooze with clients if they can't schmooze with you, but... shudder
But you're right, they are tests... for the candidate to test Google.
However, "culture fit" can play a role in a different way: the actual interviewers (the ones who aren't taking you to lunch) will be given the opportunity to chime in on whether they think a candidate seems Googley, and this is often factored into the hire / no-hire decision.
So someone who spouts off racist, or presents as a brogrammer (i.e., cracks sexist jokes or throws around terms such as "gang bang", etc.) --- definitely not Googley.
Of course, it's harder to detect the more subtle forms of "someone I wouldn't want to have as a teammate" in a 45-minute interview. So more often than not, what I end up putting in that section when I do interviews is "no issues noted". The good news is that many of the more nuanced forms of "googleyness" are hard wired into the culture, and so new hires tend to pick up on these sorts of things through osmosis and seeing how more senior engineers behave. Things like gathering data to back up theories, and not just making assertions, or writing code very defensively and with a heavy emphasis on testing, etc.
Of course, these highly desirable attributes aren't unique to Google! In an ideal world, these sorts of things would be the base level of what would be assumed by all engineers across all companies! Unfortunately, those of us who have worked on many companies know this is not true --- and there will be a few bad apples inside any company, including at Google. But on the whole, I have to say that Google's hiring process tends to do a much better job weeding out "engineers I'd rather not have on my team" better than what I've seen almost everywhere else.
-Interested and curious about technology and the world
-Neutral or left-leaning socially
-Not too uptight
-At least some sense of humor
-Humble enough to admit mistakes and lack of knowledge
I kind of feel like these are things any good tech company would want, though. I'd be curious if a Googler could give a good definition for what makes someone a good fit at Google specifically; something that can be distinguished from other similar companies.
but if they don't feel comfortable with you at lunch, or you come out as a jerk/asshole for anything, you're not taken. it makes sense.
its not a hard test but its a test.
The only way in which the "lunch interview" is an interview is in the reverse direction: it's the candidate's chance to ask all kinds of informal or random questions about Google. Other than that, it's really just a chance to give their brain a break, because let's face it, interviewing is stressful and doing six interviews in one day is pretty exhausting. It wouldn't be much of a break if we were testing them while they ate.
I guess if a candidate did something egregiously bad while we ate lunch, like jump kicking me or something, I'd probably go out of my way to track somebody down and tell them. But other than that, lunch is just... lunch! :)
It leaves me with the following impression:
What a ridiculous waste of this guy's time. Why on Earth do recruitment processes need to be so capricious? Of course the guy's going to get nervous when he fouls up, given the HUGE amount of his time that has already been wasted, and how much you are putting on the line for every single moment to be perfect. maybe if the stakes weren't ridiculous and so capricious, it wouldn't take you two recruiters, three phone interviews, and a day of wasting everyone's time, only to reject a perfect employee.
Makes me glad not to work for a huge organization. What a travesty. I have no idea why people feel it's okay to waste other people's time like that.
In hindsight, I'm not sure why I was excited to work at a post-ipo cube farm, even if it says "google" on the side.
edit: I believe it was also for SRE, which (at the time) means you do two interviews: the sysadmin interview, and the developer interview.
For upper-level, Google does not have the luxury of getting one thousand credible and serious applicants every week, so the process necessarily differs.
It would make it impossible for them to hire. A large segment of potential tech hires salivates at the prospect of being hired by Google as some sort of intelligence test or proof of their self worth, and the convoluted hiring process serves to reinforce that impression. While it puts some people off, it draws others in.
For higher level management positions, marketing and other types of roles, Google does not have nearly the same draw. And for higher level positions the pool of potential candidates is much smaller too.
His feedback after all was said and done was "brush up on your scripting languages."
By comparison, Facebook recruiters give very specific feedback tired to reach specific interview hour.
Doesn't make sense to me, the things they do. I've had bad experiences with several of the big tech guys now...
Too bad you were denied but I'm sure it will all work out for you. In my opinion computer science is really cool because if you want to be really good you don't have to work at a big tech company. You can learn in your cube, learn at home, learn wherever. It is so easy to network and be with other smart people that you don't need them and they need you.
It's a function of size, frankly - companies above a certain size tends to tack on more interviews largely because they can, and it doesn't hurt to get feedback from one more person. They also have the luxury (and problem) of a much larger pool of interested candidates to hire from.
One part I found interesting and note I have not interviewed for anything in probable 10 years is the fact that they would not attempt to place you into another position being that you passed the majority of the questions with flying colors. Actually my only criticism is you used a ton of ;)'s :-0
So you are an excellent coder, scripter, and network admin. You also know all the OSI layer stuff but aren't good at "large scale" sysadmin functions? If this were my company I would try to have you placed in some other department and postiion.
Either way, thank you so much for sharing your experience!
The interviewer had me write a client jsonp API interface, that is a controller that would handle calls to and from a jsonp API. Embarrassingly, I knew little about jsonp except for that it has a callback parameter that correlates with a global function you have defined in the javascript of your page.
So as I was literally learning how JSONP worked during this interview, I also had to write an interface that would gracefully fail and queue multiple calls. I did pretty well, at that, having completed the essence of the exercise. Toward the end, I got mentally hung up on a scope issue and my brain was pretty much fried at that point so I ended up crashing out (it was the end of the interview time, anyway, so it's not like there was then 10 minutes of awkward silence).
Anyway, this sma hiccup, which in no way indicated I didn't know my craft, and opposing my seemed to indicate I was an extremely quick study, still managed to keep me from moving on in the process.
I'm not miffed or anything. In fact, out of that experience, I wrote a really cool lazy loading geolocation API that uses promises in conjunction with JSONP to deliver a really smooth API consumer experience, something I wouldn't have thought to do at my previous level of understanding.
"Here's a list of things to know, go study it, then come in and solve problems with it in an artificial environment so that we may grade you". So you cram in preparation, and then if you don't pass the test, you plan to retake it in a year.
I'd think the best and brightest would be the ones whose working knowledge, without cramming, allows for innovative, interesting, clever solutions. Even better if you can get away from the artificial feeling of interviews, into a "here's an actual, and unsolved, problem, let's figure out how to solve it together so I can see how you tick", rather than "here's a fake question, one with a well known, posted on the internet, solution, that if you ever faced in real life you'd solve in 5 minutes of Googling and move on, and which I expect you to recognize as a (X) problem, and regurgitate the solution from the selected readings". (That said, one or two stages of the interview seemed like they ~might~ be that).
Maybe the intent isn't really to hire the best and brightest (that's hard to test for), but really the people who want to work at Google the most; are you willing to devote hours to the mere possibility?
I just want to say that I appreciate the overwhelming feedback and all the positive and encouraging statements to not take that rejection too seriously.
Furthermore, I'm glad that my little article causes these mostly constructive discussions on here, and that sharing my experiences seems to be appreciated. Thanks.
From the outside it looks like Google's strategy is to hire people that have the skills that people can only get from already working at Google. i.e. They have forgotten that they themselves did not have those skills when they were hired.
Sadly blog posts like this make me think they are suffering an unintended side effect from doing this: http://googleresearch.blogspot.com/2006/03/hiring-lake-wobeg...
Ah well...
I'll just point them to this article whenever this kind of questioning happens again: (https://news.ycombinator.com/item?id=7373310 - questioning is the first comment)
> The hotel was right across the street of the Google building, which I really liked a lot, since it meant I didn't have to find my way through London in the morning before the interview.
Seems like it was in London.
I also think many of the recruitment questions were above the skills of the employees asking the questions. they just had a checklist and basic understanding.
Now i would probably do smth similar if i was google and a got a lot of applicants, but it felt weird.
I think what was the weirdest tho, was how they made me feel like the SRE job was very stressing and more of a throw away tool used so that, luckily, i could switch to another position after 13month (1 cycle).
That sealed the deal the wrong way for me. I just told the guy we should stop the process now so that nobody wastes their time and went home.
(SE = Systems Engineering, SWE = Software Engineering. People hired from both tracks wind up doing the same work; it's mostly just about what background you're coming from.)
In an auto analogy, Google was trying to hire narrowly experienced, self-taught auto mechanics and not mechanical engineers.
In general if you get one interview that results in a weak no-hire, you need a couple strong-hires to balance it out. If you get one with a confident no-hire, that's it.