Hacker News new | comments | show | ask | jobs | submit login
How I Gamified the Google Interview (livingforimprovement.com)
84 points by nireyal on Nov 30, 2012 | hide | past | web | favorite | 60 comments



As someone who works at Google, this seems like a grossly excessive amount of effort to get past interviews which just aren't that hard. It would have been much easier to browse through the first few chapters of an algorithms textbook, set up a simple network between two linux VMs, and (optionally) brush up on C++/Java/Python syntax if those aren't languages you use often.

The reason Google has a reputation for hard interview problems is that before they came around, the standard technical interview was "So, $NAME, tell me about what you did at your last job". They were one of the first silicon-valley companies to have technical interviews, and so it frightened all the unqualified candidates who couldn't just coast in on good conversation skills.

Before Google, the company with a reputation for impossible interviews was Microsoft. Like Google, I strongly doubt that their questions are anywhere near as difficult as the rumor stream claims.


Whether it's an excessive amount or not clearly depends on the person, isn't it? I studied for about 2 months and still didn't get an offer.

http://news.ycombinator.com/item?id=4704039

I don't know if preparing more would've made a difference, but it's possible (though personally I don't regret not having studied more, it simply wasn't worth beyond that point).

Below you mention FizzBuzz. My phone screen question was about implementing a simple, concurrent data structure that could hold a fixed number of items. Not a big deal, but still significantly harder than FizzBuzz, in the sense that pretty much everyone that gets the data structure question right would also be able to solve FizzBuzz, while the converse is not true.

> The reason Google has a reputation for hard interview problems is that before they came around, the standard technical interview was "So, $NAME, tell me about what you did at your last job".

FWIW, This is essentially how Japanese companies still interview. I have never been asked an actual coding or algorithmic question by Japanese companies.


Unlike Microsoft, it seem that Google changed the interviewing process for many companies and I am grateful for it. My interviews pre-Google were primarily trivia contests about the language used for the position I was interviewing for. I was never asked to actually write code or break down a problem. Phone screens were mostly used to verify a candidate had a pulse.

Now I've noticed that almost all phone screens require some type of shared-document coding exercise, and some knowledge of algorithms, followed up by a series of whiteboard coding or problem solving face-to-face interviews. Some companies will ask for a homework problem or code sample as well. It was quite a shift for me as a developer, but a welcome one. The up side is that preparing for interviews now has actually improved my skills as a developer where before I'd learn about aspects of software languages that were often never used (such as details about EJBs when interviewing with companies that never used EJBs) and didn't translate into a hire actually being able to do the job they were hired to do.


Yet Google still has a reputation for very selective hiring ... is that because most of the hiring decision isn't interview-related (degree/GPA/projects/resume)? Or is it that, while the data structures/algorithms questions might not be too hard, it's possible that the interviews are still difficult, due perhaps to a degree of randomness, or to high standards (candidate is IO-bound not compute-bound, never makes a mistake, uses of axiomatic semantics to prove correctness as she writes...)?


It's because, as has been observed by many others, most candidates simply can't code.

If 90% of people who walk in the door can't implement FizzBuzz, and Google wants to hire the top 10% of coders, then it would be expected for the interview process to reject 99% of interview candidates. A more typical hiring goal of "top 1% of coders" means a 99.9% rejection rate.

The phone screen process is supposed to reduce the number of low-quality candidates, but it's a fairly coarse filter, and very easy to game.

Google cares much more about what you've accomplished than about what number is on your transcript, what university's name is on your degree, or even whether you have a degree. If you feel your GPA is too low to be taken seriously, spend a few months coding and put it all online for browsing.


Wow, if Google wants to hire the top 1%, it hardly means rejecting 99% of the interview candidates.

First of all, that logic only works if Google only wants the top 1% of people who apply to Google, and that Google is completely and absolutely incompetent at weeding out the bottom 99% through other screening methods.

Secondly, I doubt that Google has any kind of monopoly that allows them to determine what, exactly, the top 1% or even the top 10% is. A lot of people are fond of throwing these percentages around without even rudimentary data to support their notions of competence - which I think is probably fair to use as a data point for evidence of incompetence.

Thirdly, I could go on, but...


I think you misread my post. Rejecting 99% of interview candidates would provide a result of hiring the top 10% of coders, because 90% of the interview candidates cannot write code. Hiring the top 1% requires rejecting 99.9% of candidates.

You're assuming that other levels of screening (resumes, phone screens) must not be working properly if there are so many bad interview candidates, but really they're working very well. A large company will receive millions of applications for any position, and needs to winnow that down to a few hundred interview candidates. How many nines of rejection do you expect out of a phone screen?


I don't disagree with anything you're saying, but I expect a baseline phone screen session to reject someone who cannot FizzBuzz.

Is that so hard to accomplish without inviting someone in for an interview ? I cannot answer in the affirmative as I do not work in HR.


I think what is meant is that 90% are rejected at the phone screen, and the top 10% or 1% are of those who can code, ie passes the phone screen. That makes them 1% or 0.1% of your initial applicant pool.


You are correct, but the author doesn't seem to be either from the US or a software engineer (his LinkedIn profile indicates a non-technical role).

That said, there's also little harm for a programmer brushing up a bit further than needed on algorithms: skip list, for example, is a great example of a data structure that is less known (perhaps less so after ConcurrentSkipListMap in JDK 6), is commonly used for interviews (as it's easy to explain the general concept in the scope of an interview), and is also practical (used in BigTable/HBase amongst many other places).


It doesn't look like he was interviewing for a software engineering position.


Great post on the gamification aspect.

But as an aside: is it really typical for someone to prepare this hard for an interview, even if it is for a dream company? If so, then something seems to be clearly broken with the interview process. My idea of a superstar candidate is not someone who memorizes possible questions and answers, but simply someone who is really really good at what he does.


Yeah, this is just stupid. I have a friend at Amazon who said I'd have no trouble getting through their interview process, but these Google interviews are absurd to me. Why try so hard to get a job at a company that everyone is applying to when you can instead much more easily get a position at a lower profile company, like Amazon or Microsoft, that will still give you challenging and rewarding work?

Do I respect and like Google's creations more than Amazon's or Microsoft's? Sure, but that's far from the only factor when choosing a job, even though people act like it is.

I'll never bother applying to Google. It's a simple matter of leveraging the principles of supply and demand in your favor.


Why try so hard to get a job at a company that everyone is applying to when you can instead much more easily get a position at a lower profile company, like Amazon or Microsoft, that will still give you challenging and rewarding work?

I interviewed at Amazon and Google at about the same time. I got offers from both and chose Google because their offices are nicer, they give you free food and lots of coffee choices, and I just got the impression that they care about employees more than Amazon did. (One of my interviewers at Amazon noted: "They deliver groceries right to your desk. But it's too expensive, so we don't do it.")

Amazon didn't really seem like some place that I would stay at for very long, because I would get tired of the cheapness. But some people really love being cheap, so I guess Amazon is perfect for them. (At Amazon, they give you door desks and a 24" monitor. At Google, we get motorized sit-to-stand desks and 30" monitors. Although I've been too lazy to request a standing desk, so far...)

So anyway, challenging and rewarding work is nice, but it's not enough for me personally. I need my employer to at least pretend to care about me. YMMV.


My friend has in fact complained about the "door desks" at Amazon and the ergonomic issues they can cause, so I'm aware of the cheapness issue. I've also read Steve Yegge's accidentally-made-public Google+ rant about Amazon. However, it's not like Google has a monopoly on nice perks. I only gave Amazon as an example because I personally know an employee.

And obviously since you got offers from both companies, you would have no reason to pick Amazon over Google. But that's not the point I'm making - I'm saying that prior to starting the application process, it would be logical to avoid Google. The calculus changes completely once you've already got the offer in hand.


Interviewing at Google took the same amount of my time as interviewing at Amazon. Why would it not be worthwhile to peruse all options, especially when one of the options seems better than the rest?


> Interviewing at Google took the same amount of my time as interviewing at Amazon.

Both of which consist of a sequence of several interviews that can take a significant amount of time, time that could be better used applying to other companies.

> Why would it not be worthwhile to peruse all options, especially when one of the options seems better than the rest?

Because it's not better, not on the whole. The nice perks are only one factor - the competitiveness of the interview process must be considered as well. When my competitors, such as the guy who wrote TFA, are willing to go to fanatical lengths to do well in the interview process, it's not worth the trouble of applying.

In fact, with lower competitiveness among applicants at other companies, I could demand a higher salary, and then use that salary to buy gourmet food/coffee and pay for Instacart to get the same grocery delivery services you get for free at Google. You shouldn't forget that a lot of those Google perks are fungible, given a higher salary. Actually, I would prefer the cash over the free coffee - I hate the taste of coffee and it gives me indigestion, so I don't benefit at all from free gourmet coffee at work.


I have been told that these "perks" make sense if you are a young (starving) grad just out of school for whom the idea of anything that is not Ramen or Cold Pizza is heavenly. However, when you get older, you find that cold cash can pay for things like diapers, child care and that additional car that your family needs.

(Personally, I am not a big fan of the free food anywhere (I like eating healthy at home). I prefer getting paid more and getting to do my work without any drama. )


In fact, with lower competitiveness among applicants at other companies, I could demand a higher salary, and then use that salary to buy gourmet food/coffee and pay for Instacart to get the same grocery delivery services you get for free at Google.

Google pays me more than I made at an investment bank as a contractor, so I don't really think I'm giving up anything. I get free food and enough money to pay someone to cook for me if I wanted. (The food at Google is pretty nice, though, so I don't have to do that. We have five different cafes in the New York office, so there's always something good regardless of your preferences. Even the strict vegans get multiple options!)

But I disagree with your premise: I don't think firms with low-quality applicants will pay you more because you're a high-quality applicant. How will they recognize your value-add if they've never seen it before?

(As for coffee giving you indigestion: the reason Google provides coffee is because people want it. If you want something else, they'll give it to you. The idea is to keep you engaged and focused on work, not to make Google appealing to coffee snobs. Though with Intelligentsia, Stumptown, and Gorilla coffee, it is pretty darn appealing!

http://www.dearcoffeeiloveyou.com/the-coffee-lab-at-google-l...)


If you feel that one of the options has a much greater chance of a payoff and your time is limited in any way, the choice is obvious.

Of course if it'd be no effort for you to pass the Google interview, you might as well.

edit: to clarify, by a payoff I meant a job offer


Only one 30" monitor?

(My stock of Google-issued hardware now consists of 3 24" monitors and 5 computers. I use 'em all, too.)


I do have two desktops, but have so far resisted the temptation to steal my PM's 24" monitors that he never uses. I need the desk space for my marble track anyway.


Maybe it depends on the level you're going in at.

I went through an Amazon interview process that had the nickname "the round". It required that I speak to 12 unique people during the process, and as such required 14 interviews (most face-to-face, some phone). Those were with people at the same level (architect), people above the level (a board member/leadership), people below the level (principle developers).

In addition to that was a 5 hour technical test that I found really good fun. The first hour I was totally stumped as to how to even begin, so I took a tea break out of frustration and nerves and found that I then completed it in around 10 minutes.

I found the test fascinating... a very simple thing that tested a lot of the basics in one go as well as how you might solve a very obscure and rare problem.

I won't share details on that test out of respect. Hiring is hard and I'm sure that they are re-using that technical test.

At the end I didn't get the job as I was "too technical" and the position was for a solutions architect and would have involved lots of customer contact. But I was offered an equivalent developer track position, though unfortunately I personally feel my strength is to always be listening to customers, so I then declined.

The process was interesting though. There were good questions, the interrogation of knowledge at a very deep technical level, and most of the face-to-face interviews included some technical element.

Because I hire too I find going through interviews to be a rare chance to deconstruct someone else's process and to try and gain an insight into what they look for.

I do not think that the higher level positions at Amazon would be "no trouble", the interviewers knew exactly what they wanted and the process was an enjoyable challenge.


> when you can instead much more easily get a position at a > lower profile company, like Amazon or Microsoft

It's not quite comparable. When I was a hiring manager at Microsoft, I regularly saw candidate who already had offers from Amazon and Google that didn't even make it through a half-day of interviews. I assume the same is for candidate that we made offers to who went to Google. The companies are all both looking for slightly different things - culture fit is a HUGE part - and there's some random luck of the draw. (e.g., did your first interviewer just come to work after a fight with their husband?)


Just for argument's sake, think of it like a college application process. Google might be MIT and Amazon somewhere like RPI.

Why try so hard to into a school that everyone is applying to when you can instead much more easily get a position at a lower profile school?"

RPI is easier to get into and could still give you challenging and rewarding work, but that doesn't mean it isn't worth the extra effort to get into the more difficult and sought-after position.


It's interesting that you should bring up the college application process. I came to a similar conclusion for college. Rather than going to an Ivy League (or MIT/Stanford) school, I went to a fairly good (top 20) university instead. I got a full ride, which allowed me to come out of college with a net profit of $25k. To this day, I have no regrets about the decision I made, while I have friends who went to the Ivies and are now still in debt and without a good job (primarily because they went into finance right before things went to hell in a handbasket, but still).


This may have been true when you were at college, but the Ivy I went to operated (and still operates) on a need-blind basis for scholarships. This effectively means you pay what you/your family can afford, and this college also operates a 'no debt' policy. For some students (particularly international ones, where the majority of US colleges don't offer need-blind aid) an Ivy League school can actually be cheaper than other respected colleges.


I didn't specifically prepare for my interview with Google. A quick poll of my office mates indicates that they didn't either. This might not be typical, but I don't think the OPs degree of interview preparation is necessary.

I've interviewed (and gotten offers from) Microsoft and Amazon as well. Their interviews were different (Microsoft asked more puzzle-type questions, Amazon was very OO-focused), but I didn't feel like the Google interview was substantially harder or easier.


> But as an aside: is it really typical for someone to prepare this hard for an interview, even if it is for a dream company? If so, then something seems to be clearly broken with the interview process. My idea of a superstar candidate is not someone who memorizes possible questions and answers, but simply someone who is really really good at what he does.

The problem is that the google process tests how good a computer scientist you are. Irrespective of how good you are with the fundamentals, the fact of the matter is that is most software engineering jobs don't necessarily involve that much algorithmic knowledge and essentially are all about glueing complicated systems together. Irrespective of how much practice you have gotten in the past, practice for an interview is unfortunately essential. The process is broken and people just believe that copying the Google process will help which really doesn't.

(I am not disagreeing with you that the person did seem more intense than usual but the again what is intense for me might not be intense for him: Who am I to judge?)


Is is, but the fact is that people who work at these companies don't really work on problems like those posed at interviews. Once you're in, you're in, and you can relax, more or less. The sense I've developed over the years is that hiring processes like these are engineered to find overqualified employees.


You are right in principle but the outcome of the interview is a combination of two factors: the baseline of real skill and the "noise" of your preparedness, mood on the particular day, judgement of the interviewer and so on. You can't change that, therefore it makes sense to put effort into improving the part of the noise that you can control.

And also: a good preparation actually increases your real skill baseline.


Part of preparation of this kind is merely getting comfortable with the idea of problem solving and coding in a high pressure environment, many otherwise excellent candidates eliminate themselves by choking at the whiteboard or collaborative editing tool. A day of serial technical interviews can be a brutal exercise that is very different from flow coding.


I'm generally not one to get excited about the concept of gamification. However, I thought the variable reward stuff was novel and interesting (and obvious, in hindsight).


I was surprised to see no positive comments here at all (at the time I posted this comment).

So let me say: thank you for an excellent article. Yes, intrinsic motivation is great, and yes, cramming is not the most effective long-term learning approach. However, there are always going to be short-term challenges to overcome that require something like cramming. That's just part of life. And this is a novel, intriguing approach to it that worked for someone in the real world.

Thought-provoking and enlightening. Exactly the kind of thing I hope to find on Hacker News.


Agreed.I particularly liked the 'reward feint' idea, and now I might even watch the linked video talk.

(Possibly the article title could have been tweaked to avoid some of the piling-on: How I hacked my interview preparation process?).


Wouldn't you catch on to your own trick after a while?


Lots negativity here.

The guy appears to have enjoyed himself while exploring a fairly unique skill in the process of working towards a major personal goal.

Seems like a multiple win to me.


Wow, thats a lot of negativity here.

There were some neat tricks to use here:

1) The reward feint - people are statistically terrible prognosticators of what would make them happy. Setting a stretch reward which actually uses this aspect of to create a positive outcome is really neat.

2) The variable reward schedule? just 2 coin flips is a really stupidly obvious solution, and variable reward schedules are like crack for the brain.

3) How he dealt with high energy requirement prep, during low energy periods. That's something I've faced and I used to just say "man I've just got to work through it."

These were some obvious things executed nicely. For people who are facing trouble with intrinsic motivation, this is something that can be set up and launched and will helps you get through the hump.

edit: flow/redundant bits removed.


I'm all for finding ways to motivate yourself, but there's no need to spend this much time on interview prep.

Google is a great company to work for, but there are many other good ones out there, and any application process is always a roll of the dice. Google turns away plenty of extremely qualified people (as do every other large tech company) and they also occasionally hire some incompetent ones. Pinning your hopes on a single company is a recipe for disappointment.


The problem is this is a little disturbing and honestly pretty unhealthy; i.e. I think this would lead to some kind of burnout or breakdown either mentally or physically. Sure, it seems like an awful lot of work for the ultimate reward of working at Google, not exactly like winning the Nobel prize or something.

Earning energy drinks for performing tasks that seem to almost require energy drinks in the first place seems to be a scary feedback loop. I think the other major issue with this is your treating yourself like some kind of machine or simple animal that performs tricks or that runs toward dangling carrots. If you have the discipline, which I wouldn't, to stick this burnout game, it seems like you should have the discipline to take a more reasonable and measured approach to doing an appropriate level of study/preparation without all this stuff. And all this business of mechanistically surrendering yourself to progress bars ... I think people that go to this extreme need to study more humanities and learn more big picture kind of things; this is like describing behavior one would find in characters in some dystopian novel.


Laughs and just closes browser. I've had enough guys.


This is just sad.


Can you expound on why you feel this way? Personally, I prefer the strength of intrinsic rewards. Gamification seems to devalue my effort. But I'm not denying that it works for people. It might not be a perfect solution, but an 80% solution is better than not preparing for an interview or not being active (FitBit). Why dismiss this outright?


I think it's less about the gamification than about the disturbing trend of "tasteless nerds who want to work at Google at all cost". It seems people just want to get in the door and they don't even care about what they're working on or whether it's the right job for them.

I guess the fantastic Google PR team from 2004 did a number on the psyche. It becomes implanted in people's heads that if they work for Google, that means they're automatically successful. (note: I work there and don't think that)

I guess it is true, outside the Bay Area, that if you tell someone you work at Google, you will get your ego flattered. In the Bay Area this was true until 2007-2008 or so.


I resonate with this, its fine to say "I am passionate about productizing a self driving car, and Google is the only place I can realistically see doing that." It is another to just want to "work at Google."

So now that he's checked the box (do they still do slotting? If so the box isn't actually checked yet) what is his motivation, eat at all the cafes? Get a months worth of t-shirts?

Hope he is wildly successful, and sad that the interview would be such a barrier.


one of my primary motivations for joining google was because i really wanted to be in (what i felt, from talking to my friends that worked there, was) a place that was passionate about the quality and health of their codebase, and that was constantly striving not just for better things to do but for better ways to do those things. so far (18 months in), it has pretty much been everything i expected it to be.

it's not true that i "don't care what i'm working on", but the basic engineering culture of google is such that i'm pretty sure i'd have been happy here even if i hadn't got my first choice of product area. i notice an overemphasis on hacker news about how there should be one Problem You're Passionate About Solving, and that that should be what drives you, but that's very much a psychology-of-the-individual thing.


There is a good reason for someone young in their career to work at Google: Studying how large systems were designed, built and how they handle cruft. Sure there are hot Startups where you get to reinvent the wheel but those opportunities come once in a while. These statements probably apply to any big company but Google is one of the most palatable ones in the bay area.


Why "tasteless"?


It's an interesting article, but I doubt the gamification stuff would work for me at all.

It does nothing for me to create some artificial reward unrelated to the goal I'm trying to accomplish. If accomplishing the goal isn't reward enough on its own, then why should I do it? That's especially true if the reward is something I can I have anyway. There is no net gain by depriving myself of an energy drink in my refrigerator for another hour. The energy drink was already mine; and was mine to have when I decided to have it. The gamification idea seems trite to me.


What is wrong with preparing hard. I love how he gamified the interview and used the right tools for motivation. Imagine applying this to other facets like project completion, study etc ...


theres nothing wrong with proper preparation, but the whole idea of gamifying the process seems incredibly unnecessary. As an employer I look for people that are very self motivated, and don't require any external motivations like an ipad to do something. If someone told me they needed this type of effort to get something done that as in his words "is a dream of mine", then he already failed my test.


He generated his own motivation: His external motivations were bought with his own money. Why is this a problem as long as he gets the job done? Everyone gets motivated by something: After all, as an employer, surely you do pay your employees, don't you? That does act as some sort of motivation. Otherwise, they would be all working for you for free just driven by all that "self-motivation".


in the context of work yes. But in the context of learning or bettering your skills and yourself... this type of motivation is best from people that want to do it because they want to make themselves better. So if everytime I expect him to learn something new that will help him in his career path, I have to give him a bonus or a raise it doesn't scale.


That's a silly test then. Everybody needs to be motivated to work, whether their motivation is supporting a family, making money, enjoying a task etc etc. There's no inherent enjoyment to making money for somebody else.


in the context of work yes. But in the context of learning or bettering your skills and yourself... this type of motivation is best from people that want to do it because they want to make themselves better.


I was expecting to read something about what he read, trained, etc. for the interview. "Gamification"? Ridiculous.


Agreed. This is a simple case of doing good preparation. Gamification has zero to do with it. Sadly, he spent the entire article talking about the wrong thing, because gamification is his SEO soapbox. "Must make square peg fit in round hole."


Man, the whole story is quite sad.

Dream company?

Hope you love working there for ... ever!


Anyone else get an annoying social share floating toolbar making the bottom third or so of the page unreadable? Firefox 17.


The floating Social Media Integration Station covers the words of the piece on Safari.




Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact

Search: