Tags: chicago |
Posted by
Admin on
3/22/2008 5:06 PM |
Comments (0)
It started when I received an email from a Google recruiter asking
whether I would be interested. Sure, I was! Even though I was fairly
content and well paid at my current job, I figured that if nothing
happened beyond the interview process it would be an interesting
adventure, like a voyage and maybe an extended stay in a foreign
country. I am interested in different cultures and foreign languages.
I've even coerced my family, when my kids were still compliant, into
taking "vacations" in Mexico and Guatemala where we were in classrooms
5 hours a day, in Spanish immersion classes. Way back in the 70's I
traveled the Hippie Trail, from Europe to India overland. So, even
though I was content at my job, I was up for the adventure.
The recruiter scheduled a phone interview and gave me advice about
how to prepare for it. First, review algorithms, data structures, and
Big O notation. Second, read the Google papers
on the Google File System, Big Table, and Map Reduce. I didn't mention
to the recruiter that the first part, the "review" of algorithms, data
structures, and Big O Notation, wouldn't be a review for me; it would
be my first formal study of those topics. I was a liberal arts major,
Ancient Greek and Latin (an armchair adventure). If I were to be
around hard-core computer science majors discussing algorithms and data
structures in precise academic language, it would be like me being
among the Eskimos, with their many words
for snow, me having just a few terms like "snow", "slush", and
"powder". I understand the concepts and apply them daily, but I don't
know the words for them. I don't know what the concepts are called.
For example, although, I've learned to call a big array that only has a
few of its slots ("slots"?) filled in a "sparse" array, I don't know
what to call an array where each element is a linked list. I bet there
is a formal name, but I haven't learned to speak that language. And I
can't read or speak Big O, even though I have experience applying the
concepts that Big O notation is used for. My software development
skills are solid, but they are ... rustic.
Looking back, preparing for the interview was the most valuable and
lasting part of the whole process, not so much for the algorithms and
data structures, but for the Google papers. Prior to being contacted
by the Google recruiter, I hadn't done any reading about the
technologies on which Google search is based. I enjoyed learning about
them. True, these days I'm not doing any programming where the Google
technologies would have an application. In my day job, I work for a
company that makes software for futures traders. On my weekends, I work
on BugTracker.NET. Neither app has to deal with large datasets or
parallel processing. But my previous day job was with a credit bureau,
with a huge database of payment history that needed to crunched for the
credit score calculations and needed to be digested for our our search
engine (which I wrote). Maybe the idea of a credit bureau sounds
boring to you, but it's interesting and challenging work. We didn't
know what Map Reduce was, but we had a similar challenge because of the
amount of data - the need to manage parallel processing - and so our
solution ended up being very much like Map Reduce. Well, except that
ours wasn't a general framework. I've since contacted my former
coworker there and pointed him to Hadoop, an open source implementation
of Google's Map Reduce. I really do enjoy my current job, but part of
me wishes I was back at the credit bureau tackling those particular
types of engineering challenges that big datasets present, playing with
Hadoop. Plus, the data itself is kind of fun. If you are ever going
to loan money to a business, you are safer lending to a Lutheran church
in Minnesota than a restaurant in Mississippi that has the word "Grits"
in its name. That's what the statistics crunched from the database
tell us.
The phone interview was conducted by a guy from Google's Boston
office. The questions were reasonable. I didn't read any of the
non-disclosure agreements I signed because life is too short to read
what lawyer-ese, but the golden rule of do-unto-others guides me that I
shouldn't spoil the schtick of a fellow software developer's interview
techniques by spilling the beans, so I won't tell you what I was
asked. I did learn something, though, in the course of the phone
interview: that cosmic rays can cause computer memory chips to flip a
bit. Did you know that? I didn't know that. I wonder if in my career
I've ever spent time investigating a bug that was cosmic by a cosmic
ray?
After the phone interview a date was set for me to interview at the
Chicago office. Before the interview I, well, what else, googled
"Google Chicago Office" and got a sneak peak of what I was going to
encounter. I even got a tour of the office: http://video.nbc5.com/player/?id=124170
As the day of the interview approached, I felt an increasing amount of
distress. One of the sources of distress was my anxiety about being
judged and falling short. In advance of the interview, I found that the
infantile, emotional part of my brain was busy manufacturing reasons to
not care how I was judged. One train of thought was that there is no
"Google" that is judging me. There is just the guys on interview duty
that day, the idiosyncratic individuals who were going to be talking to
me that day. Maybe things would click with them, maybe not. And,
especially in the Chicago office, there was no "Google" in that the
developers there were the ones absorbed into the company from Google's
purchase of FeedBurner, a Chicago startup, plus, the lead developers
from the Subversion project, who had been recruited to run the
development staff in Chicago.
Another source of my distress was that my mind was involuntarily
preparing myself to leave my current company. Every work place has its
shortcomings and irritations, but with time and self-hypnosis, if not
outright self-medication, you learn not to dwell on them, to look at
the positive. At that time, though, because of my poisoned mindset, I
was becoming hypersensitive to every irritation, so that whereas I had
been content before the process with Google started, I disliked my job
by the time the interview came. Another part of the distress with my
current job was keeping secrets from my coworkers. I have a great
relationship with my boss and my partner, but I didn't tell them about
the Google interview. I would never be good at cheating on my wife
because during this period every conversation I had with them was
colored by the fact that I was keeping a secret from them, lying to
them. I had involuntarily emotionally detached myself from these
guys. I felt lonely and fraudulent.
So, by the day of the interview, I was in emotionally unsettled.
Where I really felt it was in the lobby of the Google office waiting
for the interviewer to come and get me. The decor of the lobby and the
office in general relies on Lava Lamps (a Chicago product). Hundreds
of Lava Lamps. The thoughts I had while waiting were, "How juvenile
to think that owing a particular product makes the owner cool!" and, as
a bill-paying father of teenage boys who never turn off the lights,
"How wasteful to be spending all that money for that wattage!". We
took a family trip to Alaska during which a Denali National Park ranger
asked us to think about the consequences of using florescent lights on
the glaciers we were viewing. Hadn't the Google interior decorators
seen "An Inconvenient Truth"? I would have felt more at home in a
humble Amish household than I did in the pseudo-hip, purchased-cool,
energy-profligate, global-warming-contributing lobby of Google's
Chicago office.
I knew these judgments were being fueled by my unsettled emotional
state. I knew that if Google were to make me an offer, I would accept
it. I mean, hey, it's Google, the Angelina Jolie of tech employers.
It was the Subversion guys who were scheduled to interview me. These
guys are somewhat public figures. They blog. Here's where maybe I
made a mistake: I spent time reading their blogs and sent them emails
about what I had read, pointing to some of my work which related to
their writings and which reflected on me favorably. One of the guys
had blogged about his favorite Chicago restaurants and I shared with
him my list (He had tried and hated one of my recommendations....) I
wonder in retrospect whether my actions were, to them, kind of creepy
and uncomfortable? Like, I was some sort of stalker. Hey, see what
I'm doing here? See the angst-ridden self inquiry? That's what you
do to yourself when you get rejected by Google.
So, first one of the Subversion guys interviews me. He asked me how
I would design software to do X, where X was the kind of challenge that
Google has to deal with. The content of the interview as appropriate.
It tested my thinking, experience, problem solving skills, rather than
specifics of some language syntax. The design challenge was left
deliberately underspecified, testing whether how I would dig with good
questions to add more specifics. The guy conducting the interview
played his part well. He helped me feel at ease, guided me well, gave
clear answers to my questions.
In a previous job, I completely controlled the interview process for
the developers I hired, and so I have some opinions about dos and
don'ts in the interview. I think the Google interview was a good test
and I thought this guy did a good job.
Maybe I did ok, because I got passed along to the second Subversion
guy. The content of the interview was the same, a design challenge.
But, this second guy was different. Whereas the first guy had put me
at ease, the second guy shook me up. Now, I'm not a fragile flower at
all, so I have rehashed the scene in my head to figure out what it was
that happened that allowed this guy to shake me up. One theory is that
this guy hooked into my primordial primate brain and pressed certain
buttons that have been hard-wired into my DNA by evolution. Shortly
before the Google interview I had read, "In the Shadow of Man" by Jane
Goodall, about chimpanzee behavior, and "Our Inner Ape" by Franz de
Waal, about bonobo behavior. The books had been given to me buy a
friend, a school psychologist, with three daughters. She said that all
her daughters had read the books too and that they used the zoological
terminology from the books to describe various behavior they would
encounter in males in their daily life. "He's just displaying" was one
of their catch phrases, when they would witness some asshole making
angry noises.
This second guy was definitely an alpha. He made intense direct eye
contact with me, unsmiling. He seemed irritated. He didn't shake any
banana branches at me or make mock charges at me, but he might as well
have. His flat, cold affect in turn made me, I guess, somehow try
harder, in a pathetic way, to evoke some sort of warmer response from
him. If it would have helped to pick insects from his fur, I would
have tried it. Now keep in mind, these thoughts are all happening
while I was trying to figure out how to adjust my faulty algorithm for
solving the design challenge to work in constant time rather than
linear time (O(1) vs O(n) in Big O notation!. Look at me! I can spake
Big O! Caramba!). There had been a misunderstanding between us
earlier in the session, a sort of fork in the road of the conversation,
so his thinking went one way down that fork and mine another. Although
I eventually realized what happened, and saw the misunderstanding as
mutual, that's not how he saw it, and my attempt to explain and
backtrack to that fork in the road just sounded argumentative and
weasel-like. Actually, I think one of the things I contribute to
whatever team I'm on is that I'll be in a meeting and person A will be
talking to person B, and they will be agreeing, but I'll realize that
although they think they are agreeing with each other, they actually
don't agree, but are merely mutually misunderstanding each other in
such away that each is shaping what the other says into his own
expectation. Even if there are a dozen people in the meeting, it ends
up being me who intervenes and points out that A and B are not actually
agreeing, only seemingly And it works the other way too, when A and B
actually are saying the same thing, but because of misunderstanding,
are arguing. (We call that "violently agreeing" with one another...)
That's pretty much where things ended. I felt a sense of impatience
and irritation coming from the interviewer, because, I suppose, he had
already made up his mind and didn't want to waste any more time on me.
I asked him for some feedback, what his thoughts about me were pro and
con, my weaknesses. Maybe there would be an opening for me to change
a perception, but if not, I would have some more knowledge that maybe I
could benefit from. And I can handle the truth. I'm the type of guy
who tends to have painful post-breakup-analysis conversations with
girlfriends who have dumped me, where I end up hearing details about
the new boyfriend (One girlfriend told me about her new boyfriend, "He
had never come in a girl's mouth before he met me". Gee, thanks for
that image.). So, I was ready to hear what he thought, whatever he
thought. But his answer was a curt, unadorned, unexplained, "I'm not
going to tell you that.". I don't understand that part. That's
really just about him, I think, so that he doesn't have to do anything
uncomfortable.
Oddly, he then gave me a tour of the office. Game room, ping pong
table. I can't imagine why he gave me that tour. It was a
perfunctory tour, but, why bother? My thinking during the tour? You
can go fuck the Lava Lamps.
I don't claim that I know anything about the second guy really, what
he's really like. Our interaction was limited. My perception was
skewed. I know it can be stressful to be in his shoes, the
interviewer, especially if you know you are going to give a thumbs down
to somebody. It's no fun. You have to sort of harden yourself to
it. And maybe he was having a bad day. What looks like coldness
might be just shyness. So, if somebody were to tell me he is a warm,
generous guy to work with, I wouldn't doubt it.
After the interview I felt horrible. I knew I wasn't going to get an
offer. Churning in my mind was what went wrong? I suspect that the
second guy had a negative inclination about me the moment the interview
started. It's just pure speculation. I have no way of knowing. The
things that might have given him a negative inclination are:
* My age. I'm 52. I'm not claiming any sort of discrimination.
I'm just saying that my age makes me maybe not look the part of a young
energetic geeky software developer. Actually, I think age has changed
me for the better as an employee. I do think I'm less "hungry" in the
workplace, so in that sense, I don't try as hard. But overall, I'm
more productive. Not just because of my experience and judgment, but
because whereas I used to be a smart but disruptive hothead, now I'm
more of a stabilizing elder statesmen, giving guidance to the young
hotheads. In the mid 90's I worked at this company which went through
an odd experiment of allowing folks to chose their boss. In answer to
the question, "Who do you want to be your boss?", I was the #2 vote
getter out of 110 developers. But, in answer to the question, "Who do
you NOT want to be your boss?", I was the #1 vote getter. I'm not
proud of that. A couple years ago, at my current job, my boss wrote in
my review. "Everybody likes him". That I'm proud of. So, in short,
age, and my two teenage boys, have mellowed me.
* My work experience is on Windows, not Linux. That's a legit
demerit against me. My day-to-day hands on skills are not on Linux. I
can use Linux, but I'm much slower and I have to look things up.
Also, there's probably a prejudice that a Windows programmer has a
different mentality than a Linux programmer, in the same way I prejudge
a Hummer driver to have a different mentality than a Prius driver, or a
Visual Basic programmer to be different than a C++ programmer. An
interviewer has to make decisions based on limited info, and the fact
that my experience is on Windows is fair game. I think it is
appropriate for a tech interviewer at Google to have those prejudices.
I think there is some truth to generalizations, so, it's appropriate to
factor them in.
* My education background, liberal arts instead of computer sci.
* Perspiration stains around my armpits. Well, no, I'm just making that one up. I hope.
Take those three together, and it would be a special interviewer who
could overcome prejudices and see me as a fitting into a team of
20-something developers with engineering degrees. I'm not accusing
anybody of anything illegal, unfair or narrow-minded here. The essence
of doing an interview and making a hire/don't hire decision is to take
a few impressions, inadequate information, and make a judgment. Or,
maybe, there wasn't any negative inclination, that it was purely a case
of the interviewer judging my design skills to be lacking based on how
I handled the questions. Could be. Maybe I truly don't have the brain
power Google is looking for. Maybe I truly am *NOT* a good fit for
what Google is looking for.
As I walked from Google's office to my the building where I work, I
had to steel myself to deal again with all those things at my current
job I had grown to be irritated with. The process of detaching myself
from my current job had progressed so far that I was irritated by the
smallest things, but I knew that I quickly needed to re-acclimate
myself to all those annoying people and practices. As I write this
today, I am back to being a happy and well adjusted model employee. I
like my co-workers, my boss, my boss's boss. There are many things
that my current company is doing right. As compared to Google, we
don't have hot lunches, but we do have free bagels and cereal. I'm on
the 14th floor, but I like the granola they have on the 10th floor, as
opposed to the Captain Crunch they have on 14. And we don't have ping
pong, but we do have a Wii room (always busy) and fussball, which I
suck at. And, thankfully, we don't have any fucking Lava Lamps.
Original story