5 ms·
How I Embarrassed Myself in My Interview With Google
- anuragramdasan 13y ago+1 for "get up and deal with it".
- ape4 13y agoWell since he was asked to make a "mini google" speed and parallelism are non-concerns.
- integraton 13y agoIs 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 13y agoYup, 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 13y agoDo 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.
- hackinthebochs 13y agoEveryone loves to say this, but this is just not how it goes in the real world. It is just bad advice for people to focus so much on this one aspect when in reality it will only help you land interviews with people that regularly read HN.
- elnate 13y agoWhat would your advice be?
- hackinthebochs 13y agoI'm certainly no expert at hiring or getting hired so don't take my opinion at face value, but since my opinion seems to be somewhat unique around here I think it has value for that reason. But advice really depends on the context of the person: what they've done, what degrees they have, what type of job they're looking for, etc. But to address the type of people the "show me the code" response is geared towards: instead of a github profile I would say build actual products. Code in isolation is hard to understand, even to the point where its nearly useless. But having a couple of full blown web applications that do something useful shows all an employer needs to know (even if they have 0 users). Everyone can understand actual sites that look polished and professional, and shows that this person will bring value to the company (whether from a business perspective or from being a competent programmer). Good coding practices can be taught or enforced through process, but being able to construct an actual non trivial product is what employers really want. How the code actually looks is less important than what it does. Of course, feel free to put the code on github if you want, there are some interviewers that might consider that a bonus. But for most people its too much effort to make any practical sense out of what they're seeing. Just a repository of code without any context doesn't help.
- elnate 13y agoThanks
- yongjik 13y ago
- eterm 13y agoThis is his take on what went wrong with the interview, it's just one side. Perhaps another side is that he didn't seem to be guided to the correct solution during the interview process, which would concern me more than not getting it right first time if I were hiring.
- nerfhammer 13y agoEven if he got it slightly wrong, the more fundamental problem is sample size. CRUMB : BREAD :: (A) ounce : unit (B) splinter : wood How much confidence would you have in a version of the SAT that was reduced to just one question which determined the entire score? It's exactly analogous to tech interviewing. It's like saying, oh he couldn't even get that analogy right! He can't do analogies. Same thing with giving people one programming question. Much less nitpicking that one question... So we are forced to go on lots of interviews and just hope that we happen to quickly grok the one or two problems they give us -- so we'll look "perfect" in that short period of time. which is eventually almost certain given enough interviews. but you can't be super confident to pass any particular interview you might have had your hopes on.
- RodericDay 13y agonot a bad read but please less "failcatz" pics on the body next time. maybe they can be tiled on the side or something?
- AccordionGuy 13y agoI tend to go with more humourous bits like that on weekend posts; that's my style.
- deleted 13y ago[deleted]
- deleted 13y ago[deleted]
- thorp 13y agoHow 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 13y agoI 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).
- bsaul 13y agoI 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.
- swanson 13y agoDon'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 13y ago...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.
- natch 13y agoSo 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 13y agoI 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 13y agoIf 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.
- deleted 13y ago[deleted]
- mortdeus 13y agoIf 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.
- alecbenzer 13y agoThis just seems silly to say. If you were asked to write a regex engine as an exercise you'd say "No thats not a problem that needs to be fixed anymore."? How would you expect to be able to improve performance of regex engines without understanding how a basic regex engine works?
- goatslacker 13y agoWhile you're not expected to be an encyclopedia of knowledge about any particular language, framework, or API; having the frequent need to look things up is a red flag because if you're always looking things up you may not move fast enough. Also, having the "this is not a problem" attitude is a red flag; what else would this person not consider a problem when I hire them?
- enscr 13y agoyou might miss out on a lot of bright bulbs if you keep red-flagging them because you think they won't move fast enough.
- goatslacker 13y agoI may; hiring is tough. You only have a few minutes to gauge whether you'll work well with that person or not and bad signals are bad signals. I can't green light all candidates just in case. It all depends on the tone and the body language and if they're able to continue with guidance.
- yongjik 13y ago> 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.
- spiritplumber 13y agoTrue 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 13y agoI'm sure they're upset that they didn't hire you.
- spiritplumber 13y agoThat 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.
- asdfologist 13y agoOn 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-35894743-on-gpas-and-brain-teasers-new-insights-from-google-on-recruiting-and-hiring http://www.linkedin.com/today/post/article/20130620142512-35...), I wonder whether they have also managed to identify good and bad interviewers.
- ilyanep 13y agoI 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 13y agoI 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 13y agoI guess that's fair enough. I'm just personally squeamish about sharing most interview details this publicly, but perhaps you're right.
- garthdog 13y agoI 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 13y agoI 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 13y agoI 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 13y agoTo 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 13y agoto 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.