14 ms·
How to Ace the Google Interview: Ultimate Guide
- tempsolution 7y agoWow cool, how easy it is these days to get these 200k jobs... Why doesn't everyone work at Google?
- ssambros 7y ago> For the phone interview, it will be on a Google document, and for the onsite interview, it will be writing code on a whiteboard. That part is not completely correct. At onsite can choose to write code in a Chromebook which will have a lightweight editor with syntax highlighting.
- avbor 7y agoDid they finish rolling them out? I know that is (was?) the plan, but when I interviewed last year at the Santa Monica location, they only had whiteboard.
- ssambros 7y agoIndeed not all locations have it, but I believe the major ones, like Santa Monica, should have it available by now.
- oksurewhynot 7y agoIt wasn't really a choice when I interviewed there. All but one interviewer had me write code in the chromebook, which was my least favorite part of the interview process. The trackpad didn't respond to my slightly dry erase covered fingers, the keyboard was weird, and the quasi hangout software it was running crashed a few times, one of which required a full restart. That might not sound like a big deal but in a high pressure/time constrained environment it was a bit of a nightmare. I was told going in that the chromebooks would be available as an option, but writing a few lines of code only to be told to stop and switch over to the chromebook (which had either gone to sleep or frozen), have the interviewer log in and select the correct session, then select syntax highlighting, then finally being able to start writing code doesn't seem very conducive to maintaining a train of thought.
- dmoy 7y agoTell your recruiter, interviewers are not supposed to force candidates to use chromebooks.
- oksurewhynot 7y agoI thought about it, but the chromebook hang ups were not the deciding factor in my performance (I did extremely meh and am fine with that because I'm entirely self taught and to even get that far was really cool). There were other larger problems with the process that google should be fixing instead of dinking around with chromebooks (I'm assuming they were there so code could be reviewed afterwards, which makes sense).
- HALtheWise 7y agoI interviewed at Google in January, and they offered to let me use a computer if I had accessibility concerns with a whiteboard or really really wanted to, but discouraged it because they found it often made candidates too focused on the syntax of their code and less likely to have a meaningful high-level discussion with the interviewer.
- Frost1x 7y agoThat's hilariously ironic. If they wanted meaningful high level discussions without syntax focus, their interview structure would be different. The most obvious change was to accept psuedo-code (like in the olden times) to reduce cognitive load dealing with: syntax, dynamic problem solving, and dealing with someone asking you random questions shifting your train of thought or changing the problem description on the spot. This now common poorly structured interview process does a lot to discourage high level conversation and low focus on syntax. It tends to get hung up on language specific syntax, data structure recall, and less on designing and analyzing solutions. BS atop BS... its BS all the way down
- RealDinosaur 7y agoThe amount of time required to 'learn' the Google interview would be time that could be spent learning more universally applicable skills. Is it true that an experienced developer would not be able to pass the interview without studying using a similar guide? If so, then the interview process is... fubar.
- CobrastanJorji 7y agoA perfect job interview could be defined as an interview for which the best study technique is to become a better choice for the role. Studying skills that would not directly contribute to job performance would not change the result of a perfect job interview in any way. In that sense, it's probably a good indicator for Google that the interview advice includes "practice writing code", "make it a habit to validate input", and "learn about data structures", and it's probably a bad indicator for Google that the advice includes "practice writing syntactically correct code on a whiteboard" and "practice solving problems with a 30 minute timer."
- shaftway 7y agoI'm in the interviewer pool @ Google. > practice writing syntactically correct code on a whiteboard This probably differs from interviewer to interviewer as to how strictly it's adhered to, but it's not really a hard and fast rule. I'm sure there are some interviewers that will ding you on a forgotten semicolon, but I suspect that most would not. Personally I look for code that isn't so far from syntactically correct that it's clear you are trying to BS me. I'll even accept pseudocode for the most part. But I've had candidates that try to make up language features, and that doesn't fly with me. > practice solving problems with a 30 minute timer I only give my candidates 30 minutes. The whole interview is 45, I spend 5 minutes introducing myself and setting up expectations, 30 on the question, and 10 on answering their questions (after all, they're also interviewing us). You can tell pretty early whether they're on a solid trajectory, and I'll offer the occasional hint to keep someone on track, or ask tangential questions if they're doing well on time. Not finishing isn't a deal killer, provided you had a solid approach and weren't just running in circles. But a good candidate will finish in about 25 minutes and we can spend some time talking about alternate approaches. Sometimes I'll show them the optional approach and see how that conversation goes. Nine times out of ten a candidate scores low because they overlooked an infinite loop or code would crash on boundary conditions and candidate wasn't able to realize that even with hints.
- neduma 7y agoSeems like there are lot of sites like this in past few years. Great.
- awiesenhofer 7y agoGenuine Question: Apart from maybe the money or a nice resume entry, why would you/do you want to?
- joegahona 7y agoThose are not insignificant reasons.
- seansmccullough 7y agoBoth of those are pretty substantial.
- ebg13 7y ago> Apart from maybe the money or a nice resume entry Return question: Do you have a firm grasp on quite how much money it is?
- simmanian 7y agoI don't work at Google (and I don't agree with some of the things the company's decided to do) but have many friends who enjoy working there. From what I hear, Google has an organizational structure that is very favorable for regular engineers. Once you're hired and you put in around a year of work in a team, it's almost trivial to find another team. Engineers also directly evaluate managers and I've heard stories of mid to high level managers crying in bathrooms because of poor reviews from their reports. These factors combine to create an environment where teams are actively working to make engineers happy and content. Compared to many companies where managers make a lot of decisions in a room with no feedback given to or received from engineers, it's heck of a lot better.
- hnaccy 7y agoI've been trying to prepare and it makes me want to bang my head against a wall. Prepping while working is draining.
- notus 7y agoIsn't the interview different depending on the job?
- zhengyi13 7y agoMy immediate reaction to the title of the article was "... for SWEs and possibly SREs". But to answer your question, yes, absolutely.
- coleca 7y agoAny ideas what the process would look like for something like Solution Architect for Google Cloud? I can’t imagine that there would be graphs and tree coding questions but you never know.
- simmanian 7y agoI think it largely depends on the person interviewing you. I know candidates interviewing for Machine Learning positions get asked with typical algorithm questions.
- topicseed 7y agoIt's also a good marketing milking cow to create paid courses and trainings for Google interviews — the dream of so many novice devs and other "Intensive Coding Bootcamp" participants. Keyword research and trends... https://trends.google.com/trends/explore?date=all&geo=US&q=Google%20job%20interview https://trends.google.com/trends/explore?date=all&geo=US&q=G...
- Frost1x 7y agoI'm semi-convinced this is yet another reason for perpetuating this type of poor interview practice (not just at Google). When you search modern interview topic and comments/opinions on the current process, you'll find a few SEs (typically working at places like Google at some point) on that on the side sell training bootcamps, etc. These people will swear every direction that it's a reasonable process in comments around the web referring to their side business. Creating problems they provide solutions to: gatekeeping 101.
- matmann2001 7y agoThis is getting ridiculous. These guides to interviewing at specific companies are starting to sound like the video game cheat code books of old. If the process is so nuanced that there's an entire industry around these types of guides (and Google even highly recommends you buy them!), then the process is fundamentally flawed. But we already knew that, and as long as others are still playing the game, we are forced to play or miss out.
- strikelaserclaw 7y agolearn with the intent to become a better engineer, even if you don't hit the google mark (which is arbitrary anyway), you will become a better engineer. That is the philosophy most people should use when trying to aim for these companies. Don't cram, learn.
- ahelwer 7y agoI disagree. Doing competitive-style programming and learning all sorts of weird algorithms has not made me a better engineer. I can count on one hand the number of times in my career that I have had to design or use an "interesting" algorithm - and no, not in the "not knowing what you don't know" sense where I could have used one if only I'd known about it.
- sanderjd 7y agoI'm very critical of this approach to interviewing in general, but it also isn't the same as competitive programming and it isn't focused on "interesting" algorithms. It is far more focused on understanding how to use data structures and the trade offs between them. Chapter 3 of "The Algorithm Design Manual" (which is fittingly titled "Data Structures") is really the most useful reference for the majority of these interviews. I don't think this is the most useful thing for software developers to be good at, but it's definitely useful and worth learning. I was annoyed that I had to study for one of these interviews, but ended up being pleased that it forced me to review this material.
- 7y ago
- csnewb 7y agoShould be titled "How to Ace the Technical Interview in the Bay Area". Even absolute shithole bottom tier companies or unknown startups are asking these questions. Write perfect code on the whiteboard or get rejected. You have to put in A LOT of time into preparation even if you don't want to work at Google, which is ridiculous.
- str33t_punk 7y agoI hate these style of interviews. I give them to prospective engineers every week for one of these FAANGM companies. They don't test for good engineers -- they test for people who practice these style interviews, and for good new graduates. It makes sense to ask these questions to new grads, but afterwards there is so much more experience that I feel like is much more important than acing data structures questions. I am amazing at whiteboard questions, but that doesn't make me a good engineer. It's because I found the trick to solving these, and have practiced them. A lot of it it is practice 'ooo this looks like a graph problem, let me use a graph', etc.
- koala_man 7y agoHave you worked with any great, experienced engineers who would have had no idea how to traverse a tree?
- hypertext7 7y agoYes, and those same great engineers went ahead and figured it out. You see, some are hiring parrots, and others are hiring problem solvers.
- koala_man 7y agoI'm all for hiring problem solvers, but how do you differentiate them if you don't ask them to solve problems? Years of experience is definitely not a guarantee of competence.
- hypertext7 7y agoHypothetical interview question: Write a function that finds the distance between two words. Candidate A: Can recite algos and remembers that Levenshtein distance is the answer. Candidate B: Has no idea what Levenshtein distance is, writes a brute-force solution with the understanding that it's not an optimal solution. After the interview she spends more time learning what she doesn't know, learns about Levenshtein distance, and sends you an optimal solution via email. The above is a real-life scenario, so my question to you is - how do you decide who to hire?
- deleted 7y ago[deleted]
- bitL 7y agoYou can bypass the whole charade by knowing 2-3 people within Google that can provide "assurance" you are good enough. Whiteboard testing is for grunts/unknowns without network. Another way is to be a significant contributor to some popular open source project.
- sandeeps_ 7y agoHow does this actually work?
- bitL 7y agoAsk your recruiter if they offer you that option. If they do, you are ranked quite high already.
- deleted 7y ago[deleted]
- seattle_spring 7y ago> You can bypass the whole charade by knowing 2-3 people within Google that can provide "assurance" you are good enough. This is not a thing. Everyone goes through the same level-adjusted loop. > Another way is to be a significant contributor to some popular open source project. LOL no. Google is literally famous for rejecting major open source contributors for not knowing how to reverse a binary tree.
- tropo 7y agoIs there something special about reversing a binary tree? AFAIK, you could swap the child pointers and do that recursively for the child nodes. You could also do things O(1) by just changing the comparison function, perhaps by wrapping it to negate the comparison.
- shaftway 7y agoThis is a specific, well-known case. Max Howell (the author of Brew) was rejected by Google. One of his interviewers asked him to invert a binary tree. https://twitter.com/mxcl/status/608682016205344768?lang=en https://twitter.com/mxcl/status/608682016205344768?lang=en
- pdonis 7y agoIt would be nice if an article on how to ace a coding interview did not have incorrect code in it. AFAICT the set-based algorithm for finding duplicates is wrong; the resulting set will contain items in the list that are not duplicated.
- LVB 7y agoIt doesn't work. Not just a coding issue either, as the code matches their explanation for this "improved" method.
- pdonis 7y ago> It doesn't work. Yes, I confirmed that by pasting it into the REPL and verifying that it gives the wrong answer for a one-element list. Apparently the author failed to follow his own advice to always test code that you write.
- yegle 7y agoThere's an unconscious bias in this post. Google as a company is not only interviewing engineering roles. Even for engineering roles, there are too many sub categories and many doesn't follow the typical SWE interview process. If you just want to know what the interview for your roles would be, the recruiter from Google will happy to give you an overview.
- hermitdev 7y agoThey lost me when they got into showing how to make the 'dups' function faster. The author definitely either doesn't understand big-O notation or doesn't understand the complexity. Their O(1) implementation is anything but. Likely O(n×log(n)) at best. Also, their brute force implementation is unnecessarily verbose. Want dups? from collections import defaultdict def dups(seq): d = defaultdict(int) for x in seq: d[x] += 1 return [k for k, v in d.items() if v > 1] Assuming Python's defaultdict has O(1) lookup/insertion (which I think it does), this algorithm is a proper O(n) complexity.
- zepolen 7y agoThey didn't say it uses O(1) complexity: > Analyzing the above approach, we have an algorithm that takes O(n) time and uses O(1) space.
- cmurphycode 7y agoHmm. I don't think they claimed to have an O(1) time solution, just O(1) added space. Which, it is, but only because they're counting on the original array's underlying type having enough bits for their sign flipping. It would be as if you used a more compact type for the array elements, and then allocated another bitmap for the range of numbers. Of course, once we start optimizing how the original array is stored, we may have exceeded the limits of this problem as a teaching exercise :) As for time, it does seem to be O(n) to me; can you clarify why you think it's nlogn? It may not be particularly fast in practice when compared to other O(n) approaches like the bitmap, but I don't think the complexity is wrong. Your solution is nice - it actually gives you more information (how many appearances, not just T/F >1 appearance), but it does require more additional space and isn't necessarily faster. I think the bitmap approach would be nicer if you're ok with using more space; the bitmap is essentially a very easy to find perfect hash function due to the unique input constraints.
- Apocryphon 7y agoQuestion for hiring managers and employers: In Silicon Valley, tech interviewing has become an arms race between applicants cramming to pass tech screens and interviews, and employers coming up with new routines. Sites like Glassdoor and CareerCup are loaded with interview questions that have appeared in those routines, giving savvy interviewees the opportunity to see the questions on the exam and prepare accordingly. How do you feel about the existence of these sites, and do they affect how interviews are conducted?
- shaftway 7y agoAs an interviewer I don't really care. A good candidate doesn't need them, and a poor candidate isn't helped by them. The only thing that's irritating to me is that they actually burn interview questions. Once a question is seen on an external job board it gets banned as an interview question.
- Frost1x 7y agoIn the current interview structure, I don't think that's inherently a bad policy. It forces interviewers to develop new unique questions and hopefully, while doing so, consider the cognative time and complexity the solution took them before deciding to hand it to an interviewee. This also discourages overly complex or overly familiarized questions. If the question is too complex, chances are it will end up posted online soon after, penalizing the interviewer in time cost. If a new question is recycled frequently, it will also likely end up online at some point and penalize interviewers from using questions they're overly familiar/biased in assessment to based on their own rote learning.
- quarkral 7y agoStrange, I have yet to meet a single Google interviewer who was looking for perfect syntax during the interview. Last year I forgot the syntax for a data structure, told my interviewer "something like this," and he just said "that's fine." Got the internship later on. I even had one interviewer who was ok with me writing out matrix algebra mathematically instead of using np.matmul and all that.
- adtac 7y agoI can confirm. In one of my interviews, when writing Python, I used arr.push instead of arr.append (I don't usually write JS, but idk what happened), and I realised the mistake only half-way through. The interviewer noticed it apparently, and he said he didn't care. I imagine he didn't want to throw me off my thought train, which was nice. Got the offer too, so it really must not have mattered.
- jogjayr 7y agoAs an interviewer, I can confirm that I don't care about syntax or whether the program compiles if I'm convinced their solution and approach would work. I'm also OK with candidates using placeholder helper functions or shorthand for trivial things (e.g. null/undefined check in JS) if they explain to me verbally what that part is supposed to do.
- jefftk 7y agoI also interview software engineering candidates at Google (n=150) and while I mostly agree, I do think there's some signal in whether a candidate can get the syntax right. It's not a dealbreaker if they don't, but all things considered someone who comfortably writes code all day is more likely to be able to write syntactically correct code than someone who doesn't. The main things I want to see, though, are: can you communicate well about the parts of the problem that aren't clear to you? Can you analyze and compare solutions? Can you figure out something reasonably efficient? Do you understand your solution well enough to code it? (Speaking for myself, not my employer.)
- 7y ago
- _hardwaregeek 7y agoA friend said recently, "people want to be employed without becoming employable". These guides really exemplify this obsession. Sure, Google has a nice salary and good perks and whatever. But after you get the job, you have to do the job. I wonder if the people who read these guides and try to study just the right topics to get a job, whether they actually like programming. These guides act as optimizations, shortening the path you need to take to get the job, shortening the stuff you need to learn, etc. But in the end, the path is all you get. If you don't like programming and if you don't like learning, then are you really gonna like Google? I suppose there's people who genuinely like programming who just need a manual to teach them how to play the game. Lord knows I've practiced my fair share of whiteboard problems when I'd rather be reading about compilers. But there's something wrong about having to play a game to get the job.
- akdas 7y ago> If you don't like programming and if you don't like learning, then are you really gonna like Google? There are also many people who are great at programming, wh love it, who are terrible at interviewing. After all, these are two related, but ultimately different skills. You talked about it yourself in your last paragraph, ending with: > But there's something wrong about having to play a game to get the job. Sounds like the fault is on the employer that makes you play the game, not on "people want to be employed without becoming employable".
- _hardwaregeek 7y agoAgreed, the fault is with the employer, but the people who are willing to indulge this game by obsessively learning to play it don't help.
- optimize 7y agoI mean, if you want to work at Google and the likes, you need to indulge in the game right? And working at Google isn't just about the pay and the salary - thats quite a shallow thing to say. Engineers there handle data of astronomcial proportions, scale their systems every second to handle the ever-growing traffic, innovate on solutions that are used by millions of people around the world. I'd say, if you truly love programming and computer science, thats a pretty sweet deal.
- AzzieElbab 7y agoIs it fair to assume "professional google interviewee" is a thing nowadays?
- retiredcoder 7y agoYes, I have a few close friends hopping jobs every 1-2 years. Part of their secret is be involved with interviews to keep all this crap fresh in their minds and also be part of this sub-industry of tech interviews. Good for them financially maybe. Professionally, I didn’t see they go beyond the average senior dev. But that just me being sour.
- shahbaby 7y agoThese guides are just people trying to make a quick buck. There's no shortcut to getting good and perhaps that's why these type of interviews are here to stay.
- soham 7y agoAmen
- skookumchuck 7y agoI've never seen an interview process that HN (and Reddit and Slashdot and ...) didn't trash as "deeply flawed", "biased", "unfair", "unreasonable", etc. At some point, though, a company has to have some sort of process, and by and large what they use works for them.
- drivebycomment 7y agoIt's always so much easier to criticize (as nothing is perfect) than actually come up with a better solution in real life. So anything where there's no perfect solution, people will endlessly criticize online, even though they themselves have no better solution, and what they criticize is not terrible by any means.
- retiredcoder 7y agoYes, there are decent hiring practices out there but first it is hard to make the news here in HN without some degree of popularity..
- PorterDuff 7y agoAfter a long and storied career I mostly just get a kind of vicarious doom-thrill from reading about interviews I couldn't possibly pass.
- ArcMex 7y agoI wouldn't get an interview from Google even if I wanted to. I'm 29 and live in Africa. That said this guide was still helpful. A reminder of some of the skills I should hone for my next interview. I loved reading the comments here because they give so much perspective from all sorts of people. HN is extremely critical of everything and it can be sobering. I cannot obviously speak about the intentions or damage such guides have or can do but honestly, even if you know how to code, it doesn't hurt to prepare for an interview in a way a prospective company would want you to.
- retiredcoder 7y agoI interviewed with Google NYC for Senior Dev position once, prepared well and thought it went well. Received the green light and moved to the next phase, where I spoke with potential teams over the phone, then settled with Google Maps. Met with one of their Tech Leads, cool. I was really happy and though that all my effort to prepare for the “Google interview” had payed off. Then no word back from the recruiter with a final offer. It turns out the VP of eng saw some red flags in my interview and decided to bail. I felt really frustrated and while I spoke I spoke with the recruiter he apologized and even said the hiring manager was on my side and people overall liked me but there were two engs that were on the fence. Gosh, I think I met with 7-8 engs, all the seniors seemed to like me. I remember not having the best conversation with 2 engs who were new to the company and could not relax nor communicate well. Bottom line, prepare but also be prepared for some degree of luck and arbitrary judgements. Yes, there are great interviewers in google. Engs that are engs in their minds and hearts, who can see the process is not perfect but work to get it better. But unfortunately, there are insecure folks who should be better trained for before interviewing candidates. That was 5 years ago, not sure I would subject myself to this sort of loop even again. And strange enough they contact me few months after to reinterview but this time I could skip the big loop and meet with just 3 engs... I said no since I was already in a new job.
- segmondy 7y agoSounds like the typical FANG experience.