
How I Embarrassed Myself in My Interview With Google - AccordionGuy
http://www.globalnerdy.com/2013/10/19/i-has-the-dumb-or-how-i-embarrassed-myself-in-my-interview-with-google/
======
integraton
Is this a serious article?

Iterating over a hash slightly wrong when writing code in a google doc during
an interview is such a stupid, trivial thing to be judged on, whether it's you
or someone else doing the judging. It's clear from the "My lame attempt"
example that the basic concepts are understood, and if he's written a series
of articles about the Enumerable module then he probably knows it better than
the majority of professional developers working with the language.

If this is a serious article, then it really highlights everything that's
wrong with tech interviewing.

~~~
AccordionGuy
Yup, it's serious. I'm don't know for certain that I've been ruled out of a
follow-up interview, but I got that vibe by the end.

~~~
mortdeus
Do you have any open source projects? The first thing i'm looking for as a
developer when I visit your websites is a link to any code you have written.
Which as far as I can tell doesnt exist?

A programmer without a portfolio of source code is like a painter without a
portfolio paintings.

I assume Google scouts are usually looking to hook the exceptionally rare
"Monet" and "Picaso" software engineers swimming around in an ocean
overcrowded by "PC techs".

There is a quote by Linus Torvalds that is fairly relevant here. "Talk is
cheap. Show me the code."

Your resume is nice... Cute even. But without the code to back it up, there is
nothing to critique your actual skills.

~~~
yongjik
As a Google Engineer, I can assure you that nobody who interviews you will
give a damn about your code in github. Unless you're James Gosling or someone
at that level. (But then again I don't think they interviewed James Gosling in
the same way they interviewed me, so the point is moot.)

Google interviewers are interested in how well you can code (or design a
solution) in a whiteboard for 45 minutes. I'm not claiming that it's the best
way, and who knows, it might be the absolutely horrible way to interview
candidates, but that's the way it is here.

~~~
toomuchtodo
(Non snark ahead) Could this be why working at Google is no longer the prize
it once was? And why developers would rather go to Facebook, Twitter, Dropbox,
et al?

~~~
yongjik
(Completely idiotic response ahead) Umm, really? Every day I see thousands of
developers who would rather work in Google than Facebook... :)

(Non snarky response) I dunno. I joined Google in 2008, and as far as I know
Google was always like that. So, unless you claim developers have preferred
Facebook etc. to Google for more than 5 years now, it's probably not related
to the interview process.

~~~
toomuchtodo
From Glassdoor's data, it appears Facebook employees rate their experience
better than Google employees from 2009-2012:

[http://www.glassdoor.com/press/wp-
content/files_mf/133228554...](http://www.glassdoor.com/press/wp-
content/files_mf/1332285549Infographic.JobWars.PNG.png)

Also base rate is higher at Facebook, and interview difficulty is rated lower
at Facebook.

Somewhat disappointing, as I'm a huge fan of Google.

------
swanson
Don't sweat it. I find those Google interviews to be very discouraging and I
felt dumb after not doing great on one when I was in school. Looking back, the
whole interview was a mess. I got the call from the engineer 45 minutes late,
I couldn't access the Google Doc because he was trying to send it to my
university email address, and the coding portion started off with him writing
"!(x & (x - 1)) && x" at the top of the empty document and asking "What does
this do?".

Looking back, it was pretty silly but man did it really kill the confidence of
19 year-old me when it took me 10 minutes to work out that it detected numbers
that were powers of 2. It really gave me a negative impression of Google's
interview process (that and the complete radio silence afterwards), which I
still think about when they send me their bi-annual recruiter emails. Funnily
enough, the last email I got specifically mentioned that I had "done really
well in the recruiting process in the past".

~~~
rmrfrmrf
...did they at least tell you beforehand that they were coding in JavaScript?
In pretty much any other language, that wouldn't compile, but those logical
and bitwise operators are used in multiple languages from C to Ruby.

------
yongjik
> When your bread and butter is crunching through large amounts of data with
> MapReduce, it only makes sense that you tend to take a more functional
> approach and think in terms of single-operation mapping, filtering, folding,
> and sorting.

Umm, sorry, no. You wouldn't believe what kind of 5-level-nested-if C++
statements you could find in Google's codebase. Google might be known for its
technical abilities, but "affinity to functional programming ideas" is
generally not one of them.

------
bsaul
I don't think anyone could succeed in a coding test without rehearsing before
taking it, just like any kind of live performance.

Programming languages are powerful things with which you can do a lot of very
different things and tackle very different issues. Sometimes it's database
querying, sometimes complex data structures, sometimes parallelism,
genericity, business data modeling, etc. etc.

There should be a list of "warm up" exercises somewhere to help people prepare
for general tests and make sure they've touched at least every subject once
before going live.

------
ilyanep
I doubt that you were rejected (even if you were, which it seems like you
don't know) based on needing to be prompted about select, and getting syntax
wrong, especially for a non-dev position and in a phone screen. If I were
doing a phone screen, I'd honestly be probing more for whether you know how
code works in general, and if you knew what select _was_ (i.e. when I prompted
you, your response wasn't "uh...what's select?")

Also, did you not sign an agreement with Google that you wouldn't share
interview questions before you started interviewing? I think sharing questions
is generally considered somewhat uncool.

~~~
AccordionGuy
I didn't sign any agreements of any sort, and the question was about as
generic as "FizzBuzz" that I wasn't giving away anything. If it's a problem, I
can make it right by editing the article.

~~~
ilyanep
I guess that's fair enough. I'm just personally squeamish about sharing most
interview details this publicly, but perhaps you're right.

------
spiritplumber
True story: I sort-of-interviewed at Google. The interview ended because the
interviewer, after having been told that I had already completed the project
they were trying to recruit for, became agitated and told me that I was just a
hobbyist and my product did not exist -- this while he was being shown it in
motion. I put a spare PCB for my product in his hand and asked him if it
didn't exist, why was it making him bleed. Then I closed his hand hard around
the PCB and told him to keep it, it's under GPL, and go ahead and crib from
the design.

People who reject physical reality should receive a bit of negative
conditioning about doing so...

~~~
rmrfrmrf
I'm sure they're upset that they didn't hire you.

~~~
spiritplumber
That particular guy eventually was, enough to want to make amends. I believe
that there is more luster in having "scooped Google" than "worked at Google"
on a resume, though.

------
garthdog
_I am terribly out of Ruby practice._ Choosing Ruby as his language,
presumably because it is the language he is best at, and then whiffing on the
basics is probably what did him in. The brevity of phone interviews and the
need to whittle down a massive pool of applicants to a manageable stream means
that the interviewer is going to infer a lot from a little.

He should have chosen a language he is better at. If Ruby is indeed his top
language, and he's rusty at that, then perhaps OP just isn't fit for a coding
job at this point in time?

~~~
AccordionGuy
I wanted to use:

\- A language with a REPL so that I could check my ideas in a terminal window.
\- A language that would reduce the amount of typing I'd have to do \- A
language I that I was half-decent at (at lease at one point)

And Ruby fit all those criteria.

------
mgkimsal
I didn't get as far as a full interview, but an internal recruiter reached out
to me and we chatted for about 20 minutes or so for a specific position she
was trying to fill. It was no better than a standard recruiter, really - I was
expecting more.

"So, I found your resume... blah blah blah, you say you've done XYZ, blah blah
blah, send me a copy of your resume."

WTF?

I said "um... you're _google_ \- don't you already have all my information?" a
bit jokingly, and she laughed a bit. I then told her I wasn't at my computer,
but if she Binged my name, my site would come up, and she could grab a resume
from there. A few mumbles later, I got "OK, got it! I'll get back with you in
a couple days with the answers to those questions!" I'd asked a couple
questions about the job. That was early August - no followup. As
unprofessional as any other hack recruiter imo. I guess I shouldn't have
expected more, but I did.

tldr: I told Google to Bing me.

~~~
taralx
To be fair, it was reasonable for her not to assume that whatever she found on
a search would be up-to-date. Some people also like to tailor their resumes
for the recipient.

~~~
mgkimsal
to be fair, they had more than a week to go google me and see that the resume
was the latest one. there are exactly 2 people with my name on the planet, and
only one does much of anything on the internet (me).

"Do you have a more recent resume available? The one I have looks like was
last updated in 2007" would be far more respectful - it would show you're
looking at it, parsed it out, and are giving the other person a chance to
polish things up if they want.

"HEY! I just found your resume! .... Send me your resume!"

"Waiter... I was just looking at your menu... things look really good. Could
you please bring me your menu?"

It just sounds stupid.

------
mortdeus
If im ever being interviewed by Google, i'm going to say "hold up let me
google the solution to that real quick."

A good engineer spends about 95% of their time discovering new things to learn
about their craft. An even better engineer uses what other engineers have
already discovered and shared with the world to further their understanding.

If the world only consisted of the "even better" engineers things like this
wouldnt ever exist.
[http://swtch.com/~rsc/regexp/regexp1.html](http://swtch.com/~rsc/regexp/regexp1.html)

When I hear, "I want you to develop a mini google.", I feel that the only
right answer to the question is, "No thats not a problem that needs to be
fixed anymore. Lets actually fix a real world problem that affects real world
people."

There are very few new generation software engineers that are truly hackers at
heart. Its really sad when a company like Google doesnt even know how to look
for them anymore.

~~~
tzs
> If im ever being interviewed by Google, i'm going to say "hold up let me
> google the solution to that real quick."

If Google just wanted people to take existing publicly known parts and hook
them together, they would be recruiting people fresh out of community college
instead of fresh out of masters and PhD programs, and they'd be offering
around $50k/year salary.

Google is trying to find people who can create the parts that ordinary
programmers hook together.

~~~
tptacek
I can't hire IT in Chicago for $50k/yr.

------
thorp
How is that a good answer at all? If I was asking a candidate that question,
I'd expect them to make an inverted index

~~~
alecbenzer
I imagine that might have been a follow-up. Given that he was specifically
asked to write a "search" method (and not something more open-ended), the more
direct search through the docs might have been what the interviewer intended
(though it might have been a plus if the author had said something about some
sort of indexing off the bat).

------
asdfologist
On a related note, given that Google has been using their hiring and employee
performance data to try to improve their interview process
([http://www.linkedin.com/today/post/article/20130620142512-35...](http://www.linkedin.com/today/post/article/20130620142512-35894743-on-
gpas-and-brain-teasers-new-insights-from-google-on-recruiting-and-hiring)), I
wonder whether they have also managed to identify good and bad interviewers.

------
RodericDay
not a bad read but please less "failcatz" pics on the body next time. maybe
they can be tiled on the side or something?

~~~
AccordionGuy
I tend to go with more humourous bits like that on weekend posts; that's my
style.

------
anuragramdasan
+1 for "get up and deal with it".

------
ape4
Well since he was asked to make a " _mini_ google" speed and parallelism are
non-concerns.

------
natch
So your plan for your mini Google was to iterate through every entry in the
index? (Setting aside the ludicrous idea of iterating through a hash when you
can just ask it for a value by key... or am I missing something? Please
enlighten me if I am.)

~~~
swanson
I think you misunderstood the problem statement. The hash is keyed by the URL
and the value is the body of the HTML page. The input to `search` is a term,
so you would need to check all of the items to see which one contained the
term in the HTML. The subject could not just index directly into the hash.

~~~
dannypgh
If you're just doing keyword matching, you're best off building one of these
first:

[http://en.wikipedia.org/wiki/Inverted_index](http://en.wikipedia.org/wiki/Inverted_index)

As for the interview, I really wouldn't sweat it. Even if you didn't do well
in the eyes of your interviewer, 1. there are several interviews that they are
looking at, not just one, 2. people understand that folks get nervous and can
screw things up sometimes, and that whiteboard (or google document) coding
isn't the best measure of intelligence. Because of this, they're usually more
interested in how you respond to feedback than the merits of your first
attempt, and 3. there's a lot of luck to any interview process - what
questions get picked, etc. and even if you don't do well I wouldn't discourage
you from trying again in the future.

