
How I (almost) got an internship at Google - ehc
http://ecarmi.org/writing/google-internship/
======
elbenshira
My story: After my technical phone interviews, I got "accepted" as an intern,
meaning I was in the Intern Pool of Rot, where I waded and waited for a team
to fish me out. I waded and waded for a couple of months, hoping for a kind
suitor. The HR woman always told me that she was "optimistic" about my
prospects, so I rejected offers from other companies.

Then a really cool opportunity came, and I accepted that offer because you
can't just sit in a rotting pool for two months.

A friend of mine stayed in the rotting pool and was told at the beginning of
summer that no one at Google wanted him.

This was 2009-2010. I hope Google changed their ways.

~~~
renaudb
Same here. Twice in a row.

First time, I was told a manager would call me to explain me which team I was
being matched with. I received the call to tell me I had an offer... two days
after the deadline set by the University. And it is not like this deadline is
unknown to employers.

Second time, again, I received an offer. This time, I had to call, one week
before the deadline, after two weeks of hearing nothing from them. Two
students in my class were in the same situation, one had to send a hate mail
to finally get a reply. The other one got one only after the deadline.

To be honest, this really isn't the best way to go about it. Makes you fell
like crap as an intern. I interned at fairly large and well known tech
companies in the past (Facebook, heading to Bloomberg this Summer) and got
offers from many more (Amazon, Microsoft, Zynga, EA, etc.) and my worst
experiences were always with Google. As a freshman, Google looked like the
dream internship, the company to aim for. Four internships later, it is now
pretty low on my list.

Definitely not impressed by their recruitment process. And this all happened
in the past 12 months.

~~~
jlees
_And it is not like this deadline is unknown to employers._

Sadly the recruiter who knows this deadline and the managers who have "Look
for suitable interns" as one of very many todo list items are not one and the
same.

I did an internship at Microsoft and now work at Google; the MS internship
hiring process (in 2002) was awesome and very, very fast. Your comments about
Google's relative standing are definitely interesting and clearly not an
anomaly, the issue is fixing them =)

~~~
endtime
>Your comments about Google's relative standing are definitely interesting and
clearly not an anomaly, the issue is fixing them =)

Why is that an issue? I know from experience that Amazon and Microsoft have
the problem pretty much solved. Just do what they do.

------
Udo
I expected better from a company like Google. Asking candidates for pre-canned
code snippets to cutesy little CS problems on the whiteboard is miserable and
the outcome depends too much on what the candidate studied in the last few
weeks before the interview. It actually tells you very little about the kind
of programmer a person is and the interview itself can get quite horrible on a
personal level very fast.

A while ago, I used to conduct job interviews like this. Sort this, insert
that, search for the other. I still feel sorry for some of the candidates I
did this to. That process was the largest single mistake I made when hiring
people. I should instead have asked for the code of some projects they had
been working on recently and maybe discussed a few more creative things with
them.

In fact, if I could ask a candidate just one question, it would be "what
projects are you working on in your spare time?"

~~~
PatrickTulskie
If someone isn't working on something in their spare time, it's a big red flag
to me. You need to have the hunger. I'm more turned on by what you have in
your github account than whether or not you can do a binary search in your
choice of languages.

~~~
kenjackson
In my spare time I'm working on making the next million for my company. Oh,
when I'm not working for my company? I'm with my family or friends.

I feel like the energy I could spend doing a side project is probably better
spent getting these last two features in, or fixing those lingering bugs, or
getting that automation solid, etc....

It seems really odd to actually penalize someone who leaves it all on the
floor. It's like a basketball player saying, "If you really want to see my
skills, come to the park. The NBA is just my paycheck." -- is that the guy you
want on your team? The guy who will tell his next employer, "Company XYZ paid
the bills, but my real cool work is this GitHub project I did on the side".

~~~
famousactress
_is that the guy you want on your team? The guy who will tell his next
employer, "Company XYZ paid the bills, but my real cool work is this GitHub
project I did on the side"_

I'll bite. Yeah. I want that guy. I want that guy because he's got energy and
enthusiasm to burn, and I'm confident I can give him a place to use it..
Additionally, we'd love to see more open source projects come out of what
we're working on..

 _I feel like the energy I could spend doing a side project is probably better
spent getting these last two features in, or fixing those lingering bugs, or
getting that automation solid, etc...._

Awesome, if this was how it works, but it's not. The people that get itchy
enough to bang out these projects on the side _need_ to keep building stuff.
Great stuff. I burn out on bug fixes, and automation.. and sometimes I feel
like working on something different, so I bang on a new cache library for
Django, or write something a little tangential to what we're currently
iterating on. In my case, I'm really stoked with all of the problems we have
that need doing, so none of my 'side-projects' are totally sideways to the
values of our company... but lots of them aren't exactly high priorities :)

~~~
kenjackson
_Awesome, if this was how it works, but it's not. The people that get itchy
enough to bang out these projects on the side need to keep building stuff.
Great stuff. I burn out on bug fixes, and automation._

This actually might the crux of the difference. While we have an open
moonlighting policy the people that work here are a lot more likely to use the
extra coding energy on something directly related to the priorities we have.
There's no shortage of things to do. And t's not like you spend three straight
weeks fixing bugs -- there's plenty of diversity in things that we need to in
the business -- and I suspect most companies I'd want to work at are similar.

And again, I'm not necessarily against side projects. But it seems like an odd
way to measure a potential employees passion to the job. It does seem like a
great way to measure their passion for side projects, but we generally aren't
hiring people explicitly to work on side projects. It seems like a much better
way to measure their _job_ passion is to see what they actually did at their
job -- look at what they shipped.

If they shipped a crap product, but had a cool side project, what is that
really saying? If anything its telling you to NOT hire them, but to get them
interested in your product on the side! :-)

------
larsberg
Many candidates wrongly assume they failed to get a position because they got
a question wrong. Unless the question was trivial (i.e. what is the height of
a tree?), most of the time these questions are intended to see how well you
can carefully think through, create, clarify, and debug your code.

For example, when I was reading your writeup as a former interviewer (lots and
lots of college candidates for MSFT -- I was a dev manager and did both my own
hiring and was flown to colleges for those "interview days" for several
years), I was far more worried that you had trouble finding the bug in binary
search than that you got it wrong. Everyone gets problems wrong the first time
unless they have just implemented them recently. Superior candidates are good
at rapidly trying good normal and edge cases, hammering out a good solution,
and writing inspired code when given hints at how to improve their solutions.

~~~
enjalot
I'm almost certain this is why I failed my phone interview. It wasn't that I
implemented an inefficient sort right away, its that I didn't talk about
how/why it was and what I could do about it with more time.

I really don't like the idea of solving contrived puzzles, but I'll never make
the mistake of keeping my thought process hidden again.

~~~
larsberg
If you can, track down somebody who has done a lot of these interviews before
to give you a test one and some feedback. I do that for the undergraduates at
our school (I went back for my Ph.D. after retiring from MSFT), and they claim
it has helped them prepare.

I don't claim any responsibility for their success, though! The University of
Chicago undergrads are a hard-working bunch. Much more so than when I was an
undergrad :-)

------
marvin
I wouldn't bother applying. Why the hell would you want to work a company that
runs you through the gauntlet like this, only to give you the chance that
_maybe_ you'll get hired? I mean, this is obviously a really skilled guy who
has lots of prospects.

Why are Google so popular anyway? I genuinely don't get it and would love to
know from someone who has specific knowledge. Do they pay better than everyone
else? Work on more interesting problems? Better perks, work environment, more
status? I can understand it from the perspective of someone who joined years
ago, when you got stock options and didn't have to do a full circus
performance in order to get in, but not any longer.

The experience would have to be twice as good as the alternatives before I
willingly submitted to this kind of process. A long process of interviews like
the ones I have heard about hints at more pain and no autonomy once you
actually join.

For an _internship_? If you're turning down other offers for the _chance_ to
work at Google, you're selling yourself short and not getting full market
value.

~~~
jrockway
_Why the hell would you want to work a company that runs you through the
gauntlet like this, only to give you the chance that maybe you'll get hired? I
mean, this is obviously a really skilled guy who has lots of prospects._

Because at this point in your career, you have no degree, no experience, and
no income? He's a sophomore in college, not someone with 30 years of industry
experience.

In my experience, though, I would make someone with 30 years of industry
experience answer the same questions. Because I've asked people like that
those questions and they have absolutely no fucking idea. The number of people
that can start with a blank file and start writing a computer program is
probably somewhere around 5% of programmers.

~~~
binxbolling
> The number of people that can start with a blank file and start writing a
> computer program is probably somewhere around 5% of programmers.

What?! There's no way this is true... is there?

~~~
damncabbage
I'd wager it's more "5% of people currently interviewing for jobs" than 5% of
all programmers.

(Joel puts it well in this article:
<http://www.joelonsoftware.com/items/2005/01/27.html> )

------
rdtsc
I hate little programming puzzles that you have code by hand or little word
problems, or trick questions that you have to think "out of the box".

In many years of programming I don't remember having to write a binary search
in C, by hand, in a text document, without being able to compile and test. Or
having to dictate a Python program over the phone to someone.

I certainly do not remember ever having to solve stuff like:"One train leaves
Los Angeles at 15mph heading for New York. Another train leaves from New York
at 20mph heading for Los Angeles on the same track. If a bird, flying at
25mph, leaves from Los Angeles at the same time as the train and flies back
and forth between the two trains until they collide, how far will the bird
have traveled?" NEVER.

I had to implement & modify algorithms from scientific papers, I had to work
with complicated lockless versions of data structures, but I probably couldn't
write the binary tree search in C over the phone. If that's that Google uses
to hire then I will never work at Google.

EDIT: Alright, got a angry and used the 'fuck' a little too much.

~~~
mdwrigh2
So, to be fair to Google, I was not once asked anything like the train
question nor was I asked to write a binary search in C then to read it out
over the phone. I did implement a few things in Google docs, which is kind of
ugly, but it wasn't anything ridiculous, and most of the functions were fairly
short (20-30 lines).

They did, however, ask a whole bunch of conceptual questions, but I don't
think this is all that surprising.

~~~
Lewisham
I'm an intern right now. Just today I saw Neil Fraser [1], who wrote MobWrite
[2]. I shook his hand and thanked him, he's probably one of the reasons I
actually managed to pass! My third phone interview had code in MobWrite, not
Google Docs, and it was _so much better_.

I'm going to try to find a way to feed it back to HR, because it really is
much easier to think about code when what you're doing _looks_ like code.

[1] <http://neil.fraser.name> [2] <http://www.mobwrite.net>

~~~
mdwrigh2
That's awesome! I'll have to play with this, and suggest it whenever I hear
the topic of coding interviews come up.

As a side note, if there's any chance of you being in the bay area this summer
(Mtn. View specifically), I'd love to grab lunch with a fellow HNer. I'll be
interning at Google starting early May and know a sum total of 0 people out in
the area. If you're interested and possibly going to be around, my e-mail is
on my profile page.

------
iam
Google's loss is some other company's gain. Apply to places like Facebook or
Microsoft or Amazon instead. Or in your case The New York Times.

Personally I was in between jobs recently, so I sent Google my resume using
their online application site. After about a month, Google still didn't get
back to me -- meanwhile I managed to interview at 6 different places (all the
way) and found a new job.

"I heard nothing for a month and a half" is the key problem I think. It's
going to be very hard for any full time employees that are any good to stay
off the market that long, they'd have to apply to Google before quitting their
last job.

As for interns, I am not overly surprised since you applied in December. At my
school we had the hiring booms in October/November and then again in
March/April (that's when we had the 2 engineering job fairs), so anytime
between that people weren't really finding a new internship (unless it was on
their own).

One last thing, what exactly is a Google spreadsheet beta candidate form? Is
that the same one as the optional Google "survey" where you had to rank your
skills (1-5 or 1-10 was it)?

~~~
ehc
Yes, I just looked at the form again (the link still works) and it asks:
University, Major, GPA, strongest programming language, second programming
language, and preferences for location, and then a five-option part where you
rate yourself out of: Not my thing (none) Can make do (fair) Comfortable
(good) Comes easily (better) World Class (best)

On the following: 1) Applications and Services: this is Google's term for the
software that is directly visible to end users. People who focus on
applications and services typically work on improving our capabilities in a
variety of areas that span the range from new features to increasing
performance and efficiency at Google scale. They will be tasked with devising
and building new approaches to Google's problems, and exploring their
effectiveness.

2) Systems: People who have a systems focus are oriented towards behind-the-
scenes software and systems, often building them from underlying components
and services. Systems work spans from platforms (hardware, OS, networking) to
infrastructure (shared services such as storage, cluster management) and
everything in between.

3) Sys-admin: Our system administrators keep all of Google's systems running,
and help deploy new ones. They deal with issues involving single machines to
those involving huge numbers. They work with native Linux environments, and
Google extensions and services.

4) Verification and Test: Our test teams helps make our systems resilient and
reliable - we put a lot of effort into this. Building world class applications
at world class scales doesn’t happen by accident. It takes insight,
innovation, and precision to verify our systems perform as expected.

------
eel
I was disappointed by my interview process earlier this month for a potential
summer internship at Google. I'm sure part of it is driven by the result (I
didn't get past the phone screens.) My main complaints are

\- Every step of the process involved a new person. Overall, I had to be
handed off through 4 different people, each one wanting a bit more information
or a filled out form, until I was scheduled for the phone interviews. This was
especially confusing when I had a recruiter assigned to me, and I was being
emailed by both her and someone with whom she worked with at the same point in
the process.

\- The first interviewer was apparently a fill-in for the intended one, which
is unfortunate, because he and I were a complete mismatch. He seemed to be a
C/C++ guy and I have more high-level language experience, and we ended up
doing what I would consider advanced bit manipulation / number theory. (The
second interview was much more reasonable, and it is my own fault if I did not
pass it.)

\- The amount of time time that it took from the "Hi, we would like you to
apply online" email to the you are not "a close enough match" email was over a
month, which is much too long for simple back-to-back phone interviews.
Waiting for their responses was the most frustrating and nerve-racking part of
the process. I am glad at least the OP had quick responses.

Should I go through the process again, I would strongly consider asking them
to expedite it in one way or another.

On a more optimistic note, I do feel like the interviews do help highlight
weaknesses in your programming skills and resume presentation skills.

------
bengl3rt
Mirrors my internship experience almost exactly. Three rapid-fire technical
interviews that I thought went quite well, then a "sorry, no dice" email.
Someone else I know just went through the same thing, also for an internship.

Google sure makes a lot of noise about how they are hiring and competing for
talent, but continue to turn away good people for unknown reasons.

~~~
Daniel14
I think Google receives around 20000 resumes per day. If you've got that kind
of interest (and what I've heard, justified interest) you'll have to turn most
people down (ie. >99%). I don't have inside knowledge about the Google hiring
process, but with that many people applying, you're bound to have some false
negatives.

~~~
sh4na
The problem is that they do the exact same thing for people that they reach
out to. Their recruiters go out to mailing lists and linkedin and harvest
emails, then contact those people and offer them positions. If you say yes,
they start you on the exact same anonymous interview process, the interviewers
having no clue that you didn't apply yourself and treating you just like any
other generic wannabe. That's why a lot of the best programmers won't take
offers from Google, they know they're going to be treated like cattle
throughout the whole process by people who have no clue who they are or what
they've done and don't really care to know.

It's important to know that googlers are encouraged internally to do
interviews (for extra cookie points? I don't know :P), they're assigned
randomly to candidates for most of the process, so they're not a part of the
whole process, just a piece of the machinery. No one oversees the interviews
to make sure questions are not repeated and that there's a logical thread from
one to the other (especially the onsite interviews), and you might not even be
asked the questions that are actually relevant for the position they're
considering you for, when you're in the latter stages of the process.

The stories I've heard from the hiring trenches are all pretty much the same.
It's a great company, but their hiring processes are very weird.

~~~
wiredfool
They've contacted me twice, 5 years apart for SRE positions, which aren't
really a great match to my experience. I've never actually applied.

First time, first phone screen, not that bad. Second interview, they push on
bash, and I said, essentially, that I wouldn't use bash, I'd use python. So
much for that process.

Second time, same phone screen, same self evaluate, same damn questions on the
first part. This time, of course, I know the answers to the tricky questions,
because they asked me the same damn questions the last time.

This time though, the process has taken nearly a month for about three calls,
including the one actual phone screen. Nothing more for a couple weeks, then
the "sorry, not gonna happen, and were not going to tell you why".

I'm a little confused. They call me, looking for something that I'm not a good
fit for, again. I do better this time. I'd really like to know if it's me, or
if their ai is just that whacked.

~~~
Lewisham
From my POV, I felt that the phone interviewers for my internship were chosen
arbitrarily (mine were from New York, when I was trying to get a spot in the
Mountain view campus).

The reasoning appears to be that you're either good enough or you're not, and
that it doesn't matter who interviews you for that to be true. However, the
difficulty was really variable: interviewer 1 asked lots and lots of
algorithms questions which I wasn't doing well on, caused him to become
obviously annoyed with me. 2 seemed fairly ambivalent throughout. 3 really
worked with me to try and get answers out of me (even though I was incredibly
nervous).

I don't see why phone screens are not with prospective teams; they're the ones
that will have to deal with you and have the best idea of what skills they
need. Maybe they're trying to avoid people building up little fiefdoms? I
generally came out feeling the way you do (and the way the OP does). It seems
random, and for a company that (rightly) prides itself on the quality of its
data and making data-led decisions, it makes it sting doubly.

------
jbk
I went through the Google process too and it didn't come out nicely.

First, I have had almost no actual CS lessons in my university, because it was
more focused on general engineering and IT management than on code writing.

However, I've done quite a bit of code in various open source projects and
I've touched quite many technologies...

I went through the sets of interviews, and I really seemed to work quite well,
even if many design-patterns where unknown to me (I didn't know their names).
But the last one wasn't the best one.

Therefore, I got the mail telling me that they got no positions for me, which
I understood and accepted easily (I had another engagement at the time).

However, I dared to ask "why?". Was it my technical skills, my personal
skills, my logic skills or the way I answered the process, the cause of my
rejection?

They refused to even discuss about it, which is not even reaching the minimum
of politeness I expect from a company. When they asked if they could keep my
Resume, I told them to go away...

This recruitment process does not seem enough respectful for me and gave me a
very bad opinion of the company.

~~~
wahnfrieden
Some companies refuse to discuss that on principle as a way to protect
themselves from lawsuits. So you shouldn't take that too personally.

~~~
waqf
Since they doubtless treat everyone that way, I guess you're technically
correct that it shouldn't be taken personally.

But the fact that it's only "[s]ome companies" that do that still suggests
that it's rude and unprofessional behavior.

~~~
tedunangst
In my experience, it's not some. It's all.

~~~
jbk
In my experience, Google was the only one.

------
javert
I found this interesting because I went through part of Google's internship
process not too long ago.

If you're just a sophomore, you shouldn't feel bad about not getting an
internship at Google.

Another reason not to "feel bad" about it is that AFAIK the people
interviewing you just take notes, and then other people review those notes to
decide whether or not to take you. So the people you interviewed with weren't
even the ones that made the decision.

Perhaps for the C program, you should have done something simpler than a
binary search, at least to begin with. The way you described it, they didn't
require you to do a binary search.

------
symkat
I've often hated writing implementations of searching and sorting algorithms
with someone looking over my shoulder.

I think it tests specific knowledge of an algorithm more-so than anything
else.

~~~
iam
To be fair, binary search is pretty simple. It's not like he was asked to code
max-flow (e.g. Ford-Fulkerson) off the top of his head.

The problem I'm sure, was being rusty at C, not the algorithm implementation.
I make all kinds of silly mistakes on the whiteboard if it's with a language I
haven't used for a while.

------
l0nwlf
Lucky him, atleast he got to face tech interviews. As for me I never got the
chance to prove myself.

I got my call, was inquired about my projects and current offers by HR and
then got a rejection letter next week. After I inquired, it turned out that my
low GPA [ 7.03/10.0 ] was the cause. They want academically bright freshers
with shining GPAs and with strong CS101 skills.

------
cmansley
This was exactly my experience. Everything from the two technical interviews
with the addition of a third to the technical questions with queries about
bugs in the code. I think 2->3 conversion is exactly what you said. The first
two interviewers split on their opinion of you, so you get scheduled a tie-
breaker interview. Unfortunately for me, the tie-breaker interview was my
worst, partly due to me and partly due to non-existant feedback for 45 minutes
on the part of the interviewer.

But, I believe there is a method to the madness. They have so many qualified
applicants that they would rather err on the side of caution. They would
rather reduce the false-positives even if the number of false-negatives grows.
They can afford this luxury. They want the best and they can afford rejecting
good candidates.

My favorite way of thinking about this was from Steve Yegge's blog post about
the interview process : "Because of the inherently flawed nature of the
interviewing process, it's highly likely that someone on the loop will be
unimpressed with you, even if you are Alan Turing. Especially if you're Alan
Turing, in fact, since it means you obviously don't know C++"

------
baddox
With a process like this (based on this story as well as others), does Google
actually consistently employee competent talent? Obviously Google has landed
some serious rock-star talent, but of the scores of college graduates they
hire for internships or entry-level positions, does anyone know if their
hiring process is working for them?

~~~
sh4na
No.

They employ a lot of people that can write code on boards, and can certainly
churn it out at high velocity. But when you start looking at the actual
code... it's bad. When I first looked at the chrome code, the layer they
dumped on top of webkit to make it out-of-process, the only thing I could
think of was "this looks like something a kid fresh out of college would
cobble up together". Same thing with most of their projects - lack of clear
design, hacks, hard to maintain, lack of standards, no portability. The
projects that get visibility end up getting better (more competent programmers
assigned to them), the rest lingers in crappiness mode.

They're not all like that, obviously. They have very smart and very competent
people there. But the general low quality of their code, the lack of polish in
their products, it clearly shows the consequences of hiring people based on
how fast they can dump code on a whiteboard.

~~~
adpowers
Hmm. I had a very different experience. Most of the Google code I've seen them
release is very, very high quality, like the Guava libraries:
<http://code.google.com/p/guava-libraries/>

------
bad_user

         given two full hours and any high-level language 
         (including pseudocode) only 10 percent of professional
         programmers implemented binary search correctly, 
         according to Jon Bently.
    

Wow!

I'm not particularly intelligent and I'm not in the top 10% -- but I could
implement an in-place quick-sort in C in 10 minutes that my interviewer could
run with only a minor fix (forgot a semi-colon), and I even described the
parallel version with OpenMP (although there I got the syntax slightly wrong).
This was for my interview at Adobe, when I got hired by them a couple of years
ago; went on to other things since then.

By that logic that should place me in the top 1 percent ... but so are my ~
100 friends that are also software developers from my city, and statistically
speaking, something smells like shit in those statistics thrown around.

Maybe binary search, when discovered, used to be a hard to understand problem,
but now it is taught from high-school. And sure there are lots of idiots out
there, but many of those idiots also believe they are in the top 10%, because
some statistic told them so.

So cut the crap and build stuff. Only by that metric you can prove yourself.

\-- EDIT --

I'm not referring or addressing the article's author directly. I'm also not
saying that you SHOULD be able to implement binary search, or quick-sort or
whatever metric du-jour -- in interview conditions. I get it that you may be
stressed by eyes watching you, or that you may be bitten by edge-cases other
people haven't noticed for years.

I'm referring more to these metrics flowing around -- like, if you read HN
you're in the top 5%, if you read this stupid blog you're in the top X%, if
you can implement binary search ... etc, etc...

We are software developers, mathematicians, computer scientists -- surely we
understand selection bias and should be able to recognize bullshit, even if it
doesn't appeal to our ego.

~~~
dman
Ive choked on some very simple programming problems in circumstances where I
am being closely watched. I need to be by myself to think about problems and
attack the problem incrementally. Somehow having an audience seems to force me
to attack the whole problem at once before writing anything. In short, I don't
know if my experience is unique but there might be other programmers who under
perform when being closely watched.

~~~
T-R
I sometimes just completely fail to function at a whiteboard. I've choked to
comedic proportions on problems I'd solved easily only a few days before.
There's not a doubt in my mind that my resume's been thrown in the "Non-
programming programmer" pile due to my stage fright at least once. I can
certainly sympathize with the need for a low false-positive rate, but as a
candidate I can't help but wish that overcoming stage fright wasn't also such
a prerequisite for working with good programmers.

------
bogdan2412
I'm surprised by the rapid succesion of the interviews. When I applied for an
internship at Google, I think the entire process lasted about three months
until I got a final acceptance email. Only had 2 technical phone interviews
spread over a month period and they were both decisive (aka if you failed the
first one, you didn't get in the second one).

This was quite a contrast to my Facebook experience, where I had a contract
signed after I think 3 weeks. :)

I'm really quite surprised that binary search is considered difficult, have
you ever tried to implement quick sort? I can write AVLs with less bugs than
quick sort.

------
singular
I feel for you - my advice is not to let it get you down.

I think an important factor in these interviews is the emphasis on talent in
software development. Don't get me wrong - I don't deny its importance, it's
more that I question the nature of the beast. To me talent is instinct, a feel
for what you're doing, and the 'right' type of thinking for the thing. It's
pretty obvious when somebody has it (or doesn't), and I think obvious whether
you have it too if you're honest with yourself about it.

Tech interviews _emphatically_ do not test for this. Nor do they, I believe,
test for smartness; I think once you hit a certain level of intelligence the
rest is far more preparation and experience (and yes I'm getting Malcolm
Gladwell on your ass) - so all a failed interview indicates is (assuming you
are an at least moderately talented, moderately intelligent candidate) one or
more of the following:-

* Lack of preparation ( _knowing_ the stuff, and _practicing_ the stuff)

* Poor/incorrectly focused preparation

* Lack of confidence

* Bad luck - e.g. haven't looked at binary search for x years they ask about it, or what Steve Yegge termed the 'interview anti-loop'[1] - basically the guy interviewing you just doesn't like you and that's that.

The biggest problem with these things is that people (and I'm kind of talking
to myself here more than anyone) take these things personally and put it down
to some idea of talent that you might just lack. Fuck that.

The problem is that - and I'm risking repeating a well-known cliche here -
hiring good people is extremely hard, and a false positive is _way_ more
damaging than a false negative. It is right, IMHO, that (good) companies probe
algos, os fundamentals, etc. as this stuff _matters_ ; however failing an
interview emphatically does _not_ mean you suck.

[1]:[http://steve-yegge.blogspot.com/2008/03/get-that-job-at-
goog...](http://steve-yegge.blogspot.com/2008/03/get-that-job-at-google.html)

------
mrchess
In regards to your comment about their recruiting speed, I wanted to chip in.
While not Google, I interviewed with meebo and went through three phone
screens as well within 1 week, and they flew me to Mountain View within 2
weeks -- by far THE most efficient interview I have been through. Great
people.

I cannot emphasize enough how much more awesome it makes your company look
when you have a streamlined recruiting process!

------
aphexairlines
I would not appreciate a candidate spilling the beans on what we ask in our
interviews, even if he didn't sign an NDA. Sometimes you do ask similar
questions, and it's a waste of everyone's time when the candidate in front of
you went through some programming interview books and a bunch of blogs like
those.

Similarly, I wouldn't even bother to bring in a candidate who transcribed his
interviews elsewhere.

~~~
mailarchis
There are quite a few people out there who would enjoy working out on
interesting questions. If you already know the question or have solved it
previously you just give the solution and admit it that you had seen it
earlier. But more importantly its about the thought process and how you got to
the answer.

"Similarly, I wouldn't even bother to bring in a candidate who transcribed his
interviews elsewhere." - Well there are gazillion blogs and books written on
technical interview questions including by ex google, msoft and apple
employees. So is it really that bad that a sophomore student decided to blog
about it for the benefit of fellow students.

~~~
aphexairlines
It's bad for the same reason that leaking a midterm you just took for the
benefit of fellow students is not helpful for those trying to conduct a test.

------
bconway
Having read a plethora of stories about the Google interview process over the
years, from interns on up, it seems like it would be easier to build a company
and sell it to Google than to get through the application process. Surely
someone has done this at least once, given the number of companies Google has
purchased.

------
swah
Given the input and output, why isn't a linear search a proper solution?

~~~
ppod
Because linear is O(n) and binary is O(log(n))?

~~~
swah
Oh, sorry - didn't notice that was a requirement.

~~~
ppod
I don't think it was an explicit requirement, it just would be very wasteful
to do a linear search on a sorted list.

------
apl

      > I got an internship with The New York Times
      > the following week.
    

Did the internship involve 41m$ in compensations and the instruction to build
a pay wall secure enough to fend off toddlers?

In any case, well done. Technical interviews are hit-and-miss at any stage in
your career, although I have to say that a coder worth his salt should be able
to code up a binary search in no time at all. Even a college sophomore.

~~~
biobot
I have applied there for a fulltime position. I got a friend at Google refer
and an HR called my immediately to set up a phone interview. It went well and
they flew me in for onsite. After more than a week, they sent me an offer
after the quite rigorous background check. The whole process takes about 3
weeks. Even though, it's not as fast as the company I will join (took them
less than 2 weeks total to get me an offer) but I don't think Google process
is slow.

