Recently, I had the pleasure of interviewing with Google. It was
very exciting, as I've wanted to work for Google for quite some time,
and they opened up a branch near my home through an acquisition
recently. I wanted to share the process of interviewing with Google,
not because it was particularly noteworthy, but because I wondered
about interviewing with Google before I did so, and I figured others
might. I've had to sign an NDA, so I'm going to be pretty careful about
what I share in this post.
The position I interviewed for was a Software Engineer position in
the Boulder, Colorado office (near where I live), but they still
conduct their interviews from the California office. Because I'm not in
California, I had to go through two phone interviews first. The
questions Google asks are pretty interesting for a number of reasons. I
think the best word I could use to describe the questions is "fair". I
didn't get any tricky puzzle questions. Nobody asked me what I would do
if I were shrunk to the size of a nickel and thrown in a blender. Not a
single question was an "a-ha!" type brain-teaser. Pretty much every
question was a good question for figuring out if someone can write
code. Even though I was interviewing for a Java position, I only had
one Java-specific question. I could really feel from the questions that
Google wasn't concerned with me being good with a specific language;
they really wanted to know if I was just a good coder.
When I was first told by the recruiter that the questions would be
algorithm-based, I was worried I'd have to reproduce quicksort or
something. In fact, the questions were far, far more reasonable (though
reviewing sorting algorithms WAS a good idea). Most of them involved
manipulating data in an array for some purpose. I'd give an answer that
worked, and they'd ask me if there were any corner cases. I was asked
to solve the problem in a way that avoided those problems. Then I was
asked to improve the space efficiency or running efficiency of the
solution. A solution that "worked" was never enough, the interviewers
always pushed me further, trying to squeeze out performance. I had to
say the runtime complexity for nearly every solution I suggested. I
would NOT recommend interviewing with Google without a Computer Science
degree. You need to be able to look at a function and know the Big-O
for it immediately. Specifically, you need to look at YOUR OWN
functions and know the Big-O immediately.
After doing well with both of these interviews, Google actually flew
me out to California for a weekend for an all-day interview on the
Google campus. They paid for my plane ticket, hotel room, rental car,
and some food. I bought a second ticket for my fiancee and we did
touristy crap around San Francisco. Overall, it was a lot of fun, but I
couldn't help but keep the back of my head occupied with the thought of
an all-day interview.
On Monday, I went to the Google campus. In the main lobby, they have
a projector with a scrolling list of Google searches. I sat in the
lobby waiting for my interview to begin, happily watching the searches
scroll by. Lots of female celebrities were being searched, and someone
searched for "vista crack" which made me laugh out loud, ensuring the
receptionist thought I was an idiot. I sent my fiancee a text message
telling her to search for "Rod is awesome" but it didn't show up. They
also had a neat visualization showing where people were doing searches
on a spinning globe.
Pictures of Googlers with celebrities adorned the wall next to the
new Google whiteboard. For those that don't know, Google has a giant whiteboard
which was finally erased not too long ago. Before being erased, someone
took pictures and posted them to the internet. The new board was
already mostly full by the time I saw it, and a large section of it was
devoted to complaining about the board being erased.
I also had lunch in one of the cafes on campus. The Google cafes are
all buffet-style, and completely free. You simply walk in, grab
whatever the hell you want, and leave. My "lunch-date" was one of my
phone interviewers, and he took me to the health food cafe. Salads,
tofu, bean sprouts, and similar food items filled the buffet. I
searched desperately for some meat and filled my plate when I finally
found it. I'm definitely NOT a California person. People looked at me
like I personally killed a cow in front of them.
The on-site interviews were much like the phone interviews. I had
one-on-one meetings with a handful of people, one after another. Each
person asked me algorithm-type questions. I did some whiteboarding, but
was mostly able to write the answers in my notebook, which was better
for me as I could keep up with my brain much more easily on paper than
on a whiteboard. It was sometimes difficult to focus on the questions
while "OH MY GOD I'M INTERVIEWING WITH FUCKING GOOGLE" whizzed by in my
brain over and over. Luckily, pretty much everyone was extremely
friendly, which helped calm my considerable nerves.
The biggest difference in the questions between phone and on-site
interviews was how my answers had to be presented. On the phone, it was
sufficient that I explain, at a high-level, how the solution to a
problem would work. On-site, I had to actually write it out. Of my four
interviewers, two actually wanted it to be valid Java.
I finished early with one of my interviewers, and he asked me a joke
question: if a Stormtrooper shoots a red-shirt, does he hit? It was
comical how universal this seemed. Of course I'd know what he was
talking about, I write software. Luckily, I was familiar with the term redshirt
from being a film nerd, and I was able to come up with a joke answer
that didn't let him on to the fact I've never seen a single episode of
Star Trek in my life.
The worst part of the process was my fourth and final interview of
the day. The guy was from Moscow, and he had a very thick accent. All
of my life, I've had immense trouble with accents, even slight ones. My
project manager at work has a thick accent from Italy, and she
basically sounds like Chewbacca to me. I'm not complaining that Moscow
Guy had an accent (all tech companies have folks with accents), but it
sure made the rest of the interview process challenging for me. My
interview with the Moscow Guy resembled one of those satellite
interviews on the news. He'd say something to me, and there'd be this
long pause before I responded. To make matters worse, he told me his
first question was going to be "an easy one", so when I barely
understood what he said at all, I imagine I looked like a complete
imbecile. "What was that? You want me to WHAT two numbers together? Mo
de ploy? Mah dah bu? Oh, multiply! Right, two times two is four. I'm
obviously partially retarded."
To make matters worse, the Moscow guy was the only person I talked
to the entire day who wasn't friendly. He wasn't a complete jerk or
anything, but he definitely wasn't as warm as my other interviewers.
Right before the interview ended, he asked me what I'd work on for my
"20% time" project. Each Google employee gets to devote 20% of their time to a side project,
which is why so many of the Google Labs projects exist (like Gmail and
Movie Search). I actually had an answer to this question, since I
thought about it on the plane ride out to California. There's been a
side project I've been wanting to work on at home, but I haven't had
time. I figured, if I got the job, I'd just make that a Google Labs
project and do it there. I explained my idea to him, and he told me it
sounded interesting, then proceeded to write it down right in front of
me. All I could think was "I hope I get this job so I don't regret
that."
I imagine the four interview feedback e-mails looked like this:
- "Candidate knew his stuff, but seemed awfully nervous."
- "Candidate knew his stuff and seemed relatively comfortable."
- "Candidate kept joking around like I was his friend. Clearly was
not nervous enough, given that he was interviewing at FUCKING GOOGLE."
- "Candidate seemed to have the brain of a chimp. Was surprised he
could speak without forgetting to breathe. Interviewer confident
candidate eats glue."
I flew back to Colorado feeling pretty good about the whole thing.
As it turns out, though, I was told over the phone (while trying to
push a car out of the snow during the Denver blizzard) that I didn't
get the position. I need to work on my algorithm skills, so I guess I
got docked for not thinking of the best solution right away. The Google
Recruiter told me it wasn't the last guy that did me in, but I imagine
if I had tried to come up with the best solution earlier (rather than
the naive one so I could improve it) and if I had gotten a different
interviewer for my last interview, I'd be writing this blog post from
my desk at Google.
Considering how much I wanted the job, I admit I'm pretty bummed
about this. I'm allowed to re-apply in a year, but I can't imagine
improving my "algorithm skills" without more information on where my
problem areas were. What's really unfortunate is that I know if Google
had hired me, I'd have done a good job. If I see my idea appear on
Google Labs any time soon, I'm going to go nuts.
All in all, it was a pretty pleasant experience. I'm disappointed,
but I'm proud of myself for at least being considered seriously by
Google. It was honestly kind of fun answering their interview
questions. The questions reminded me of my undergraduate work, and it
was nice to think about that kind of material again. I'm bummed that my
progress into the world of Google came to such a screeching halt, but
the journey has definitely been fun and interesting. And hey, I got a
free trip to San Francisco out of it.
I also got a private e-mail. It was from someone at Google. He
explained that my post had been circulating around the Google office
and when it got to him, it piqued his interest.
Essentially, he wanted me to come work for him in Mountain View. He
was looking for Java folks for his team, and he thought I'd be a good
fit. I jumped out of my chair when I read this, amazed some additional
life had been breathed into my foray into the world of Google. The more
I considered the e-mail, however, the more a part of me wanted to say
no. Why?
His offer was essentially doing some semi-internal development for
Google. I wanted to work on their web application back-ends, so that
was a tad disappointing. Could that be the reason I wanted to turn him
down? That didn't seem right, I had been joking for a while that I'd be
happy to clean toilets at Google. Writing code is writing code.
The position was also contract-to-hire, which didn't roll my socks
up and down. But I had been saying that once I got my foot in the door,
I'd be alright. I knew I'd do fine at Google if I worked there, so I
wasn't too concerned I wouldn't be hired permanently at the end of the
contract work. No, it wasn't the contract aspect that bothered me.
He also told me that I'd have to spend three months in California
doing the job. I'd then have to spend three months in California in a
permanent position in order to "culturally integrate" before I could go
back to Colorado and work in the Boulder office. This definitely
bothered me. Since I would want to continue living in Colorado, I'd
basically have to live in a hotel in California while Julia (my
fiancee) stayed here in Colorado for 6 months. I just got engaged a
month ago, and the idea of abandoning the family I'm just starting for
Google seemed completely unfair. If I had gotten the job I originally
interviewed for, I'd only have to be in CA for one week for training,
so 6 months was a pretty big deal. When I told Julia, she told me that
she could handle 6 months, and if I wanted to take this position I
should. She was completely supportive of whatever I wanted to do. So it
wasn't even the 6 months away from my home that was driving me to turn
the position down.
I thought about this for days. I couldn't figure out what about the offer I didn't like, so shouldn't I take it?
Eventually I figured out what I didn't like about the situation and
I turned it down. I don't think I could explain my rationale better
than I did in my e-mail to the guy from Google, so here is what I told
him:
I've been thinking about your e-mail for a few days and I've finally
made a decision. This was not a decision I made lightly by any stretch.
Let me start out by saying thank you for e-mailing me and giving me
another potential shot at Google. I hope you don't mind, but I'd like
to update my blog story with this additional bit, though I won't be
using your name or any details.
As I said in e-mail and via the blog post, there is no place I'd
rather work than Google. Google, to me, is Mecca for software
developers. Google does amazing work that improves the entire world.
There is no better way to put my software development skills to use
than at Google, where I'd be doing good work to make life better for
countless individuals.
My personality, my desire to learn, my goal of improving the world -
all of these tell me that Google would be the best place I could work.
I know Google is right for me.
But am I right for Google? The interview process concluded with a
resounding "no". Google decided that I am not a good fit for the
company, and sent me back to Colorado. The fact that I made a funny
blog post describing my journey doesn't change the fact that, from a
technical standpoint, Google considers me below their standards.
Despite the conclusion of the interview, I believe I *AM* right for
Google. I believe that, if I interview again after improving my
algorithm skills and becoming more confident in my own abilities,
Google will see that I am a good fit and hire me.
In short, I want to work at Google more than I can describe, but I
want to work there because I earned it. I want to start my first day at
Google knowing that I belong there, and knowing that Google knows I
belong there.
As tempting as your offer is, I feel like it's sneaking into Google
via a backdoor. I want to enter Google through the front door.
I intend on improving my abilities and learning new skills, as I do
all the time as a developer. When I am ready, I will re-apply to
Google, and hopefully I will meet you in the cafeteria during my week
of training in California. :)
Thank you again for your e-mail.
I never imagined I would pass up a chance to work at Google, but
there it is. I think I very well may look back and regret this, but for
the time-being I'm comfortable with my decision.
This, I imagine, actually concludes this story. At least for a while.