31 ms·
Google: 90% of our engineers use the software you wrote (Homebrew), but...
- bla2 11y agoInterviewing is stressful and all, but if the guy's reaction to not getting hired is to flame on twitter, not hiring might've been the right call.
- vezzy-fnord 11y agoI also somewhat laughed at the poster who stated "Apparently my GitHub wasn't enough."
- r0naa 11y agoWell, he is the author of numerous widely used open source projects. It is a bit redundant (and useless) to give him a "homework assignment when he has such an impressive portfolio that speaks for itself and of which you can assess the quality.
- FireBeyond 11y agoTo be fair, though I know the situation in question: Company A wants to acquire Company B, because their product integrates well and also adds value to a particular niche of their customers. Person is one of the lead developers of Company B's product, and together they have also open sourced one of the single biggest components of their product. i.e. "You want to buy us because of this, and a decent part of this is on GitHub, running every day, but you'd rather not look at -that- code but -this- arbitrary homework assignment".
- sown 11y agoI think both you and the post have a good point. From his perspective, I bet he's frustrated for the reasons he point out. If he never talks about it out loud, how would any one know? Keeping people silent about this issue is in the company's interest because they'll not have to really change, and they'll hire someone eventually. I mean, I know I sometimes choke on problems I'm trying to solve in the privacy, quiet, and comfort of my own home on projects I really care about. I don't know what went on in the interview but given what he said, I think I would be upset, too. Too hard to say, tbh.
- joshstrange 11y agoI'm sorry but Twitter is one of the few (if only) megaphones most people have to call out corporations for their actions. This is exactly the sort of thing that Twitter (IMHO) shines at, a platform to call down the goliaths. If I didn't already want nothing to do with working at google I would have been pushed further away by this tweet which is exactly what should happen. If google has the right to say no to someone that wrote an extremely valuable tool that 90% of their employees use then he has the right to inform the general public. Popular opinion seems to be one of the few things that can cause a corporation to change their minds or at the very least acknowledge the situation and he is expertly wielding it to his purpose. I applaud and support him in making this choice. Edit: typo
- ceejayoz 11y agoIf occasionally venting on Twitter makes someone unhireable, most of us are fucked.
- Osmium 11y agoPlaying devil's advocate here (because I, personally, wouldn't have done something like that), but I can see the insult. Here's someone with a very public proven track record (that they're fully aware of, if 90% of their engineers use his software), and they're asking questions like this. They're the wrong questions to ask in this case, surely? It's fair enough to ask them, but I can understand this person's frustration if that was genuinely the reason he hasn't hired (which we have to take his word for, since we didn't witness it ourselves).
- totalrobe 11y agoThis guy can clearly ship software. The questions should have been what do you want to work on and why do that with google instead of yourself?
- r0naa 11y agoI don't think that it is unprofessional on his part. He is merely highlighting the absurdity of the hiring process at large tech companies. I think everyone knows that this is not a problem exclusive to Google.
- mikeash 11y agoIf the tweet is accurate in its implication that he didn't get hired because he couldn't invert a binary tree (honestly, I don't even know what that means) on a whiteboard, then I'd say the tweet is totally justified. On the other hand, if it was a complex and reasoned decision that he's summarizing badly, then yeah, good call on their part. Context is king here, and we have little.
- deleted 11y ago[deleted]
- nilkn 11y agoActually, I think this is exactly what we need: higher-profile people willing to speak out publicly about the broken interview process.
- pyrocat 11y agoWhy? He's under no obligation to Google. It's not like they hired him and he has to sign an NDA or be polite. He had a frustrating interview process and vented about it online, it's a pretty human thing to do. Why would that make him a bad employee?
- serf 11y agoWell, not that I agree with the sentiment, but corporations likely have incentive to hire individuals that are easier to push over and keep quiet as long as they have the skill set needed. If you were a corporation trying to keep PR positive, would you hire someone that has shown themselves as an outspoken public mouthpiece and tip-toe around them to keep them happy, or just avoid the problem?
- JamesBarney 11y agoThat is a pretty liberal use of the word flame. And I'm pretty sure this is EXACTLY the type of guy you want to hire, I would strongly suspect writing mild mannered complaints about not getting hired on twitter has very little correlation with job success.
- serve_yay 11y agoFor him individually, I might agree, but the bigger issue is how one of the largest tech companies is hiring this way. I don't think it's worth focusing on this guy's understandable outburst to the exclusion of that.
- jules 11y agoHe is doing both Google and people who were rejected by Google a favor by pointing out that Google's interviews are not indicative of real world performance. He might have hurt his own chances a bit in the process, but overall this will undoubtedly have a positive impact.
- Dewie3 11y agoWhy is his profile picture the attractions road sign as seen in Scandinavia? :-)
- jd3 11y agoPerhaps he's a fan of Susan Kare :-)
- mymacbook 11y agoI don't get the message you're trying to send by this reply... and yes I know who Susan Kare is.
- jd3 11y agoSusan Kare designed the icon on Apple's command key. [0] [0]: http://en.wikipedia.org/wiki/Command_key#Origin_of_the_symbol http://en.wikipedia.org/wiki/Command_key#Origin_of_the_symbo...
- sp332 11y agoWas it really because he couldn't do the problem, or was it that he didn't handle himself well in the interview? At two different interviews I was given logic puzzles just so they could watch how I went about trying to solve them.
- sown 11y ago> At two different interviews I was given logic puzzles just so they could watch how I went about trying to solve them. That's usually what they say, but I've found that if you don't solve the puzzles, you don't get hired ever.
- sp332 11y agoI did solve both puzzles, but I was told by the second company that they were quite surprised.
- mrobins 11y agoThat experience doesn't mean that's just what they're saying. It could mean in those cases the person a) didn't solve them problem, and b) didn't demonstrate an approach to solving they problem they were looking for.
- esturk 11y agoOR c) didn't solve the problem fast enough
- smackfu 11y agoThis just gets back to the question of whether you are hiring based on interview skills or coding skills. If someone has shipped code that shows high coding skills, why would you reject them based on interview skills, if it's a coding job?
- sp332 11y agoYou could still interview an experienced person. On the technical side, you could see if they're familiar with your specific stack, and know how to handle version control etc. Aside from all that, you can make sure they share the team's goals, are willing to use version control the way the rest of the team does, stuff that's not about skill.
- notacoward 11y agoHumorous answer: Maybe I can't invert a tree, but watch me flip this table. Serious answer: Companies that pull this crap deserve to starve and die.
- westernmostcoy 11y agoWhat specifically are you objecting to? That specific question? Writing code on a whiteboard? How would you interview software engineering candidates?
- deleted 11y ago[deleted]
- fweespeech 11y agoWhy not just take a chunk of code the candidate has written that was interesting and talk about it? The main problem with interviews [imo] is it grabs stuff the interviewer is familiar with and throws it at the person in the more stressful position of being the interviewee. Its also [often] a very non-standard way of communicating. I don't know about you but all of my communication is via text or graphic, not whiteboard. And, honestly, do you care more about the fact they can invert a binary tree from memory? Or that they can learn to in the next hour and implement it? My guess is for 90% of jobs, its the second.
- notacoward 11y agoThe point about interviewer vs. interviewee familiarity with the problem is important. It's hard to avoid comparing the interviewee's off-the-cuff solution to one that was researched at leisure and refined over multiple previous interviews. Really damn hard. Psychologists and teachers are trained in avoiding that kind of bias, and still struggle. Very few engineers are equipped to see through the "fog" and interpret a candidate's performance in a useful way. I've only encountered one - a recently former CS prof - and I've been in the business a long time.
- gt565k 11y agoI think the best way is to give them access to a code base, give them 48 hours and have them submit a pull request for a feature. That way you can see that they can learn the codebase and implement the feature in their own time. During the interview, you can discuss their code and the reasoning behind the implementation details.
- squiguy7 11y agoInterviewing seems broken to me too. I have spent the last few months trying to get a job out of college and everyone seems to be interested in how well you can regurgitate CS fundamentals. They are seemingly less interested in seeing how you solve problems and work through the process of software. I would be more than happy to see this process change, I am just not sure what it entails.
- bstamour 11y agoDevil's avocado: if they're truly CS fundamentals, then they should be baked into you good and deep during the course of your college education. It shouldn't be painful at all.
- nostrebored 11y agoEspecially as a fresh grad. Reviewing for a week or two if you've gone to a good school/actually did your work instead of 'consulting google' is definitely enough...
- smackfu 11y agoI think the real issue is that most programming jobs aren't computer science jobs, so CS fundamentals are almost totally irrelevant.
- eonw 11y agoamen to that!
- thanksgiving 11y agoI graduated this spring and I don't know how to do that. Now, I am not a boy genius but I doubt it is a CS fundamental.
- sgeisenh 11y agoWhat material did you spend time on that you don't know how to reverse a binary tree? It isn't a difficult problem, even having never seen it before. This is one of those warmup problems to test how comfortable a candidate is with basic concepts such as recursion.
- skorecky 11y agoProbably could have just Googled the answer.
- supergirl 11y agobig ego, looks like they made the right choice then
- mikek 11y agoAt a certain point, your resume should speak for itself. The fact that experienced engineers with impressive resumes are put through these types of interviews is insulting and frustrating to the interviewees. Succeeding at these whiteboard questions requires weeks of preparation. You need to practice, practice, practice. After enough practice, you are pretty likely to pass. So ultimately, it is more of a test of "how much do you want to work here." If you care enough, you can pass. That said, these types of interviews do favor fresh grads over experienced programmers (you have algorithms and data structures fresh in your mind), which means that they are flawed in IMHO.
- sp332 11y agoHow do you practice answering whiteboard questions?
- ceejayoz 11y agoBy re-learning computer science concepts you haven't had to use in real life without Googling in a decade.
- gutnor 11y agoEven if you have used them like a few months ago. Very few people work on variation of the same problem over and over again, except in research. Generally, you have a problem, you research, you experiment and then you wrap all that in a nice easy to use utility class or api and forget the details because there is something else you need to work on and that problem was just one piece of the puzzle anyway. The worst hypocrisy in all that, is if you ask a specific question to a veteran developer on a average size codebase, he will very often need to look in the code and you will not think any less of him. But if it is an interview and he does not remember some trivia in a piece of code he didn't write - my god, he is a loser.
- deleted 11y ago[deleted]
- com2kid 11y ago
- philip1209 11y agoWhat's the due diligence like on the hiring side during an acquihire by Google?
- dguaraglia 11y agoIn my very limited experience? None. They just trust the company they acquired to have filtered you properly. They do ask for references (like academic records and so on) but that was about it. Without discussing too many details, I believe the issue with Google's recruiting process is it was designed when the company was smaller and it follows the philosophy that anyone that goes through the hiring process should be ready to be thrown into any of the many Google projects and be able to function immediately. That's not strictly true anymore. You have some divisions that are extremely hardcore or require very good knowledge of a particular field (think Google Cloud Platform vs. Android Kernel vs. Chrome vs. Search, all completely disparate projects), but there's also work for people that don't need to hold a PhD from MIT (think front-end development.)
- npkarnik 11y agoHmm, it depends a lot on the size/type of company and reason for acquisition. If it's closer to a acqui-hire where the employees of the "acquired" company cease development on whatever they were doing and eventually just get staffed on a Google project, then they will MOST LIKELY do technical due diligence on each team member. It's common for only part of the team to get an offer to join.
- nostrademons 11y agoSorta ironic, but remember that the point of an interview is to determine how well you'd do in the environment that's hiring you, not how good a developer you are. Because Google tends to reinvent the wheel for basically everything, algorithmic knowledge really does matter. Package management only matters within a few very specific subteams. If you're interviewing for a general SWE position, you could be Mark Zuckerburg and still not qualify for it. FWIW, I find Facebook turning down Jan Koum in 2009 and then spending $19B to acquire his company even more ironic.
- smackfu 11y agoVery good point. It's like, why do you want to work for Google if you aren't into algorithms?
- eonw 11y agoother then search and maps, how many of their products use algos heavily though? many projects i have worked on over the years required very little knowledge of algos.
- penprogg 11y agoHey man, all that CRUD needed to make all those shovelware google apps requires a ton of algorithmic knowledge. /s
- nostrademons 11y agoAll of infrastructure. You end up using LSM trees, Paxos, variations on binary search trees, checksums, Reed-Solomon, bloom filters, external sorts, and all sorts of other academic algorithms when you deal with distributed systems. Docs/Drive does a lot with operational transforms and CRDTs, ever since Wave was merged into it (c. 2011). Remember that all Google Docs are collaborative. All logs analysis & experimentation relies heavily on statistics, as well as online algorithms for reservoir sampling, quantiles, and a number of other statistical quantities. Machine-learning is pervasive, throughout Shopping & News (it's all over these), GMail (spam, priority inbox, categories), Search, Ads, self-driving cars, Brain, and many other areas of the company. Chrome and Android both do a lot of traditional OS & systems programming. The main product area that didn't use algos heavily was Google+, although even this had some interesting stuff in stream ranking and search.
- plg 11y agojust playing devil's advocate, but how do we know the reason for the no-hire was the reason the OP thinks it was?
- supergirl 11y agoanswer: it wasn't, cause it's never just 1 reason.
- hebdo 11y agoIt seems that almost everyone here knows better than Google how to hire employees for Google. Given that you can see why it is trivial to see through hours-long hiring committee decisions in just two seconds. Edit: as pointed out by others, the hiring decision probably does not take a few hours, but under an hour. Still, the point is valid.
- nilkn 11y agoI'm pretty sure the hiring committees do not actually deliberate for hours on one candidate. Maybe in very rare cases.
- DannyBee 11y agoThe most i've deliberated was 45-50 minutes on a single candidate in HC itself. (often hours are spent reading packets and preparing notes before HC) It's not because candidates aren't worth it, it's that if you can't come to consensus in that time period, you are unlikely to be able to :)
- DannyBee 11y agoDon't be silly. As hedbo says, it's obvious google just doesn't know what they are doing.
- tptacek 11y agoIf their goal is hiring from industry, as opposed to from schools, I think I could credibly defend an argument that they don't. (I think what they do now makes sense if they want the top of their funnel to be comprised mostly of recent CS grads, and I think that industry people with really high profiles, or that internal people really want, get to skip a lot of this evaluation.) I have a lot of respect for Google (how could you not). That doesn't mean they can't be a bit clownshoes with recruiting.
- beliu 11y agoWe're trying a different approach at Sourcegraph. In addition to looking at a candidate's prior work in open source if available, we ask them to complete tasks that approximate the job as closely as possible (i.e., coding on a computer): https://sourcegraph.com/blog/programming-interview https://sourcegraph.com/blog/programming-interview Would love to hear people's thoughts and feedback!
- teen 11y agoI would never do a take home test for an interview. I did that once and it was such a waste of time.
- eonw 11y agoi've done three over the years, complete and utter waste of time. i also had some wierd binary tree questions when i interviewed at yahoo, was a total turn off as i was interviewing for web/front end related job. which probably would not have used any of this type of logic, ever.
- oxryly1 11y agoYours sounds like an approach that measures how well someone codes in a vacuum, instead of how they operate on a team. It very much skews the results... Not to mention for a qualified professional candidate, it feels an awful lot like you're asking them to work for free.
- beliu 11y agoIn addition to asking them to write some code, we also have each member of the team interview them onsite to get a sense of how they'd interact as a member of the team. The challenge does take a few hours, which is longer than a typical phone screen or single onsite interview, but because it lets us focus on getting to know the person onsite rather than go through a gauntlet of whiteboarding interviews, we think it actually saves time for everyone and is a win-win. Obviously, every candidate is different; we think of this not as a rigid template, but a better default option than whiteboard interviews. Thanks for your thoughts!
- dionidium 11y agoWithout commenting on whether this is a good interviewing strategy, surely the point is to sacrifice some potential good hires in favor of definite good hires. In other words, you might be able to write pretty good code even if you can't solve problems on a whiteboard, but, given a choice, why wouldn't we just choose the people who can do that, too? I think the stated philosophy of interviews like this one is that a false positive is worse than a false negative. Every single one of the responses to that tweet either misses that point or sounds like little more than defensiveness in the wake of a bruised ego. You might disagree with that interviewing strategy, but you're not addressing it directly.
- stuxnet79 11y agoMore or less agree with this. I'm also a Google reject (didn't make it past the phone interview). I didn't take the rejection personally. I don't see how the interview process could be drastically improved. They get a lot of applications and they need some way to filter - there is a standard and it has to be met. With the sheer amount of applications that Google gets it's a virtual guarantee that there will be a subset of people taking the piss regardless of what the interview process is like. I don't doubt that the engineers who manage to jump through all those hoops are sensational. Personally in the end it just dawned on me that I didn't want to work at Google that badly. The whole Twitter exchange is a pitiful sour grapes circle jerk, and I'm surprised that it's provoked such a massive response.
- ehaughee 11y ago> why wouldn't we just choose the people who can do that, too? I agree with your overall point (why not both?) but how does the interviewer know they can do both if they are only tested on their ability to solve problems on a whiteboard? I don't have a solution (that scales) to this problem but I tend to agree the types of whiteboard problems typically seen in interviews are a bad way to identify good developers.
- joshstrange 11y agoTo all of those saying ranting on twitter is the wrong move I couldn't disagree more. Twitter is often the ONLY tool that the average person can use to communicate and/or call out large companies on their actions. This is BS and should be made known. Homebrew is an amazing tool and I'd be falling over myself getting the offer papers in this guy's hands if he came to me looking for a job. The fact that google turned him away only further cements my opinion that google would be a terrible place to work.
- supergirl 11y agomaybe Homebrew is amazing, but Google can hire the best people in the world. that day they might've interviewed 10 people better than him who just didn't make a popular tool
- leetNightshade 11y ago"that day they might've interviewed 10 people better than him who just didn't make a popular tool" Are you judging this on their ability to invert a binary tree? People here are ranting about having a problem with interview practices not representing whether or not you are good at your job. That's presumably (IMO) why the tweet was posted.
- supergirl 11y agothe tweet is made to trigger that discussion. but you can rephrase the tweet to something like: even though I made a popular tool, I didn't get a job at Google because I'm not good at other things they need. Google probably has a lot of factors counted into the final decision, including algorithm skills, other software engineering skills, human skills, contributions to open source projects. It's never 1 reason why you get rejected, it's the total score.
- seiji 11y agobecause I'm not good at other things they need. It's not that you're not _good_ at it, but you're not able to demonstrate under time constraints, lack of references, lack of iterative code/compiler/REPL feedback, and while being stared down by someone whose default mindset is "why am I wasting my time on this person?" It's never 1 reason why you get rejected, it's the total score. That depends on how far down the interview process you are. Often they'll cut you off at a phone interview if you stumble. Sometimes they'll cut in-person interviews short if they think you're not worth it. So, they don't always get a "total score" to judge against. It's often just summary judgement off subjective feelings.
- comrade1 11y agoAnd Google engineers aren't the shit either. Their Java libraries are large and unwieldy. They would learn something by taking an example from the apache libraries - clean and straightforward, focused and small. I hate working with Google code.
- seccess 11y agoWhat does it mean to invert a binary tree? I'm not familiar with this operation on binary trees. Does it mean to swap parents with child nodes? Or to swap siblings?
- to3m 11y agoI wondered this as well! As far as I can tell - I asked google and looked at what it came up with :) - it means swapping children.
- TD-Linux 11y agoI don't even understand why you would ever want to do this. You could just invert the input or output at the beginning or end (depending on what the binary tree is used for) for super cheap. It's not uprising that no one has done this in practice, though it also seems trivial (visit each node once).
- CydeWeys 11y agoIt's an interview programming question, so what matters is that it's a good interview programming question, not that it's something you would ever want to do. It's an important distinction. Generally you're looking to test candidates' abilities to come up with efficient algorithms to solve problems, which you're not going to get if you ask them to, say, tweak the order that fields are displayed on a web app form (even though that's a "real programming task"). Although I do see this as something you could possibly do "for real". Sometimes you'd rather change your existing data once than continue carrying forward what amounts to hacks, which is what inverting the output would amount to. Reversing a binary tree would be what you'd run in a tool to migrate all of your data over from the old format to the new format.
- seccess 11y agoYeah I checked Google as well, but swapping children seemed too easy for an interview question. I'm wondering if it means restructuring the tree so a different node is the root. Trees have the property that any node can be the root and it is still a tree. Not sure just wondering if anyone had more info.
- michaelvkpdx 11y agoAs goes the recruitment, so goes the employment. If you wanted to work for an organization where everyone likes to show off their skills to one another in the interviews, you'd have gotten the job, and you'd be one of them. The best interviews I find are like a first day of work (but unpaid). Your experience and skills are established by resume and portfolio. The interview shows whether you can work with the team and wrap your head around the org's problems. If you're having to show off- well, that's how your work will be, too. Google's interviews convinced me, years ago, that there's no way I'd ever want to work there. And that feeling hasn't changed one bit. Much like FB, it's an org whose coding needs are really pretty trivial and the real work was done and finished a long time ago (but there's plenty of need for debugging, egos especially). If you want to work there and surf the gravy train, cool for you.
- trustfundbaby 11y ago> Much like FB, it's an org whose coding needs are really pretty trivial I was with you till riiiiiight there. Google isn't just a search company anymore they're working on lots of very interesting non-trivial things all around the company.
- discardorama 11y ago> Google isn't just a search company anymore they're working on lots of very interesting non-trivial things all around the company. Right. And I really doubt that people like Andrew Ng or Geoff Hinton or Sebastian Thrun were asked to invert binary trees....
- el_fuser 11y agoAnother instance where silicon valley favors the young... he probably would've nailed this question if he'd been only a couple of years removed from school. He also would've nailed it had he been given 10 minutes to do some research to refresh. Silicon valley (and the numerous companies that mock the interview style) are testing for the wrong thing when they hire, then complaining about not being able to find good engineers.
- CydeWeys 11y agoYou're given weeks to refresh your knowledge ahead of a Google interview. They tell you the basic CS fundamentals that are going to be covered. Binary trees are MOST ASSUREDLY on that list. They just don't have time during 45 minute interviews to let the candidate go on the Internet to look things up they should already have come prepared for. Anecdotally, at a previous company, we tried an "open book" (i.e. you can use the web) interview policy for a few interviews. It was a train wreck.
- el_fuser 11y ago>> You're given weeks to refresh your knowledge ahead of a Google interview Begs the question, doesn't it? >> Binary trees are MOST ASSUREDLY on that list Sure they are... and my intro to CS textbook was ~500 pages. I'll bet I could find something to trip up just about anybody, especially when coupled with the pressure of doing it in front of the class ^H^H^H people that have $$$$/power over you.
- lawn 11y agoI just don't get it why companies assume you can spend so much time to refresh and memorize topics just to prepare for an interview. Especially when this knowledge will only be used in the interview process and then forgotten about.
- eropple 11y agoNot sure why you were downvoted, to be honest, because I think this is a reasonable take. I don't prep for interviews (or, these days, for sales discussions), except to read about the company and to consider how my skill set can help solve their problems. Google's insistence on this preparation thing is doubly weird to me when I consider that literally nobody "prepares" for work every day in this manner; knowing what a developer can do after studying his brains out regarding things that will be ejected from the brain again immediately after the interview doesn't really send a meaningful signal.
- jowiar 11y agoLast week I walked away from a Google offer that included a 70% raise. A large portion of this was a rather dehumanizing interview process, along with the realization that the process doesn't select for people I want to work with, and weeds out most people who I do. I managed to do just enough in my interviews to squeak through, but in doing so realized that it wasn't for me. Walking through the cafeteria made me feel like I was back in CMU CS again, in a bad way.
- defen 11y ago> Walking through the cafeteria made me feel like I was back in CMU CS again, in a bad way. Really smart people who are really insecure about their intellect?
- droidist2 11y agoAnd that insecurity manifests itself as a facade of arrogance and condescension?
- defen 11y agoSometimes, but not necessarily. Sometimes it's people who always have to be "right" - which means every conversation (whether about technical things or what you did last weekend) devolves into a carefully orchestrated dance of definitions that allows everyone to escape with their egos intact - because he conceives of himself as "the smart guy" or "the guy who is always right" - so if he's wrong, he changes the rules[1]. Sometimes it's the reverse - the exhaustion of needing to always be "on" intellectually, because someone will point out the smallest inconsistency or fuzziness (again, in non-technical contexts where it doesn't matter)[2]. Sometimes it's because I'm super bored by conversations that mostly consist of geek-culture or technical references, where I get the reference but don't laugh because it's not that clever or not that funny, and people assume I don't get it (maybe that one's on me, though). I've never been to a Google campus or event so I don't know what it's like there - I'm just describing my own experience at a place like CMU CS. [1] An absurd example was the guy who claimed the song "Right Here Waiting" was by Bryan Adams. I told him it was Richard Marx, but he insisted that it was Bryan Adams. I didn't care so I just let it go. Later that day he emailed me a link to a mislabeled Youtube video as "proof" - when really it was just an ego salve for him to prove to me that he was justified in claiming that it was Bryan Adams. I offer this anecdote because it illustrates a common personality flaw of smart people (especially ones who spent their formative years as the smartest person they knew) [2] Think comic book guy's xylophone comment from The Simpsons
- Alupis 11y agoHas no one stopped to question what Google may have been looking for in a candidate? The OP has written some great apps, sure, but there is a huge difference between writing a package manager for Mac (among other Mac/iOS apps and utilities) and writing incredibly complex, highly performant algorithms for say search indexing, machine learning, ai, etc... In that context, knowing CompSci basics like Binary Trees (usually taught to pre-major CompSci students) has a lot of relevance. It's clear Google was looking for a Computer Scientist here, not just another developer. I am also put off by the extreme display of non-professionalism here. It's like the OP took this personally as an insult. "I've written popular things, how dare you not hire me if I want to work for you!". That's not a professional I'd like to work on a team with. Rather, that's a throw-back to the "Rockstar" programmer that nobody wants to work with. This boils down to a person who was personally offended a company did not hire them at a drop of a hat, as-if he was "blessing" Google with his presence. I'd say, Google (and other companies) are better off without this type of ego. They made the proper choice to weed this individual out.
- devy 11y agoYou think like a Google interviewer.
- Alupis 11y ago> You think like a Google interviewer. The OP is the type of person that, six months from now would be demanding special treatment because "he wrote Homebrew". Writing a package manager (been done before, a lot of times) is far different from writing machine learning algorithms (new field, blazing the trail for the industry). One requires an engineer, one requires a scientist. The OP flamed out because Google was looking for something he was not. Instead of taking it like a professional, he decided to retaliate. The tone he took in his post is appalling, and I cannot believe HNers are defending him. "I'm special because I wrote something popular (and make absurd claims about 90% of people using it), so you better hire me or else" is what he just laid down. That's not the type of person I'd want to hire or work with... and I'd wager most would agree.
- 11y ago
- chubot 11y agoI think there is some validity to the general point, but I'm not commenting on that. Just quibbling: I don't think anywhere near 90% of engineers use homebrew? Google development is done on Linux, and Homebrew is a Mac thing AFAIK. I have never used Homebrew. Android development can be done on Macs but I doubt they use Homebrew. Certainly not for anything important.
- devy 11y agoRe: "and Homebrew is a Mac thing AFAIK." -> FYI There is a fork of Homebrew called Linuxbrew now. http://brew.sh/linuxbrew/ http://brew.sh/linuxbrew/ FYI.
- trustfundbaby 11y ago> I don't think anywhere near 90% of engineers use homebrew? Its just good ol' hyperbole man. No small children will die because its not exactly right, it just helps make a point.
- spiritplumber 11y agoA project manager at Google was upset that my 'bot literally ran circles around theirs (it was 2010, Android based robots were just starting) and told me that I was just a hobbyist and my project did not exist. So I gave him one of the spare logic boards (open design anyway). And wrapped my hand around his. And squeezed. And asked him, if it doesn't exist, why is it making you bleed? He watched impotently as the people who had been invited for the presentation played with my robots and ignored his as two of his guys tried to get it to work. I finished the two projects I was doing with Google and did not call them again. (Before you downvote: Yes, there is some video, and I consider the small amount of pain I inflicted that day a kindness compared to the much greater amount of pain that an engineer is in danger of enduring if he says things like "This thing that is in front of me, it does not exist", especially if he works with big machines).
- to3m 11y agoI think you need to work on your people skills.
- eonw 11y agoor the other guy could work on his ego skills?
- to3m 11y agoThat can be dealt with when they post their side of the story.
- spiritplumber 11y agoTrue enough.
- eonw 11y agoagreed, i would love to hear both sides of this one.
- spiritplumber 11y ago
- happinessis 11y agoNowhere near 90% of Google engineers even use Apple, let alone use this person's software for it.
- grahamar 11y agoAs Google bragged in 2013 that it managed a Mac fleet of over 40k and with a workforce of 55,419 in Q1 2015 (not just engineers, 2013 numbers were about 10k engineers), that's 72%+ of Google's workforce using Macs. Homebrew is at least one of the best package managers for Mac. I would be very surprised if it was not at least near the 90% mark...
- deleted 11y ago[deleted]
- sagivo 11y agoI had very similar experience. This was one of the main reasons i decided to create this: https://github.com/sagivo/algorithms https://github.com/sagivo/algorithms
- JamesBarney 11y agoThis is especially ironic given how much Google has complained they need more H1-B's because they can't find enough good devs.
- hn_4_muppets 11y agoGoogle Interviewer: "so, how would you do X, Y, or Z?" Ruby Developer: "errm.. gem install X, gem install Y or gem install Z?" Google Interviewer: "next!"
- kazinator 11y agoWTF is "inverting a binary tree?". The smattering of search engine results points to some seemingly operation that basically generates garbage by destructively manipulating the tree into a DAG in which the leaves of the original tree are roots, which point downward the parents. The original root node is returned, and still points to its children. Unless you return some aggregate (e.g. list) of all the roots which are not direct children of the original root, or it is understood that something elsewhere holds reference to them, they are leaked. Be that as it may, if the interviewers hand you a reasonably detailed specification of what "invert a binary tree" means and you can't whiteboard it, I don't see how you can expect the job. If you're expected to know what it means, and get no hint, then that is just stupid. "Whiteboard up an implementation for something we refuse to specify, beyond citing its name."
- CamperBob2 11y agoI agree. I have no idea what "inverting a binary tree" means, or why I would want to do it, so I'd need some context from the interviewer. Chances are, I'd ask some very pointed questions about whether a binary tree is really the best underlying data structure for whatever the "inversion" process is intended to accomplish. The interview would probably go downhill from there.
- icc97 11y ago'Reversing a binary tree' [1] is the more likely actual question. [1]: http://stackoverflow.com/questions/9460255/reverse-a-binary-tree-left-to-right http://stackoverflow.com/questions/9460255/reverse-a-binary-...
- tzs 11y agoMy guess is that the potential leaking of some nodes is one of the points of the question. A lot of people would not notice it. Note that in the original tree each node needs storage for two pointers. After inversion only one is needed. You can use that now unused storage to link together the multiple roots to solve the leak problem. But note that only consumes the second pointer storage in the roots. Interior nodes end up with some free storage after inversion. Since inversion is reversible, the binary tree and its inverse contain the same information. Does this mean we should only need one pointer's worth of storage in the binary tree nodes? Is there something for binary trees similar to Knuth's xor trick for doubly linked lists?
- nqzero 11y agoi had a similar experience with ita software, later acquired by google. i'd submitted a solution to one of their puzzles (which was actually very close to their business) which exploited a symmetry in the data and my solution produced results significantly better than anything else that they'd seen (per the engineer that managed that puzzle) interview was brutal - lots of whiteboarding very artificial problems totally unrelated to the business and i just couldn't get excited about it and didn't end up getting an offer hiring is tough, these things happen
- hectorxp 11y agochange the license, add a clause saying google can't use it, and sue them tomorrow
- tbg 11y agoI know this was supposed to be a joke, but he can't retroactively change the license for the current released version. Any license changes will only apply to future releases.
- pearjuice 11y agoIt's funny because the guy actually thinks having built something popular equals being a good software engineer. Wordpress, PHPMyAdmin and so forth are all really popular but the code is shit and though it's used by millions of people, a _real_ software engineer will shudder looking at its source code. Now, I have no idea what the code quality of Homebrew is, but just because he built something popular doesn't mean he should get a green light in every company. If Google is looking specifically for top-notch software engineers, they are probably filtering them very well with their practices. Maybe they are only good on paper at that moment and don't have something like "Homebrew" on their Github, their knowledge is sufficient to perform work at Google. So why pick someone who has fame to his name, probably wants to get paid accordingly and thinks he is a hotshot because of his Twitter and Github follower count over someone who proved himself in an interview? The first is not necessarily better than the latter.
- coldcode 11y agoI've always wondered if during an interview with Google you answered a question with "I'd Google it" what the reaction would be.
- philippnagel 11y agoWhat's the practical point of performing such an operation?
- x3n0ph3n3 11y agoIt's similar to reversing a sorted array, though I can't think of a reason I'd ever do it.
- myth_buster 11y agoWell, this thread escalated quickly! Am I wrong in my understanding that when a company rejects they don't specify why and hence "rejected due to failure to invert binary tree" may be a guess here?
- billconan 11y agothe tech interviews are so broken. who does dynamic programming on a white board during a work day? it's like you are recruiting an army, but testing people's gymnastic skills. they should test street fight skills.
- lnkmails 11y agoThis was years ago but a google interviewer asked me a make a complete copy of a directed graph (i have to do cycle detection). I was given 45 mins total and I failed. I cursed myself for not being good enough. I haven't forgotten it yet.
- sjg007 11y agoYou just have to know the basic data structures and some algorithms for them. Liked list, binary tree, Hash map etc... In the worst case, set up the data structure, then derive the algorithm. Do this in Java FWIW and make your life easy. This is like knowing math and/or stats and applying it to a word problem.
- russtrotter 11y agoIs it possible that technical impression was not the sole reason somebody isn't hired?
- zyxley 11y agoA pair of good articles on just this kind of thing: http://www.unlimitednovelty.com/2011/12/can-you-solve-this-problem-for-me-on.html http://www.unlimitednovelty.com/2011/12/can-you-solve-this-p... http://sockpuppet.org/blog/2015/03/06/the-hiring-post/ http://sockpuppet.org/blog/2015/03/06/the-hiring-post/
- adsr 11y ago"I never commit to memory anything that can easily be looked up in a book." Albert Einstein It seems like this tests a) how much you want to work at Google and b) how good you are at memorize things.
- mattbillenstein 11y agoI like the spirit of this, but he may well have not been hired for a variety of other reasons besides this -- including how he attempted to solve the problem or how he handled not being able to solve it on a whiteboard in an interview. I hate whiteboard programming questions and I don't give them when I interview someone - I give them a laptop with 10 different languages on it, and some data to munge -- I think it's a pretty decent thing for both parties.
- biggerbob 11y agoMaybe he was applying for the role of Lead Binary Tree Inverter. The astute will notice that he repeatedly ignored opportunities to confirm or deny that the position for which he applied was indeed, Lead Binary Tree Inverter.
- yongjik 11y agoAs others said, much more than 10% of Google's engineers don't even own an Apple machine. So, even if Google's Mac management team somehow uses Homebrew to manage the employees' machines (which may or may not be true: I have no idea, even though I used a Macbook in Google until recently for years), the percentage of Google engineers using that software is nowhere near 90%. The percentage of Google engineers knowingly using that software is certainly closer to 10% than 90%.
- malkia 11y agoAnd then you could've been just cool all about it: http://www.businessinsider.com/facebook-rejected-whatsapp-co-founder-brian-acton-for-a-job-back-in-2009-2014-2 http://www.businessinsider.com/facebook-rejected-whatsapp-co...
- matheweis 11y agoThis. @brianacton's response was super classy.
- carc 11y agoTo be fair, inverting a binary tree is a pretty easy question. Google also tells you BEFORE you start the interview process that it'll be very data structure/algorithm oriented and asks that you please prepare (and take as much time as you want doing so). They even say that they want you to prepare because they know a bad candidate that prepares can look better than a good candidate that doesn't prepare - then want all candidates on a level playing field so they can make accurate judgements. All that being said, I still think that there is lots of room for improvement in the process. edit: really good english skills
- jblow 11y agoI am dismayed by the way all the reactions on Twitter are piling on with outrage and/or relating similar experiences. Inverting a binary tree is pretty easy. It is not quite as trivial as FizzBuzz, but it is something any programmer should be able to do. If you can't do it, you probably don't understand recursion, which is a very basic programming concept. This isn't one of those much-maligned trick interview questions. This is exactly the kind of problem one may have to solve when writing real software, and though you may never have to do this specific thing, it is very related to a lot of other things you might do. I run a small software company and I very likely would not hire a programmer who was not able to step through this problem and express a pseudocode solution on a whiteboard.
- notNow 11y agoCan you confirm that actually inverting a BT or solving other similarly probs would have been part of his future job at Google? If so, they were consistent in disqualifying him in spite of his awesome track record, fame or "street cred" but if not, I can't really justify or defend this type of ceremonial or bureaucratic gotcha interview questions as they are just useless and can be abused by the interviewer to reject applicants they dislike for any reason or whim they might have at that moment.
- jblow 11y agoI have no idea what the job was. But my point is this is not a bureaucratic gotcha question. If you can't do this task, you don't really know how to program well. Sorry but that's just how it is. It's like failing FizzBuzz. There is this culture of crappy software that has happened lately, especially in the Web world, and it is really quite lamentable. I believe that a very large positive impact would be made on the world -- due to the extreme prevalence of software these days -- if more people would take seriously the idea of software creation as a craft with a very high skill ceiling, and work diligently to improve their understanding and their skills.
- bkessler100 11y agoThese interviews are biased towards new grads ... GEORGE: You know what I do at the Yankees, when one of these old guys is breathing down my neck? ELAINE: What? GEORGE: You schedule a late meeting.
- mentat 11y agoIt's interesting the amount of hate and either rumors of bad experience or bad experiences directly. I interviewed for an SRE position last September and they were clearly trying very hard to make it a good experience no matter the outcome. I flubbed a couple of questions and they didn't make an offer, but the impression that they cared about my experience as an interviewee lasted. I wonder why my experience was so dramatically different from many here.
- dj_doh 11y agoMy 2cents here - I respectfully declined to answer any JavaScript/CSS questions prompted by a recruiter. Being a front-end guy, I proactively request for hiring manager or a senior front-end engineer from the team.
- doczoidberg 11y agoIt seems that google wants to have code monkeys instead of creative software engineers. This is a common problem of big companies. IMO it is one of the reasons they get stuck with innovations. Of course also the interviewers don't want to hire people which are smarter than they are because of their own career.
- benol 11y agoI, for one, agree with this kind of hiring process. From my own experience - people that do well in such interviews are good generalists. On their own they will start discussing performance improvements and ways to parallelize the solution, it's a pleasure to have such an interview. It's about enjoying problem solving and willing to keep your brain fit. It has nothing to do with memorizing solutions to some existing set of problems.
- deleted 11y ago[deleted]
- elif 11y agoI took my google interview as a gift from them to me. It showed me that I was mistakenly interviewing to become a cog in a terry gilliam-esque corporate machine, and that made me think hard about my path in life, and what i really wanted out of a career.
- fishnchips 11y ago[Ex-Googler here] Truth be told this is a trivial question to be asked during an algo interview and as an interviewer I'd consider this a warm-up. Otherwise it's a rather poor question since either you know how to do it (ie, you have an idea about recursion) or you don't - there aren't too many shades of grey or possible follow-up questions that I can ask to probe the depth of your knowledge. That being said if I asked this as a warm-up and we'd spend the whole interview trying to get that done then of course my verdict would be No Hire. As an interviewer it is not my job to look at your GitHub profile - instead I am assigned an area to check and I try to come up with the best understanding of the candidate in that area. While failing to reverse a binary tree is a total failure in algo/ds you can still be hired since there are several interviewers (if you make it to onsites, that is), each probing a different area. My biggest problem with Google style interview process is that it's easily passed by folks who already passed it in a different company. After having interviewed hundreds of Google's candidates I moved to another big company with the same interview type and the experience was really surreal. On my algo/ds interview I got asked slight variations of the same questions I was asking myself - and over time I've seen some totally brilliant, unexpected solutions. Must have been a strange experience for the interviewer who got his questions each answered in 3 minutes tops. I also made it a sport to solve each one in a different language because why not. Not sure though about validity of the signal the company got from this interview.
- michaelchisari 11y agoA lot of people require a github to get an interview. But nobody wants to look at what's on the github. I've interviewed hires before, and if I ask for a github, I'm going to take the time to review some of the code, otherwise why would I ask?
- Blackthorn 11y agoThis is about Google, which does not require a github.
- michaelchisari 11y ago
- exacube 11y agoFirstly, you're not entitled to any job you want just because you wrote Homebrew. If you accepted an interview with Google, then you accepted the fact that Google will judge you based on your problem solving skills, just like every other person was asked. Secondly, I don't think this is a hard interview question; it's certainly fair. Did you expect to be asked knowledge-based questions that Google knows you're already good at? Questions specifically geared towards you? Or questions where Google can watch you solve a problem and be comfortable with the fact that you are able to solve coding problems? Did you think Google would hire you to write Homebrew? Or solve problems on teams Google has? I think this person is just being unreasonable.
- ciupicri 11y agoIf 90% of Google's engineers use his software, it's reasonable to expect to be hired for continuing to work on that software.
- exacube 11y agoThat may be somewhat true, depending on how crucial and dependent Google is on Homebrew. But 90% of Googlers don't rely on Brew for work. It is just a figure he made up to make a point about how popular his software is. Using his software outside the context of our jobs is no means to justify a hire. He should go through the same interview process as 90% (much higher than that actually) of Googlers.
- ciupicri 11y agoMy impression was that he was talking about usage for business, not personal purposes. As for the popularity, even if the 90% figure is made up, I was only trying to explain/justify his point of view.
- deleted 11y ago[deleted]
- kzhahou 11y agoMax should add code in Homebrew to check if hostname contains "corp.google.com", and exit with a message that Homebrew can't run inside Google. Petty, but fuck em. They don't want him, they shouldn't get the fruit of his work.
- mparramon 11y agoWrote a blog post about exactly this problem: optimizing interviews for fancy algorithm solving, when the position's daily work is nothing like that: http://www.developingandstuff.com/2015/05/why-i-dont-do-coding-tests.html http://www.developingandstuff.com/2015/05/why-i-dont-do-codi...
- smtddr 11y agoDisclaimer: GoogleFanBoy here, feel free to ignore or downvote. So, I've interviewed with Google twice. Once was 3 years ago, the other was like 2 weeks ago. They contacted me. The way I see Google's interviews is like referee in Football(soccer or "Futbol"). Sure, you need a certain amount of skill to play in the World Cup but you winning or losing can, and often enough does, come down to a controversial referee call. You end up losing out to a team that did a handball - https://www.youtube.com/watch?v=-ccNkksrfls https://www.youtube.com/watch?v=-ccNkksrfls , but that's just how it is. What makes me like watching soccer so much is the same thing that excites me about Google's interview process. Yes, there is heartbreak and anger. Just like World cup fans get angry when their team loses because they were denied a point for an off-sides call even when the player was nowhere near off-sides. --- Is Google's interview process fair? Nope. --- Would I subject myself to their futbol-referee style of judging candidates again? You bet. --- Do I think they should make their process more fair? Nope, let the drama and _justified_ rant posts continue. Just like I want the unfairness in futbol to stay as is. I was one of the people against putting the microchip inside the ball to know for sure if it crosses the goal line. I want the drama of a ref having to call it and sometimes getting it wrong. I know people, especially on HN, love reliable & repeatable. I do too, except when it comes to dealing with humans.
- SQL2219 11y agoyep, hiring is broken. https://news.ycombinator.com/item?id=9689232 https://news.ycombinator.com/item?id=9689232
- deleted 11y ago[deleted]
- aaron695 11y agoGreat, another self entitled engineer who thinks Google owes them a job because they are sooooo good (Which, maybe they are good at some things) But how about Google didn't give them a job because this is how they handle failure, embarrass an entire company on Twitter to punish them.
- sciencesama 11y agoi didnt understand can some one explain TLDR ?
- ljk 11y agoguy made Homebrew, an OS X app, interviewed at Google; guy was rejected; guy rant on twitter
- pan69 11y agoPersonally I don't really care about Google's hiring process. It's unlikely I'd ever want to work there anyway. What does bother me is that other companies, who are not even in the same league as Google, start to copy their hiring process. I remember interviewing with a digital ad agency a few years back and I swear, these guys thought they were Google. The number of academic trivia questions that came up, it was ridiculous. In a way, I think Google has done a lot of harm to the industry in general by making others believe that everyone should have a hiring process like Google's.
- hiou 11y agoI've been there as well. I interviewed at a design agency a while back. I nailed all of their puzzles pretty easily only to get there and realize I was going to be doing Wordpress hacking and other CMS work from 2010. I left after a few months because of how trivial I realized the work would be in the long term. On the exit meeting it was relayed to me that they were having trouble finding people because no one could pass their tests and I was beside myself because I couldn't understand how they would expect someone with that technical ability to want to bang out Wordpress sites all day while there are 100s of people who would love to do that job and be very successful without ever even knowing what basic recursion let along the stuff they had in their test. Bizarre.
- lucidguppy2000 11y agoAlso - a big motivation for work is learning. Didn't someone say "never apply for a position your qualified for"?
- stuxnet79 11y agoI don't know who said that, and while I strongly agree with it in principle ... in practice it just tends to not work out like that. Employers want a cog in a machine. They don't want you to 'stretch, grow or learn' on their dime - no employer is willing to take that risk. Further, career progression in the tech industry is commensurate with the degree to which you've been pigeonholed in a particular skill or task. So a high salary is usually indicative, not of the diversity of your skillset but how well you perform within certain narrow parameters.
- rconti 11y agoHe sure has an awful lot of his self-worth wrapped up in whether he gets a job offer from one specific company. It reminds me of being interested in a particular girl in high school. At a certain point, you learn that there are other jobs out there, and maybe the one with the biggest name isn't the best one. I certainly wouldn't be the least bit offended. Not when the market is flush with high-paying-jobs-a-plenty, particularly for someone with his background.
- shanemhansen 11y agoI had a big comment here, but I erased it. I think one story proves my point. When talking to google engineers one thing I noticed was that they considered youtube to basically be a joke. The reason why is that youtube has a messy python codebase. I asked them what they worked on while they were at google. They had rewritten an internal web portal for a support tool. From everything I can tell it was literally a mysql crud app. If this is how success and failure are determined at google, it's no surprise how many of their products that people actually use come from acquisitions.
- skizm 11y agoIt is pretty well known there are a lot of false negatives in the hiring process since it is so much worse to make a bad hire than it is to not make a good hire. Sounds bad and it is, but no one has a better solution than try again in a year.
- pducks32 11y agoThe best part is that someone important at Google say this and no matter how they respond it's just funny.
- robbrit 11y agoI'd like to present HN with a challenge. Come up with an interview process that matches _all_ of these requirements: Objective - the process avoids human bias (this guy was in my frat, therefore is awesome). Inclusive - someone doesn't need extensive past knowledge in a particular area of coding to do well in the interview. Risk Averse - Avoids false positives. Relevant - it properly tests the abilities needed for a coding job, and not irrelevant ones (like the ability to write an impressive resume). Scales - this will be used for tens of thousands of interviews. Easy-to-do - this will need to be done by hundreds/thousands of engineers, who would probably rather be coding. It's easy to poke fun at what is perceived to be a flawed process. It's much harder to propose a solution that satisfies the above requirements. Google has done extensive research on this topic and has done remarkably well with it compared to other companies of similar size.
- wdewind 11y agoCreate an online game/project/test that people must solve in order to get an onsite interview. The game can be customized for individual teams to have more appropriate domain challenges. Spend the onsite interview walking through the code the people wrote for that game. Devil is in the details, but that's the broad strokes of what you are asking for.
- alok-g 11y agoIt may be hard to find a solution to the full interview problem. I still do not prefer whiteboard interviews; would be happy to code using my own laptop, projecting the session for everyone else in the room to see.
- ridiculous_fish 11y agoXoogler here. I can't meet your challenge. IMO the very premise of a company-wide unified interview process for all software engineers is wrongheaded. How can you make the interview relevant without knowing what the position is? I was asked the typical CS-type questions in my interview, but the team I ended up on required no theory. How do you define false positives before you know what the candidate will work on? A superstar in one team will be a dud in others. And let me add another bullet point to your process wish-list: gives the candidate a sense of whether they want the job. This is impossible when the interviewer is a random engineer from an unrelated team, unable to speak to what the candidate's work life will be like. A Google style process gives candidate very little information. I would instead propose something very old-fashioned: teams hire for themselves. The usual reply is that this results in an "inconsistent hiring bar", but so what? Teams have different requirements and need engineers with different skills, so why shouldn't the hiring process reflect that? We are not fungible engineering units.
- deleted 11y ago[deleted]
- bane 11y agoI've phone interviewed with Google a couple times. I wasn't really interested in working there, but wanted to see what it was like. Both times, the people who interviewed me were decent, friendly folks and we had a good chat. They then dug into algorithm questions on topics I hadn't seen since my undergrad (I'm about 20 years into my career) and haven't touched since then -- though I've done a bit of algorithm work outside of that they weren't particularly interested in that. I reached into my way-back machine and tried to derive some approaches where I simply didn't remember the answer (and I was very open about it). I made it to call backs both times, but they declined to move forward, probably because they wanted a younger person who remembered their big-Os off the top of their head, but I was okay with it. I told all the interviewers I had fun and I did. Even if I had made it in, I'm not sure I would have taken the job at those times. So my lack of motivation ended up turning what could have been stressful into a fun look at their hiring practices. However, I can see for people who are really dead set on working there, it can be a harrowing experience.
- eyeareque 11y agoLet's hope he makes a product that google wants at some point and then pays him millions (or more) for it. (like whatsapp and facebook).
- SubuSS 11y agoActually my pet theory is this: Interviews for experienced folks are more meant to keep them in their current companies rather than to filter the incoming new ones. This acts as a gentleman's agreement between the giant companies to keep their own talent pool semi-intact :) /s. I mean imagine the amount of extra work someone has to put in to start interviewing. Take a break from your current work, Prepare your CS basics again, Prepare from interview question dumps online, read up / analyze everything the new company is doing and form reasonable opinions, practice white board coding / coding without an IDE, allocate time for any homework projects given, Psych yourself up if you are introverted etc. The alternative is just to stay in the current role and hope stuff gets better. 90% of the folks I know choose the alternative over the dehumanizing process of interviews. So many folks I know are good engineers get chewed up in interviews (both in my current company and elsewhere) because the process is pretty cooked. We are trying to see how this can be improved, but yeah - I just keep going back to my pet theory :) I do agree with one of the commenters here though: At one point your resume should speak for itself. These are the kind of problems I would like LinkedIn to be solving instead of finding ways to spam me with recruiter deluge.
- topher6345 11y agoIn my office, opinions are 50/50 on this. Interview with Lazlo Bock on Google's hiring practices: http://youarenotsosmart.com/2015/06/08/yanss-051-how-google-uses-behavioral-science-to-make-work-suck-less/ http://youarenotsosmart.com/2015/06/08/yanss-051-how-google-... Some of the claims Lazlo makes: As large organizations grow, their workforce trends towards mediocrity. Google * takes special care to counter-act this effect. * researches their hiring/interviewing practices just as much as their machine learning. * publishes their methodologies: https://www.workrules.net/ https://www.workrules.net/ The algorithm in question is discussed in Coding Interviews by Harry He. http://www.apress.com/9781430247616 http://www.apress.com/9781430247616 I feel the original tweet conveyed a bad attitude, was emotional, reactionary, and ultimately a bad career move on the part of OP. In my younger days I suspect I would have done something similar. I'd like to think I would see the experience as a learning opportunity and be able to react with humility and maturity, but who knows? Hopefully I can think of OP and not tap the tweet button.
- mildbow 11y agoWow. Really? Pretty much everyone recognizes that google style interviews weed out perfectly good people. What Max went through is just an example of one such obvious case. It's very much a case of the google hiring algo failing. Lot's of people would have no doubt that Max can cut it when it comes to iOS dev. That's all it is. Now, if you are going to read "tweet conveyed a bad attitude, was emotional, reactionary," into a perfectly human tweet, holy crap you are judgmental. >> ultimately a bad career move on the part of OP. Not at all. I've done a lot of interviews and basically none of them required us trawling twitter. I think it would have to be something pretty heinous for me to not hire someone based on their social media crap. Definitely not something as mundane as this. This sort of hilarious cowardice about expressing feelings just makes me angry. At what point do we stop acting like these trivial, humanizing glimpses into a person are somethign that is a bad career move?
- ajhc112 11y agoThis guy sounds like a tool. Sure, he's accomplished, but his website and linkedin are dripping with self aggrandization. "Splendid Chap" -- cringe. My hunch is that they didn't hire him because he didn't seem like a cultural fit.
- deleted 11y ago[deleted]
- markbnj 11y agoNumber of times I have had to invert a binary tree in my 25+ year career: 0. Number of times I have been asked to invert a binary tree in an interview: 0. What I would do if I had to invert a binary tree: look it up.
- ksk 11y ago>Number of times I have had to invert a binary tree in my 25+ year career: 0. Number of times I have been asked to invert a binary tree in an interview: 0 Well, if you wanted to pull that card, it would have been nice to mention the sorts of problems you've worked on in those 25 years. >What I would do if I had to invert a binary tree: look it up. Unless you're already good at algorithms, it would net you a mediocre solution. For e.g. You would only know that there are multiple ways to implement an algorithm when you've actually done the work dozens of times and noticed that some implementations won't be appropriate for you needs. Like with many things, its about having experience, knowing whats a good fit, and knowing why something similar isn't a good fit. Certainly - every single time you choose an algorithm, and then decide on a particular way to implement it - you could in theory, implement each algorithm in 10 different ways and then choose the best one after benchmarking. But that would be a huge drag on productivity. And if you had to choose 5 algorithms for 5 different tasks then it quickly becomes a quadratic complexity time sink. It would be far better to just know via experience. Its kind of like in chess - the better players just KNOW that certain paths lead to less favourable winning odds. Well, novices do take those paths and eventually find out the hard way !
- markbnj 11y ago>> Well, if you wanted to pull that card, it would have been nice to mention the sorts of problems you've worked on in those 25 years. Quite a range of stuff, unsurprisingly. I started on an HP3000 mainframe in 1976, if you want to go back to the very beginning, writing BASIC programs on a teletype or one of the two early CRTs, and storing my programs on paper tape. Since then I've worked in DOS, 16-bit Windows, 32-bit Windows, 64-bit Windows, Ubuntu, iOS, and Android, using Pascal, 8086 assembler, C, C++, C#, javascript, Python, and Java. I've worked on applications in multimedia, telephony, banking, insurance, pharmaceuticals, cosmetics, health care, and I'm sure a few other things I've forgotten. All of which will mean jack squat if, tomorrow morning, the most important thing I have to do is invert a binary tree. But I'm fairly certain I would be able to figure out what I needed to do, and I am fairly certain I could manage to implement it well. It's what we're supposed to be able to do, and if you think that having studied up on it so that you could pass a Google interview means that, a few years down the road when you actually need it you'll just whip it off the top of your head, then I think life may hold some surprises for you.
- Frenchiie 11y agoI dont want to be an ass but how do you not know how to invert a tree? Anyone who knows how to write a tree and traverse it should be able to do this. If you ran out of time coding it then that's different.
- jbrukh 11y agoNot even. If you know what a tree is, and you've written a couple of recursive problems on trees in your life, then you know most of them are approximately 5-6 lines of code. If you're spending 45 minutes writing 5 lines of code, it is not definitive, but certainly a red flag.
- gaustin 11y agoNobody in this thread has even been able to define what inverting a tree means. (Reversing or mirroring? Sure.) My search for how to invert a tree led to a bunch of fairly hairy academic papers. If you have a definition, please elucidate.
- fallat 11y agoGoogle really does only hire individuals who are strong in theory. Maybe we are jealous. We wish we had the brains of the people getting into Google. I can say personally that I envy these people. The fact that they don't mind being treated as numbers maybe says something about these people too. They are cold. Their ego must be pretty big too if they make it into Google. Someone should do a study...hehe.
- overgard 11y agoWhen I used to interview people (I wasn't a manager, but I was senior enough to be entrusted to the role), I'd just ask about projects they had placed on their resume (to get a feel for their contributions) and then the rest of the interview would be focused on what the job was and how that matched with their career goals, why they thought they'd want the job, that sort of thing. The latter part was a bit harder because people are naturally defensive during an interview, so they can't be like "well I want an entry level web developer job so I can parlay this into something better in two years" (which is, IMO, totally an acceptable answer), but you can generally politely get the idea. Maybe I'm weird, but I just sort of think interviews should be more about determining fit than giving someone a lie detector test. I get the puzzlers or whatever for a phone screens (quickly weed out people that are obviously unqualified), or if you're hiring someone junior who doesn't have work experience, but if you're at the point where you're bringing someone in you probably think they're minimally qualified, so it should really be about determining if goals are aligned IMO.
- rbanffy 11y agoI don't think loudly (and impolitely) complaining about being rejected at a job application can, ever, be the smart thing to do.
- stuxnet79 11y agoIt is not. IMO it's a pretty ballsy and idiotic thing to do. That's partly why I am not too active on Twitter. I have a lot of controversial, unpopular opinions that I wouldn't want a potential employer to get a whiff of.
- ised 11y agoPersonally, I'd prefer to work at a company where 90% used pkgsrc.
- tlogan 11y agoGoogle is about monoculture (certain type personality) - and from their business perspective it seems that approach works. Why to change it? If they try to invent something new or in different market they might need different type of people but as of now ads business is cash cow and they would be crazy to try change it.
- 10098 11y agoAm I missing something? Are we talking about getting a left-to-right mirrored version of the tree? If so, I'm amazed. This is a technical community, and people who presumably know how to program are moaning that this is some kind of "academic" question? Are you guys for real?
- aayala 11y agoHiring/Interview process is broken and not only in Google
- oh_sigh 11y agoThe problem with google interviews and tech interviews in general is that it is almost impossible to capture what makes a successful candidate in a couple of mini interviews. They don't even pretend that what you do in the interview is what you will be doing in an actual job there. Most of a developers time is spent in meetings, understanding their problem domain, writing documents, or reviewing other developers documents.
- zippy786 11y agoGoogle, if you have really smart people working for you then make a new problem solving question for each person you interview! The current interview standards highly promotes memorizing stuff which is pathetic.
- lukaslalinsky 11y agoI strongly believe that the best kind of technical interview is to talk with the person about things they have done in the past, go into details and see if they are telling you bullshit. If the things are interesting, at least somehow relevant to what the company is doing and the person knows what they are talking about, it's a good hire. One problem is that only experienced developers can do these kind of interviews, because you need wide experience, be able to talk about various technical topics and tell whether the other person is telling you stories from their own experience or some quickly learned facts. It's funny, but the best experience I had interviewing at Google and Amazon was talking with the managers.
- TheMagicHorsey 11y agoI've been invited to interview at Google three times. And they've declined to hire me three times. The last time I interviewed there the quality of the people that interviewed me was much lower than the earlier two times. I was still rejected, but I felt much better about working somewhere else. I'm sure Google is still a great place to work, but its reminding me more and more of 1999 Microsoft. In fact the similarity is spooky.
- deleted 11y ago[deleted]
- lmilcin 11y agoGood engineer you didn't hire is not much of a cost to the company (other than resources wasted on hiring process and perhaps some bad publicity). On the other hand bad engineer will stay at the company, lower standards, damage morale and set bad precedent to other engineers. Being engineer myself, I feel much more motivated working in an environment where you can just assume, even before meeting, that the other person is intelligent and motivated. You trust hiring process to filter everybody else so you don't have to subconsciously distrust every person you meet. This comes at the cost of situations like that.
- treffer 11y agoDoesn't this contradict an interview with Senior Vice President of People Operations http://www.wired.com/2015/04/hire-like-google/ http://www.wired.com/2015/04/hire-like-google/
- randomsoul 11y agoAn Indian eCommerce company wanted to test my mathematics while interviewing me for a VP of Marketing role. I had to tell them I won't fit into their company culture, let's not waste time further.
- z3t4 11y agoAt least he didn't get put off because his CV had the wrong font. It was actually a technical question. They probably have binary trees that needs to be reversed everywhere in Google :P
- atmosx 11y agoI wonder what an interview process at Google with Linus Torvalds or Theo de Raadt would be. I take for granted that the interviewer would not had a clue about their accomplishments. Would they manage to pass the process?
- utuxia 11y agoI don't even bother responding to any of the Big 4 when the reach out every few weeks. They all ask these ridiculous questions.
- cheradenine01 11y agoDon't we have Universities for this? I mean - what's the point of spending 3-4 years in an Academic environment that proceeds to then test and grade students on exactly how good they are, at the time - then only to perform the whole process over again some number of years down the road, with fuzzier results? Seems dumb to me. I've worked with people who could likely do very well on algorithmic tasks - (of which most software projects require precisely zero) - but actually deliver something of use... not so much.
- harel 11y agoI don't know if I would rant on Twitter, but I would be as frustrated as well. Those 'tests' are very academic and I am not an academic person. I've not even officially finished high school. This test will not properly judge how well I can code or design software. I've been doing just that for 20 years now, and launched a few start ups, but I would fail that interview at the door. I interviewed once for Google (at their request) and failed. For some reason they interviewed me for a networking position instead of a code one, so questions about TCP internals were not really my forte. I was just launching my second start up at the time and would have declined the job had I gotten it. I admit it does sting a bit to be declined - not just for Google, but for any position - even those you would decline yourself.
- grahamar 11y agoAs someone who struggles to learn by rote as opposed to learning by practical means and has been both hired and declined by the Google recruitment process. I can't help but agree with his sentiment. The recruitment process (at least for experienced engineers) should be little more then "can I work with this person". The 6 month probationary period that follows the hiring process should be used for "can this person do the job well". But that's just my experience, and it seems to have worked well. Regarding the same academic questions everybody gets asked in every development interview, I feel Einstein said it best with "[I do not] carry such information in my mind since it is readily available in books. ...The value of a college education is not the learning of many facts but the training of the mind to think."
- greendesk 11y agoI remember a story from college graduation. A friend contacted an alumni from the university. The alumni worked in the semiconductor business. One of the questions he asked the alumni was: "How does he select a great employee?" Alumni's response that it is exceptionally tough. He shared an anecdote about one of his best hires. The alumni wanted to test the interviewee's knowledge in different areas. He asked a question on diodes - it might not have been diodes, but for the sake of the story let's stick to diodes. The interviewee replied: "Hold on, I am not one to know about it." I have not worked at Google and I do not think I'd pass its interview process. It is unlikely that I be diligent enough to make Homebrew. Nevertheless, I am inclined to the idea, that being knowledgeable in all tested areas would not reveal the personal fit necessary to make a great team.
- k4rtik 11y agoAnybody noticed an istx25 stalking each tweet-job suggestion and ultimately getting busted[1]? :D [1]: https://twitter.com/markmcerqueira/status/608914346706657280 https://twitter.com/markmcerqueira/status/608914346706657280
- mildbow 11y agoThis thread is weird. The people vilifying Max or saying "duh you didn't get hired, Google requires awesome people" seem to have a totally warped sense of exactly what Google engineers do day to day. Blows my mind that there are so many people defending this (well-known and pretty much taken as a trade-off) lapse in the Google hiring algo and instead making it seem like Max's fault.
- junkilo 11y agoWas hoping to gain some insight to improve interview cycles here but instead just have agita. Jobs come and go, great work is always great work, but friends are what I remember most.
- gjc 11y agoCan someone please help solve the problem? I have created a bounty: https://www.bountysource.com/issues/21606252-please-solve-binary-tree-inversion-problem https://www.bountysource.com/issues/21606252-please-solve-bi...
- novaleaf 11y agoI don't know, inverting a binary tree seems like a pretty easy task. If I were hiring a senior developer (to code as a primary task) I think it's a reasonable fizzbuz.
- timtas 11y agoHow can we see if this technique works? There are two methods try to know something: deduction and induction. First a little deduction. Let's try to be explicit about the theory behind this technique. It's safe to assume that the job will NOT consist mainly of cranking out binary tree inversions on whiteboards while being watched over. So obviously we're hoping to make a correlation with something else. Assuming the candidate was not tipped off and learned this particular puzzle, perhaps we are correlating to an ability to rapidly create novel solutions of long-solved algorithms without reference tools. But is that what the new hire will be doing? Probably not. We could continue down this path, identifying ever more removed correlations until we get to something that the job actually demands. This probably involves solving hard problems like naming things. [1] But by now our theory stands on pretty thin ice indeed. In any case, all of this deduction is theory making. It's not knowledge until we attempt to falsify [2] it via induction. The human mind constantly induces hoping to verify our deductions. We reason, observe, conclude and repeat. We're good enough at it to survive, but that's about it. Lucky for us, science came along. Today's technical hiring is at best alchemy. A interesting company called TripleByte [3] is trying to apply induction (first for YC companies). They specially shun on white board coding and puzzle solving tests in general. I will be interested to see how they fare and whether their learnings are adopted more broadly. [1] http://martinfowler.com/bliki/TwoHardThings.html http://martinfowler.com/bliki/TwoHardThings.html [2] http://en.wikipedia.org/wiki/Falsification http://en.wikipedia.org/wiki/Falsification [3] http://techcrunch.com/2015/05/07/triplebyte/ http://techcrunch.com/2015/05/07/triplebyte/
- icando9 11y agoIMHO, I don't think it requires any practice to be able to invert the binary tree. It is so trivial that it only requires a very basic level of programming skills. I agree whiteboard is generally broken, but for this particular case, I don't think Google is doing wrong. We can think another way, if some company hires people based on his reputation instead of the ability of doing actual work, I don't think it will survive. In this particular case, you just didn't show your ability of doing actual work, that's it. I am glad to see that Google prefers ability of doing actual work to reputation.