Last summer I was interviewed at Google's Chicago office but I was not given an offer.
Others rejected by Google have written about their experiences:
Here's my story:
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.