12 ms·
What I learned interviewing with Google
- findm 15y agoYour site is down for the count.
- wesbos 15y agohah sorry :\ Just refresh and it should load. Time for a new server.
- oinksoft 15y agoI'd not use GoDaddy hosting if I were you :^)
- Matt_Cutts 15y agoI'm glad that you had a pretty good experience overall. I know that lots of folks at Google have worked to try to make interviewing less painful (like limiting the max number of interviews you'll have to do). It's nice to get an independent datapoint where the experience was pretty good, even if it didn't work out this time.
- wesbos 15y agoThanks Matt, everyone I was in touch with at Google made me feel super comfortable, you guys are doing it right :)
- uberPhil 15y agoSometimes I feel like it's a total crap-shoot with getting interviews at some of these large companies. There were quite a few positions available in the DC Metro area that I was probably more then qualified for or at least qualified enough to get a phone interview. Needless to say, I was never contacted. It's good to know that some people actually get to a phone interview :)
- thinkdevcode 15y agoDo you really want to be subjected to coding on a whiteboard? Edit: Instead of down-voting, why don't you explain to me why you would want to code on a whiteboard when it's completely pointless. Might as well throw in some of those pointless questions like why are manholes round?
- uberPhil 15y agodo employers really expect candidates to right syntax accurate code on a whiteboard? I just always assumed that pseudo-code was appropriate. There are a lot of key strokes that my fingers know but my brain doesn't. It's very easy to get confused and thrown off your game.
- steffan 15y agoI don't necessarily expect candidates to have perfect syntax for a given language. (there's a presumption that they would be able to look up correct syntax in practice) At the same time, if you're unable to express your ideas in something close to real code, it is a signal that you're not sufficiently familiar with the language you chose.
- thinkdevcode 15y agoOR you can hand the applicants a laptop and allow them to write code, which is what they are going to be doing on the job presumably. or does Google develop their applications on whiteboards now? I'm thinking a Minority Report-esque digital screen that programmers drag/drop with voice activation to "code". In all seriousness, I really don't get whiteboarding in interviews.
- robrenaud 15y agoExcepting declaring funky things like arrays of pointers to functions in C, what competent developer doesn't know the syntax to his or her own best 2 or 3 languages? There is a difference between forgetting to put a semicolon at the end of a line (totally harmless on a whiteboard interview), and not knowing that semicolons end statements in C. Of course, not knowing say, part of the standard library, say the semantics of rand(), without a man page or Google search is much more excusable.
- shtylman 15y agoWhy would you sign an NDA for a job interview?
- mapleoin 15y agoSome big companies make you sign an NDA the moment you enter the door. I always assumed it's natural for ugly corporatey giants.
- bstpierre 15y agoI've interviewed for small companies that want an NDA at the front door too.
- wavephorm 15y agoDo your profession a favor and DO NOT sign an NDA in this situation. It's just terrible. Same goes for people that sign non-competes, and thought-police agreements upon being hired. Don't do it. It's optional, you have the right to refuse. By signing you are putting a huge amount of liability on your shoulders for no reason. You're giving that company the right to sue you for practically any reason they can conjure up.
- jrockway 15y agoThe company already has the right to sue you for any reason they can conjure up. This is America.
- bstpierre 15y agoI don't really see the problem with a simple NDA. Them: We're going to tell you secret stuff during the interview. Promise not to blab? Me: Yeah, sure. As far as non-competes and IP-assignment, from what I've seen these have gotten much more reasonable over the past 15 years. If you write or invent it on the job, it's a "work for hire" and the company owns it. What's wrong with that? If you don't want to sign, that's fine. But there are probably 400 to 1000 other people interested in that open position, and 99% of them are going to sign the NDA. Them: Please sign this NDA. You: No, I don't sign NDAs. Them (looking at the next guy in line): NEXT!
- illumen 15y agoI make development software for companies like Google. Currently their biggest demand is to be able to use their white board instead of the keyboard+IDE for input. We call it an IDW, Integrated Development Whiteboard. Also, they need tools to help them develop different sorting algorithms and link lists. Plus they are having trouble with binary trees, but link lists and bubble sorts are their number 1 priority! Instead of more advanced performance modeling, they want to use this non-sciency thing called Big O notation. Once they write a Big O notation on the IDW(Integrated Development Whiteboard) they expect it to go that fast. If it doesn't go that fast... they just chuck more servers at it (we supply their servers too, so Big O makes us happy). They also want us to provide them with flannel shirts and dr martins for uniforms. They say that 90s clothes help them with their interviewing techniques, because it helps them remember how interviews were done in the day; when they were edgy.
- ender7 15y agoPart of the point of the whiteboard is that it's not a real development environment. Google interviews are usually designed to test how you think, not how well you can place a semicolon. The point is, it's okay if you miss a brace or forget the name of a method. It also allows you to mix diagrams and psuedo-code in with 'real' code in an easy way. (also, I can't think of a better environment to give them. You can't provide everyone with their favorite IDE with all the code hints, so in the end it's just going to be a dumb text editor anyway) Working on a whiteboard is definitely a skill, but one that's worth developing if you plan to work with others on a complex project. That said, they really shouldn't have been giving this guy standard CS questions. Sure, you want to make sure that he understands why writing his string concatenation loop the wrong way will result in O(n^2) behavior, but he was interviewing for a front-end position.
- nostrademons 15y agoThe front-end interviews are a mix of front-end focused interviewers and gen-eng interviewers (usually 3 & 2, respectively). That's because the frontend-SWE position involves writing JS/HTML/CSS to run in a browser, but it also involves writing the server code that generates that JS/HTML/CSS (same reason that Java or C++ is part of the job req). We care very much about efficiency when your code runs on tens of thousands of servers. There are also a bunch of algorithmic questions that come up in the browser as well, because unlike a lot of sites, Google actually cares about latency. You often can't use a library function if it involves pulling in a 300K library, nor can you write an O(n^2) algorithm if it involves locking up the browser.
- varelse 15y agoWell, here's what I learned interviewing at google: Be very good at off-the-cuff 80% solutions to topcoder problems on a whiteboard, which I am. So much so, that when they told me to use whatever sort algorithm I wanted to, I used bubblesort on purpose, to prove a point, and got away with it. Later on, I reduced another interviewer's search problem to a polynomial equation that had integer roots when a solution existed (at which point he asked me what I'd do on an architecture that didn't have a square root or a divide function and I replied "and what modern architecture would that be?"). Which is to say their interview process is a computer science puzzle game IMO. The skills displayed here have at best a loose correlation with one's engineering skills, and that non-correlation shows up like crazy in their codebases (but Steve Yegge already covered that far better than I can). So if you are a demo coder at heart, and you've been paying attention to whatever technologies are the flavor of the month at google interviews by reading blog entries like this (apparently javascript these days), you'll do just fine. In my case, it only took one round for me to get the offer which I (unfortunately) accepted (but the tale of my 4 godawful months at google thanks to naively letting myself get blind-allocated into the wrong team is a different story). Google is a great company, really it is. I know lots of relatively happy people there, but focusing on the interview process is a mistake. The real challenge is to get yourself hired onto a good team by resisting all the pressure they exert to persuade you to jump into the blind pool, which is a recipe for russian roulette. The solution, which in retrospect I smack myself for not doing the due diligence to find out, is to insist on getting allocated to and speaking with your future team as a condition of accepting an offer. Do not compromise on this point.
- charolastrauno 15y agoWhat team and why was it so awful? I agree that the pool system sucks.
- Jabbles 15y agoWhat point did you prove with bubble-sort? Was the list already nearly-sorted?
- wisty 15y ago
- garg 15y ago>The HR rep sent over an email with some guidelines and things to brush up on which included comp sci 101 things such as sorting algos, hash tables, binary trees and so on. Does your NDA allow you to post these guidelines? Is so, please do.
- mundizzle 15y agoi hear stories like this a lot. serious question... why does Google ask standard comp sci questions when interviewing for front-end developers? in over 10 years of front-end development for non-trivial business applications, i have yet to encounter a scenario where ignorance of bubble sort prevented me from doing my job well. i can tell you what i value when interviewing a front-end developer - in depth knowledge of cross browser quirks and coding techniques to address said quirks (sans jQuery). someone who can tell me what OOCSS is and why it's beneficial. someone who values every pixel, http request, and div like it was their last and uses them wisely. i don't discount the value of standard comp sci knowledge, but i get rage face if someone judges my skill as a front-end developer based on how well i answer those types of questions lastly, ever view source of any Google app? that tells me all i need to know about their idea of a front-end development
- derekdahmer 15y agoSimilar to how graduating college shows you were able to work hard and learn many different subjects effectively for four years, being able to solve a google problem shows that you A) are smart enough to have understood and retained it from when you were first taught it or B) were driven enough to sit down and learn tough conceptual problems in a few weeks. So, its less that you know that particular subject, and more what you being able to pick it up is an indicator of.
- mundizzle 15y agoSure, I can understand that. My point is that most of the very best front-end developers I've met don't have CS degrees. So it seems unfair to penalize them for something they've never been exposed too. There are other ways to assess someones conceptual ability.
- ww520 15y agoThe questions asked illustrate what the interviewers know and don't know. Google is reputed to have a mono-culture of CS-heavy people. They know CS-related questions the best and that what they would ask.
- 15y ago
- gaving 15y agoprobably the most boring thing I've read all day
- jmsduran 15y agoI had the opportunity to interview with Google. Overall it was a great learning experience, and demonstrated to me the skills and aptitudes required if I wanted to play with the "big boys". Regarding their interview questions, you either know it or you don't. From my personal experience, Google's rounds of questioning are intentionally designed to weed out the people who fake it or try to cram up beforehand. For software engineering, they are interested in applicants who naturally demonstrate keen skill when it comes to CS fundamentals (algorithms, data structures, discrete mathematics, etc.). Throughout my phone interviews, Marissa Mayer's quote "A good student excels in all subjects" kept running through my head. After interviewing with them, I believe Google holds all their employees to a similar standard.
- feralchimp 15y agoThe most likely explanations for a company like Google using whiteboard questions: - These interviews are easy to give for someone without good interviewing skills, which is basically everyone. - These interviews are relatively easy to score. - Google acquires superstars through acquisition. If you need some competent rank-and-file (i.e. a "pool") to support the superstars, whiteboarding is maybe an okay way to weed out people who definitely won't rise to the occasion. It's a little insulting, but their pay scale probably balances that out.
- nohup 15y agoI got a call to interview with Google 10 months ago. Had two phone interviews which went well, could not answer a Javascript prototype object model question, but the interviewer was very kind go explain me where I was wrong. After a few weeks went for an interview at their MV campus, awesome place. Of the 4 interviews of 45 minutes each and one lunch session that I had, I would say I did good in 2, fine in 1 and goofed up 1. I did not get an offer, I had guessed that with how my interview went, but my hopes were high :-). All in all I learned new things, met some excellent people and had a great time. I had read online about the white board process, so I was prepared for that. I really feel for the interviewers that they had to sit for 45 minutes looking at my bad handwriting ;-). The only thing that I could not understand was why when I was not being interviewed for a traditional engineering role, I was being questioned about Big O, algo design etc. The HR lady told me it would be related to the area of my work (Web development, Javascript, Open source contributions etc), but the interview at MV was not at all like that. Having read other peoples experience with interviews at Google and the scale of their APIs, I think at some point they are looking for people who can do whatever is thrown at them and not just be bound to the technologies they know. All the CS questions they asked me, I feel they were justified to ask them, they wanted to find out if I will be able to work in other areas if need be and not just be "a frontend developer". The interview was easy, I was just not prepared to answer those questions. Given a chance, I will do it all over again, but this time will go mentally prepared for a CS 101 interview as well.
- justin_vanw 15y agoI guess I don't understand the 'I failed to do this, let me give you advice now' movement. From his own description the author is woefully under qualified. Interviewing is one of the purest Bayesian actions people do. We have to take a bunch of limited and incomplete information about a person and try to determine whether they are likely to succeed or not. Most interviewers would love to find people that are smart, able to learn quickly and well, and motivated, excited energetic. The best measure of these things isn't whether the person seems smart, or energetic, everyone is trying to seem smart and energetic and positive in an interview. The best measure is whether they were smart and energetic in the past, and the best guage of that is how deeply they learned in previous experiences. If they are a 'javascript programmer', not knowing javascript syntax by heart is a strong indicator they just kludged through without much deep interest in what they were doing. Being unable to program on a whiteboard means you don't really know the language you are using. Relying on an IDE to prompt you every time you make an error is a huge crutch, and IDE's can only help you with obvious cases, there are many times where you can get code past the IDE as syntatically correct but logically wrong.
- nessus42 15y agoBeing unable to program on a whiteboard means you don't really know the language you are using. This is nonsense. I have a degree from MIT. I've spent the last 15 years programming in C++, Python, Scala, Lisp, Java, SQL, and JavaScript, etc. I've worked on compilers, space telescopes, and brain surgery software, and I know all of these languages fine. There's no way that I would be able to program on a whiteboard without a lot of practice, however. Most likely, I wouldn't be able to remember my own name if you made me stand at a whiteboard to program in an interview situation. Fortunately when I interviewed at Google they let me use pencil and paper. Btw, I use Emacs much more than an IDE, and much of the knowledge I have for syntax is built into my typing fingers.
- atarian 15y agoCoding with pencil/paper is in the same league as coding on the whiteboard. It's not nonsense and you know it too. You just deliberately missed the point of his post just so you could brag about being from MIT and all the stuff you worked on.
- sitharus 15y agoI interviewed with Google at the end of last year. The only thing I took away was that their recruitment people aren't very good at pre-screening and they seemed to like wasting my time. The first two interviews were OK, basic UNIX admin and software type questions, I could answer most off the top of my head. The third was with someone who certainly had a maths degree and wanted to make sure I knew it. It all left a rather bad impression.
- jumby 15y agoTypical Google waste-of-probably-a-decent-engineer. A javascript coder getting asked sorting algorithm questions and Big-Oh notation. What a waste of time. Google just doesn't get it. I know all you fanboys out there will say "you need to know this stuff to be a generalist software engineer" but c'mon, hire experts in sorting algorithms if you need that for some obscure bigtable ultra-performant section of code and leave it at that. Need another example of wasting everyone's time: "She told me they primarily hire strong C++ and Java developers, something which I have very little experience with." Gee, Google, glad you still brought him in when he clearly has no interest or background in that.
- nbclark 15y agoIt's all about how you think under pressure. You have to know the basics, for sure, but the interview is much more about seeing how you think and work through problems. If you are getting asked to implement merge-sort or something, probably not a great question. But whiteboard algorithm questions let the interviewer see your thought process and how you think on your feet.