Why Google's hiring process is broken
blog.teambox.com
blog.teambox.com
I asked the other company for an extension, which I got, and told my Google recruiter the new deadline.
Then Google never responded and I never did an interview with them.
I felt really put-off by that.
Re: Google's word-of mouth reputation:
On the one hand, I feel kind of stupid bitching about my experience with Google, even though it really did happen. I don't like bitching.
On the other hand, as we hackers talk about this kind of issue at Google, maybe they'll eventually listen and shape up a bit if there really are systemic problems, and that's a win for everyone.
I actually tried giving Google "suggestions," though I don't think it made an impact (which is to be expected and understandable).
Sorry to hear about your experience though.
For one thing, I don't like pulling crap like this.
I might have anyway, except that it would have damaged existing and longstanding relationships in the other (non-Google) company that are worth maintaining to me.
I think it's pretty rare for a company to tell someone "Yes, you can definitely work for us, here is a contract for you to sign and a start date and how much you're going to make" and then revoke that.
Which is the equivalent to me telling a company I'll work for them and then reneging.
But of course, yes, they could do it, and you're right that people and companies aren't always courteous.
I was on a project that was in crunch mode, so I asked if I could start in three or four months (instead of three or four weeks, like they wanted). Apparently, that was such an egregious breach of etiquette on my part that the hiring manager (an engineer) stopped responding to phone calls or email. And it wasn't as if my start date came out of nowhere -- I mentioned the issue during my phone interview, during my onsite interview, and on the form they sent me where they wanted me to list my availability.
I have a friend who just accepted a position at Google, and she said the process was long and arduous, but it wasn't a horror story.
At that point, I contacted his boss, who thanked me for "letting her know". A few days later I got a call from my new recruiter, who was going on vacation the following day for two weeks. I didn't end up getting placed with a team until about three weeks later.
It's not exactly a horror story, but it wasn't a great first impression either. Other engineers I talked to had similar stories.
The hiring committee is Google's answer to that. The idea is to completely divorce the hiring decision from people who have personally known the candidate. Instead, there's a very broad written information channel between interviewers, references, recruiters, and the hiring committee. But it remains written, so that all your unconscious biases about people stay out of the decision, and at least in theory, it's all based on hard data.
The HC appears to serve only as a layer of noise/a random selection filter to determine who is actually offered a job.
As long as the decision is made by humans, you will never get a completely unbiased result, because humans have biases. It's the same in every field - people pretend science is objective because it relies on data, but if you read Kuhn, you'll see that a lot of science is personality cults and subjective opinions and schools of thought. People pretend Google's search algorithms are objective because they rely strictly on numbers and data, but they're written by humans, and humans choose which data is important.
But that doesn't make the data useless. The act of being forced to support your opinions with data makes you dig much deeper into them, and surfaces relevant information that'd otherwise be ignored immediately because it doesn't fit your preconceptions.
Think about science vs. polemics. If you're actually doing original research in a scientific field, you'll realize that there's a lot of uncertainty hidden behind "the scientific consensus", and a lot of other ways of interpreting that same data. But that doesn't mean that the scientific consensus is wrong. It may be wrong, but it's probably less wrong than whatever vitriol Ann Coulter or Glenn Beck or Michael Moore is spouting at the moment.
Impossible. The interviewers, just like us, are human. They come with a bunch of built-in biases that will show through in any contact they have with the hiring committee, whether it's verbal or written.
I just don't see your "theory" holding up in reality.
And I don't see this as a bad thing. As someone making a hiring decision, I want the emotion. I want to personally talk to the interviewer and get full impression of what they thought of the candidate. You're not going to get that through an email. Technical competence is only one part of the equation. If one of this person's potential teammates doesn't feel good about the prospect of working with the candidate, I want to know that.
Of course, Google has this ridiculous idea that they can hire people and only later decide what they'll be working on and which team they'll be working in. So you end up hiring people who don't even meet their team until after they start. I just can't imagine working for a company like that -- from the perspective of the existing employee, even.
Culture fit is one of the dimensions that candidates are evaluated on. But again, feedback needs to have supporting data. If you didn't like a candidate, you have to say "Didn't have a firm handshake" vs. "Appeared combative and arrogant when faced with a problem he couldn't solve; said 'Google's interview process is a bunch of technical trivia bullshit' before stomping out of the room", so that the hiring committee can judge whether this is just a nit specific to the interviewer or an actual problem that will impact the candidate's prospective teammates.
The reason why new hires don't know their teams is because of Google's corporate secrecy policies: most of the time, the projects they're working on haven't launched, and therefore can't be talked about outside the company. Even then, there are exceptions. When I was hired, I was told which department I'd be working in before I signed my offer letter, who my manager and his manager were, and was given the option of working elsewhere in the company if I really disliked that. My teammate actually negotiated the specific project he'd be working on, and they created the project for him. You need to have negotiating leverage to do this, though: they not only have to want you enough for you to get hired, they have to want you more than the vast majority of other hires, enough that they're willing to bend the rules a bit.
The recruiting/interview process at Google has a lot of problems, but I don't think that either the interviewer/HC split or the whole-company teams-later approach are part of them. Both of these were created to solve specific problems that have crept into the hiring practices of other big companies, and by and large, do a better job at it than the alternatives.
A company does not have to guard against 'bias' other than racial, religious and that sort of thing. 'Bias' towards (or against) people you know is called knowledge.
I had an awesome hiring experience. Extremely responsive recruiter (I understand that's not always the case given the number of temps). Took me two weeks from on site to getting an offer. Everyone I referred so far had a similar experience.
That information is well above your classification level, citizen.
Are you a communist?
To be fair, I definitely believe all of these horror stories are true and deserved. I think that Google just operates at such a ridiculous scale that it's hard to get everything working together just right. I believe "the system works" in the majority case, but that outliers are particularly bad.
A better approach would be to vet me thoroughly before contacting me. In other words, only contact me if you're sure that you can at least put me through a single interview.
Getting a rejection after that (and all the psychological baggage that comes with a company "rejecting you") makes it a bitter loss.
Same process (just as broken), but the outcome is hugely influential.
I think you're spot on, tho -- the squeaky wheel is the one that complains to internet forums.
I left about six months ago, and while there were things I didn't like about the hiring and interview process, it was still significantly better than any other place I've worked.
But I wouldn't call the process significantly better than anywhere else. I've had plenty of other interviews on par with that, some better, some worse.
From the viewpoint of interviewer and hirer rather than interviewee, I thought the process was better than anywhere else I've worked.
I liked the expected level of rigor, I liked the decisions being made by a separate committee, and I liked the salary package being set by yet another group.
The main problems I saw were: * recruiters dropping the contact chain with the candidate * interviewers not preparing enough * not enough of a feedback cycle to interviewers about their performance.
A week later I sent an email asking "how long is the usual turn-around time on this?" Google's HR person said she would let me know by the end of the day, and that was that last I ever heard from her. All further communications were black-holed. I suppose I was unusually lucky to get that last message.
Maybe you all just weren't good enough. That's OK, not everybody is the creme-a-la-creme. Look at Google's market cap and Android and Chrome's growth (not to mention their dominance in search and advertising)... Google doesn't need you, and that's why they didn't hire you.
You can cry a river about how Google is "failing" because they didn't hire you... but I think their shareholders (who Google makes very rich) would laugh right in your face and be glad that they didn't hire a whiner like you.
Yeah, I don't badmouth my employer in public either.
Google's main problems are not in hiring more people... it is in putting the (extremely high calibre) employees that they already have to work on concise and appropriate projects that will advance the future of the company in the right direction. Google needs to focus on its management decisions and project creation / execution strategy much more heavily that it needs to focus on the hurt feelings of coders who didn't have what it takes to get in the door.
Google's main problems are not in hiring more people
There's also some incentive for them to get good people before the competition does. It's not like they can't afford the salaries.Google's hiring practices are simply a reflection of the type of people that they have to hire in order to be successful as the organization that they are: By engineers, for engineers, of engineers.
There are plenty of other (GREAT) companies out there to work for if you don't like the way Google does business or hires for that matter. The only reason people are whining is that they know exactly how AMAZING it is if you are lucky enough to work at Google (great pay, benefits, food, massages, etc, etc, etc)... and they are embittered by the fact that Google said they weren't good enough.
Rejection is always painful... but its best to take your dignity with you and move on when it doesn't go your way.
OTOH, there is different spectrum of people in every big company - so maybe there are beasts sitting in the caves somewhere that bite everyone passing by too close :-).
You're right in one thing - one should not put the emotions into the process. A little research of past experiences reveals makes this very obvious.
Treat the whole process like a light cocktail-party flirt, and there's no disappointment afterwards. It's a free tour to the $interview_destination_of_choice, after all :-)
Engineers also prefer data to hokey stereotypes and sweeping generalities. Got some?
I actually dread the day I choose to switch jobs and have to face another technical interview - considering that my knowledge of college-level CS has declined over time. It's not because I am less skilled now than I was before, it's because you don't have to constantly create fantastically fast algorithms on a daily basis (at least in my job!).
The skills that I have developed over the past 6 years - designing complex components that interact with other complex components in a hugely complex product, making improvements in the design of a 20 year old codebase, deciding between fixing a bug and compatibility etc., intuition about design choices and how they fit in the product, and yes, debugging (!) - none of these are covered in technical interviews these days.
Sure, I could explain how a b-tree works - but that's not going to help me resolve my next bug.
It would be funny to bring an Android phone to a Google interview and then proceed to Google answers for questions they ask like this to point out how outdated the question is.
If it's anything like interviews at my company, we just aren't really trained on how to interview, so these questions come up because the interviewer may not know what to ask aside from things like this, and their last interview experience may have been when looking for a job straight out of college when this was all they really knew about, so this is what interviewers asked them about. In a way those questions may just be "what you're supposed to ask someone in a CS related interview".
EDIT: now 8 upvotes...??
I know someone who recently interviewed with Google and he told me about the algorithms question he "got wrong." After he came up with a simple solution to a simple problem, the interviewer told him the better, googley-er algorithm, which was: a) far more complex and difficult to implement, b) had far more corner cases that would need unit tests, c) had more overhead in the expected case, but d) technically had a better big-O in the (extreme) worst case.
In other words, the interview was screening for people who have been to school but haven't ever built anything.
As a counterpoint to the HR horror stories: my recruiter was a friendly woman who always responded quickly and politely. No complaints here.
As a contrast to that, at MSFT, we had full-time recruiting staff generally split into college and experienced recruiting (there are some extra bits not important to this). The experienced recruiting staff was assigned to divisions and worked for usually a couple of years at a time sourcing candidates specially suited to their area. The college recruiters carefully handle and ensure that only one person is in charge of each candidate, they're marshalled through all the steps, know when they'll hear what piece of info back, and are absolutely brutal with us hiring managers about making timely decisions (not that we ever drag our feet <grin>).
While working at MSFT, I was contacted several times by different Google recruiters. Each time, I was left sort of half-indifferent e-mails or voicemails, which I was informed was the desired style of contact. I'd fire them off to my sourcing manager to forward around the recruiting org for a good laugh and jokes about where these people had been before (it's a small industry, and they often would point out ex-Cisco recruiting washouts, etc.).
That said, you can certainly go far on name alone for your recruiting, especially when your options are expected to pay out well. But it's unfortunate to have to try to build teams despite your recruiting efforts. I'd hate to have been a hiring manager there.
After a while, I responded by asking who had referred me. He answered: "Referrals are confidential, but this person knows you from your days at <proceeds to list out my LinkedIn>."
Awful. Plus I'm a shitty programmer.
I really see it as strange that I never got a call back. (Maybe it's not over yet, it's only been a few weeks.)
Google reached out to me, unsolicited, for a web developer position. I wasn't looking, but I thought cool, I'll at least talk to them. The recruiter kept asking me about how good my Java was. I repeated what it said on my resume, that I only used it in college, but that my OO skills were strong and transferable. Afterwards the recruiter emailed me, and said I wasn't a good fit because I didn't have enough Java experience. I didn't even get a technical phone screen.
Java experience is serious business.
Having been through a real interview (where the interviewer went through my resume before the interview and prepared real thoughtful questions that would only be known if you actually worked on the language), I took that offer and now interview others more intelligently.
Reminds me of a phone-interview I had with Adobe for a Python job. The guy at the other end of the line asks me to sort of implement an algorithm, on the phone, I ended up solving his problem using a dictionary, getting its keys and then sorting it. That of course wasn't what the guy wanted, but it solved the problem.
Funny thing is, I had a call from one of their recruiters today. A couple times previously somebody contacted me by email and I said "sure, call me", and didn't hear from them. But this guy was out of the blue and from a different office and had a different approach to it.
The message was that things are different at Google and they at least from his office's perspective, they treat each recruitment uniquely.
My take away is that Google is a big company and you'll get different experiences depending on how you enter the HR process (college grad applicant, versus sought after name). The OP in this case is doing a lot of generalization.
Really? I'd love to know what they did with that data. It seems almost completely useless except to say "Tim does not know any Javascript, indicated by his zero score on that."
Though if you say that you are a 10 but perform at a 5, then who knows, it could affect you negatively as my expectations are set high at that point! :)
In my Google interviews, they made it clear I should just name a language I know to solve the problems on the white board, not because they particularly cared about the language, but because they wanted to see my thought process solving a problem in a real programming language. Of course, it had to be one of Google's "approved" languages, but I just thought that was so they could assign an interviewer who could assess the quality of the solution.
When did they start caring about "X years experience in language Y" just like all the ignorant technology recruiters out there?
Theres also the whole theory about what languages you know indicates what kind of person you are. Even if you are looking for a Java programmer, the guy who took the time to learn languages that weren't required in their class indicates they have drive to learn on their own. Obviously it's not a perfect metric, but it's not unreasonable to use it as an indicator. I'm sure they didn't come up with that question just for him, and I don't think its too unreasonable of a question as long as they don't weigh it too heavily.
Not a fan of that indicator. I actually know quite a few mega-polyglots. They learn every langugage they can find. But I also know people who know a couple of languages pretty well, but spend their time learning other things. In my spare I rarely want to learn a new language. I'm much more interested in, how did this app solve problem XYZ. I spend a lot of time digging through code that solves problems. In some cases I have to learn a language to learn a solution, but I rarely just grab a book on esoteric language Z, but I know people who do.
If you ran the NY Times would you hire people based on how many languages they spoke? It might be interesting, if that's their thing, but in general its no more useful than asking someone to rate themselves on how many operating systems they know well, how many different kinds of mice they've used, or how many text editors they're familiar with.
Given a list of 14 programming languages, they ask you to rank your best three for the purposes of conducting technical interviews.
Perhaps the lack of a "Google standard" enables eager developers to create amazing new products, like Gmail.
You can also keep launching amazing products with a recruiting process that makes sense, and doesn't analyze the guy with semi-random stupid questions.
People constantly using "guy" and "programmer"/"computer scientist" interchangeably might be part of the reason why so many women avoid computer science.
It is easy to conclude preconceived notions.
I wasn't impressed with their process the first time, but the second time (2 years later) was a lot better.
In all seriousness, there may be some issues with their hiring process, but I think the Google hiring practices would best be analyzed by using the aggregated data, rather than the trickle of anecdotes we tend to hear about in public. Even if Google got their hiring right 99.9 percent of the time, there would be hundreds of people, if not thousands, who were perfect for the job, and still didn't get hired.
For example, people just being dropped from contact with Google for no given reason (not as in, "We don't want you," but as in... they just never heard from them again).
They tend to err on the false negative side.
He went through 3 rounds of "hiring committees".
3 different committees to make a developer hire is obviously broken. The ability to evaluate culture and skill fit should be possible with a hiring manager and a few prospective peers.
After your phone interview with an engineer, you go in for your on site interview and talk to at least 4 people, both managers and engineers. They each write up their impressions of you without discussion between them. They pass their impressions on to a hiring board that reviews those, your resume, and what positions are open.
That board passes the recommendation onto a final board who I suspect is largely a financial gatekeeper, just to approve stock grants and controls company-wide hiring rates and company wide strategy.
Local hiring committee, regional hiring committee, HQ hiring committee then final sign-off by Larry himself.
Disclaimer, I worked at Google for 4 years ('06 - '10) and interviewed a lot of folks (it was always a part of the job) and did a number of phone interviews too.
The process then (as perhaps now) was broken and some folks within Google understood that. The process and goals were pretty simple, hire smart people that get things done.
The process was aimed at finding smart people who get things done. That, like the phrase "largest integer" is easy to say and rolls off the lips but when you need to actually write out what it means gets a bit squirrely.
The first challenge is what does "get things done" mean? Well for college students it means you got your diploma and at the same time you contributed to some FOSS project. For people with 0 - 5 years experience it means you shipped a product where you did most of the coding. For people with 5 - 15 years experience it means you shipped a product where you did most of the coding. For people with 15 to 25 years experience it means you shipped a product where you did most of the coding.
Did you see what I did there? Google wanted smart people but the definition of smart was "you write a lot of code" and "get things done" was "that code shipped in the product/project." Fundamentally they didn't have any way to judge or evaluate the 'goodness' of what someone did if it wasn't writing code. Designers don't write a lot of code and they don't generally have a good metric for what constitutes good which can be empirically tested. The process has a hard time accomodating that. And if you're "good" at spotting problems in a process or getting folks organized around some better way of doing things? That's not measurable either.
There was a company, BASF, a chemical company which had an advertising campaign around the fact that they were part of the process and materials that made quality products, their tag line was "We don't make the products you buy, we make them better." [1] And I noted that Google was exceptionally bad at hiring "BASF" people, which is to say people who bring the quality of other work up, or products up, or processes up.
The people who did those roles in Google all started out as coders and that is how they got hired. It was only after they were working there that they (and Google) discovered they had this leveraging effect.
In order to keep bias out of the process, Google isolates the steps where bias can creep in; separated the folks who decided hire / no-hire from the folks who decided on compensation; the folks who decide to hire and the folks who decide which project they work for. For all my time there, you could not interview for a specific job, you interviewed to get 'in' and then your name showed up on a list and the allocation process would determine which project got you.
Often a candidate would ask during the interview "What would I be working on?" the only truthful answer was "That is impossible to say."
Before you even get to that point though you get into "the system." Since Google keeps a record of everyone they have interviewed or has shown up as a lead and not interviewed. There is a long, long list of people (I once joked that it was everyone in the market). If you are an employee and you might know that person, common employer, common university, etc. The system could automatically send you an email asking for your opinion on the candidate.
This isn't really any different than any other company, person X shows up in the candidate list, people who work at the company who worked at person X's company are asked if they knew this person when they were there. But it can have unintended consequences.
Lets say there is a person X, who gets hired, from company Y, and person X really didn't fit in at Y and felt really abused by the company. Now new candidates from Y generate an email to X with the standard "You worked at Y when candidate Z did etc etc." Now person X is still pissed off about how Y treated them and so they respond to all of those emails with "Yeah, candidate Z was a crappy engineer, everyone had to carry for them they never did anything useful." Maybe someone else from Y says "candidate Z was great, everyone turned to them for advice." The process of separating the interviewers from the decisions means that this feedback bubbles up all equally weighted. Hard to know that employee X has said the same thing about every candidate that has come from Y, and if the committee sees two comments one positive and one negative and there isn't anyone on the committee who knows any different then how do you evaluate?
The simplest solution if either has an equal probability of being the 'correct' assesment is that you pass on them because you can't know if you have bad data. And that was a part of the process that was fundamentally broken.
Because Google gets a metric crap load of resumes and candidates all the time, passing on someone who is +1/-1 like that makes sense because you can't know which of the two feedback comments more accurately reflects the real candidate behavior. The result is that hiring someone with a grudge can poision the feedback pool for a bunch of possible hires. If you weren't Google and didn't have this huge backlog of candidates, you might dig deeper to find out which one was the more accurate representation, but if you are Google you just move on. Externally that sometimes appears that you just stop answering the phone.
It also means that you miss out on quality people who would be good for the company and ultimately Google will have to find a way to address that issue (if they haven't already) because they are running out of people to interview.
As with most things Google, you combine a data-driven, automata friendly process with fuzzy data and alternate agenda actors, at the scale Google runs at, and you get lots of weird artifacts.
I joined another compnay after that and did quit the job 3 months later to start my own company. If I would have joined google, I might have never done this if I would be for google. Who knows. I couldn't be happier today. And I'm probably as biased in the interviews today ("get things done"), as google was when they were interviewing me.
(BTW, your internal epitaph was posted as requested. Hope things are well with you...)
This is the same way some have argued elections are broken: you don't end up with the best people, you end up with the least-bad people. Since people aren't one-dimensional, those are very different concepts. Least-bad involves very little risk; you eliminate everyone who displays any risk factors at all. You also necessarily eliminate creative geniuses with a spotty record.
Another beef I have with Google is the sorta half-assedness of some of their products. They seem to release things early to get them out there, which isn't necessary a bad thing but now I've started to realize this it's soured me to using some of their api's and products
(1) I had a deadline to accept/deny with another company, and I told Google the deadline. Google asked me to get an extension, so they'd have more time to interview me. I got the extension (the other company wasn't delighted to give it to me, and I was embarassed to ask, but I did it anyway). I told Google. Then, Google never scheduled the interview for me, and I ended up just having to accept with the other company. I wrote Google to tell them I had accepted with the other company on that company's deadline, and they acknowledged my email, but did not offer an apology or explanation for making me get an extension and then not actually scheduling an interview.
(2) The process they used for me and my colleagues (grad students) was to have PhD engineers interview us as an initial filter, then to have HR people actually place us in groups. This placement process seemed pretty abysmal, for me and for everyone else. Which isn't surprising. The HR people aren't qualified to understand a student's area of research, expertise, and interest, and match them to groups. I would imagine their level of insight, as non-hackers, is basically "This student like Python, this group needs Python." In order to do this right, they need people who can actually understand the students' research and skills and the groups' needs at a much more fine-grained level.
(3) The sort-of-rudeness I experienced with HR described in #1 happened to more of my colleagues than not (in various forms). Honestly, I wonder if the HR people are just super over-worked.
Anyway, not long after this Google very publicly announced that Sergey was taking over as CEO and shaking things up to try to return the company to its roots. I was surprised by how "un-Googly" the whole recruiting process was, and I guess the company has really been struggling to maintain its culture across the board. I consider the experiences I described above to be one likely symptom/manifestation of this.
Overall I'd say I saw a combination of big company bureaucracy problems, with a "holier-than-thou" pretentious attitude that seems to allow rudeness to creep in. Their attitude is, "We know you'd die to work for us," which is just so untrue, and it'll be very hard for them to ever recruit me in the future after this experience.
Maybe Google has gone from "Don't be evil" to "Evil, but unlike other companies, we still act like can can do no wrong."
My experience so far has been very different. I was contacted by a recruiter a few weeks ago. I had a phone interview within a week of the initial contact. Within three days, they got back to me to schedule an onsite interview.
The one negative I've encountered so far: Google has an office near where I live, but will not interview me there. This will require significant travel on my part.
Not a lot of drama in this story.
The real way in which their process seems broken is the wildly different experiences people have seemingly at random, depending on who their arbitrarily assigned recruiter is. When I interviewed I had none of this weird "rate yourself" questions, and a mostly positive experience. But it seems like if I had randomly been assigned a different recruiter, or someone tried to fit me into a different bucket, I would have had a wildly different experience. How can you compare candidates evenly when their experiences seem so randomly different?
This summer, I decided I wanted to return to work at Google again, but I had a specific project in mind I wanted to work on. I filled out a form stating my project interests (which were very specific this time around), but no recruiter reached out to me. I talked to one of my colleagues at Google from the previous summer, he talked to HR or something, and I got a new recruiter. Then I went through five host interviews in three days, picked my favorite, and that was that.
So in my experience, the hiring process at Google isn't that bad. It's just that if you have a delay that's too long, you need to follow up.
Please read some of the comments and anecdotes here a little more closely. A lot of people (including myself) followed up on the silence, often in multiple ways, and still got absolutely no response.
Life for their recruitment folks is probably fairly interesting these days.
This seems mostly like a standard recipe for baiting traffic from HN to a blog: make up a sweeping generalization about a company people are deeply interested in (e.g. Google, Apple, Microsoft, Facebook, Twitter) based on a very limited data set, put that in your headline, then have your article talk about how much better your company is at XYZ by comparison. It's the HN version of the humblebrag tweet.
I do think that Google puts too much accent on algorithms and college-level CS. I consider myself a good programmer. I created two moderately successful Micro ISVs in my free time. I contributed a huge chunk to the product at my corporate job. I get things done. However I felt that this is not what Google looks for even if the say they do.
Reminds me of working at MS as a designer. It's challenging for an engineering-focused company to suddenly try to integrate design into their products--especially one so focused on metrics. This often leads to "duct-tape design" instead of a clear unified design. User testing no longer validates design, but completely drives it. E.g., because our study found that users clicked more buttons when they are bright red and blinking in their faces, let's make all buttons blink red! Brilliant? No.
I'd agree that the hiring process may be broken, but that these companies don't completely realize it. I have no problem with the intensely rigorous emphasis on CS (and math, sometimes), but I've been on these interviews and realized that (after seven hours of interviewing) we still haven't discussed what the company actually does.
Here's the thing - when you're interviewing a very experienced candidate, the candidate may know more than you do about how to write the software. They may know things you haven't even thought to ask about. This isn't a reason to skip the technical grilling, that's a critical background. My problem is that these companies heap it on and on and on, and then they make an offer based on compensation for someone who can survive a technical grilling.
What if this candidate has experience writing software in your domain? What if the candidate has a deep understanding of the business space and knows a lot about what those customers are looking for? What it there's a completely different approach that you haven't even considered?
A candidate like that is, quite frankly, probably worth much more than someone with a strong theory background but no real domain knowledge (though I would still hire that guy). So I suspect that these interviews are good at establishing a high bar, but aren't so good at identifying certain types of developers who could be absolute game changers for the company.
Ironically, the only time a company did do this for me, I didn't get the offer ;) It was at netflix, and (after the obligatory data structures grilling), they talked to me about all their data mining needs. I told them I didn't have much of a data mining background, but discussed how they might approach these problems a completely different way.
A few days later: thanks but no thanks, they wanted a data miner. Oh well ;) Still, it was one of the best interviews I've been on, actually fun and energetic. And I felt that if they'd made me an offer, they'd know why.
This is what may be missing from a lot of these interview processes, which is why they may be "broken" in the sense that they don't really get at why you'd want to hire a specific person, beyond the fact that he cleared a high technical bar.
And I reached the same conclusion - Google doesn't focus on users and thus completely misses the mark. They focus on engineers but not designers or market researchers.
This is why, I think, App Engine will be a huge success and why Wave failed. It was an excellent product, IMO, but it wasn't built with a particular user in mind.
Good lord do I agree. At a certain level, you just have to trust your gut.
Oh well, there's plenty of other companies who were happy to talk to me.
Google's Hammer is its (admittedly great) expertise at Algorithmically solving Hard Webscale Data Problems. Unfortunately some problems cannot be solved by the Hammer of Algorithms - Social Products is one of them and Great UI is another. Think about any Google Product (Search, Maps, Youtube, Groups,..) that is the very best in either of these two areas.
Panda? Still a freaking mess
Oh, 7 years after FB Google wants to get in the action.
I eventually received a job offer, but by that point, I wasn't interested.
Anyways, the details of my story are in that blog post.
The other reason the hiring process is broken is because it's totally backwards. The hiring process doesn't indicate any appreciation of talent. Talent in this industry consists of wanna-be rockstars. Talent wants the company to say "Hey, you're great. We want you. What's it going to take to get you here?" Google's approach, like many other companies, is "Go online, email us a resume, and we'll get back to you whenever we feel like it." Most people with talent are going to say "Forget that. You got it backwards. You need me more than I need you."
To put it in perspective, think of how professional sports teams recruit college athletes. The professional teams do every damn thing they can to get college athletes to agree to join the team. They send out recruiters that pay for meals, make the candidates feel special, and everything else to make the talent feel appreciated. That's how you recruit talent. Taking the approach of "Go online, do our rinky-dink job shopping cart thing, email us a resume, and we'll get back to you when we feel like it" doesn't attract talent and never will.
Still, though, that "job shopping cart" thing is lame. As somebody that's actually tried it, having to look all around the site and find a specific job just doesn't work. In simple terms, it would be better for Google to have a form that says "Tell us everything you know", let people just write everything they know and submit it, and then let Google match the skills up with a set of jobs that might be a good fit for the candidate.
I was essentially unable to reply for anything other than "Software Engineer Intern". They took my resume, and a cover letter (which I am fairly sure was never read.) I then had two telephone interviews, after which I received an email asking me to choose two interests from a list of about two dozen (which was not an easy task!). From there, I was placed in a "pool" of possible candidates, and I believe that teams from within Google would browse through the pool and find a candidate they liked. Myself, I was in the pool for two and a half months, and had pretty much given up on getting anything when I suddenly heard back that I had a place.
So, it might be different for "real" jobs with them, but in the case of my internship they did exactly a skill-set matching (in a way), and there was no "job cart".