11 ms·
Someone who builds a truly novel technology solution involving hundreds of hours of effort gets filtered out of an interview involving contrived scenarios. You
by Dowwie 4y ago
Someone who builds a truly novel technology solution involving hundreds of hours of effort gets filtered out of an interview involving contrived scenarios. You may have built the next generation X, but given an array of strings and a fixed width, can you format the text such that each line has exactly maxWidth characters and is fully justified -- in the next 30 minutes? Maybe you should have cultivated that skillset instead, because around here we value parlor tricks more than real world accomplishments.
- throwaway2037 4y agoNo joke: Isn't this the famous Donald Knuth text layout algorithm? I heard it is still used today -- it is that good.
- WorldMaker 4y agoI've done that in interviews: "oh hey, the most efficient known algorithm is this classic named X". That tends not to win interviews either, but in the real world knowing the name of the best algorithm (or even just that a best algorithm exists and a general idea of what you'd google to find it) is more useful than knowing the details of it. If I need to reimplement a well known algorithm I can often reimplement it from the Wikipedia description, that's trivial and boring make-work (and will always be trivial and boring make-work). But I need to know which well known algorithm sometimes and that's a far more useful practical skill.
- hiq 4y ago> Someone who builds a truly novel technology solution involving hundreds of hours of effort This person should already have enough of a reputation to get a job at many companies, if their work is public enough. What do you suggest for the 99%+ other candidates?
- sai_c 4y ago> This person should already have enough of a reputation to get a job at many companies, if their work is public enough. But then why do people with that kind of reputation still (at certain companies) have to jump through these hoops? https://www.theregister.com/2010/04/21/ken_thompson_take_our_test/ https://www.theregister.com/2010/04/21/ken_thompson_take_our... > What do you suggest for the 99%+ other candidates? What about (instead of forcing a months long decision process upon the candidates and the company) bringing them into the company after a short interview (maybe 2hrs), and making sure they can afford housing, food and everything else they need. If you like their work, they stay employed. If, say after one month, you do not like what you see, you can easily let them go. Of course you tell them upfront what the deal is. We could call it, I don't know, maybe trial or probationary period.
- rat9988 4y ago> But then why do people with that kind of reputation still (at certain companies) have to jump through these hoops? They don't. Your link is not about the interview.
- grogers 4y agoThat's a big overhead for both the candidate and the company. Only an unemployed candidate could do that, and even then they'd have to stop interviewing at other places to dedicate the month. No thanks.
- NikolaNovak 4y agoTrue Probationary period / uncertain employment is 1. Untenable for employees - of I have a mortgage or family or plans or obligations let alone a current job, taking this kind of risk is unacceptable 2. Untenable for companies - that's way too much investment. Companies do have probation periods formally but they are exceeeeedingly rarely invoked, for above reasons.
- Dudeman112 4y agoMight I introduce you to Europe? Works here. My org recently ditched a bad hire with it.
- NikolaNovak 4y agoI think we'd need to share more detail (and fwiw, I'm half from europe and half from Canada :). Certainly companies have probation periods. And on paper, that reality and what's proposed in previous post are similar. But I think there's a massive real world difference between "Default stay hired" and "Default not stay hired". Probation, as it has currently been implemented in most companies I've worked in, exists, is formal, can and has been used, but is an exception. It's used when there's a massive, unanticipated, egregious problem in performance. What is sometimes proposed in these threads is effectively replacing long/multiple interviews, with a probation period. While such probation period may look similar or same on paper, I think it's a completely different approach: "We're sure of you (though possibly wrong) so we're hiring you" vs "We're not sure of you so let's hire you and see!". I for one would have only touched the latter with a 100ft pole maybe once in my life. Certainly, I imagine anybody with current job and monthly obligations, would be quite wary in taking a "we don't know so let's try it!" approach to hiring. No, let's figure it out first please :)
- okeuro49 4y agoI have over a decade of experience, including driving big technical change at one organisation, and was filtered out by a timed leetcode test. I put together a repository of leetcode practice, as I had a feeling that I would have bad luck on the day. They didn't look at this. The internal recruiter said it kept happening for seniors and people with a lot of experience, but his hands were tied, as the leetcode process was deemed important by the CTO.
- bruce343434 4y ago>it kept happening for seniors and people with a lot of experience Why would this be? Old brains not being as "flexible" to think up novel solutions?
- IThoughtYouGNU 4y ago
- sourabhv 4y agoIf you think it’s about flexibility or brilliance or intuition or experience, you couldn’t be more wrong. Leetcode and others and purely about practice and that too recent practice, all questions follow similar patterns and if you have it fresh in memory you can write it in 5 mins. But writing it from brainstorming can take more time tha allotted. So are top leet coders better programmers? Not really, a lot of them are colleges students who have time to practice and they are in similar competitive circle. I’ve interviewed many and couldn’t hire even one
- MichaelBurge 4y agoPeople straight out of college will spend a month doing 100+ Leetcode problems targeted at the companies they're aiming for. Leetcode tracks problems used at interviews, so there's a very good chance they'll see a problem identical or similar to one they've solved already, and it's just pattern recognition. After the 3rd or 4th time doing this, practicing the same problems just to pass interviews isn't very appealing, especially if you've saved money and can do something more interesting. You could try to "wing it" and derive it on the spot, but you'll be outcompeted by someone doing a lookup of a solution + alternate solutions from cache.
- sdevonoes 4y ago> What do you suggest for the 99%+ other candidates? To apply for the 90% tech companies out there. 10% of all tech companies out there are FAANG or FAANG-like. 90% of tech companies are normal tech companies (they'll care about your education and cv and the interviews are usually just a chat. No IQ tests)
- ehnto 4y agoI think it would be exceptionally hard to build an individual reputation in the tech community in general, props to those who have, but building a reputation in a specific industry and local community is much more achievable for everyone. In smaller industry niches this can be true for companies more than people. At this point in my career, the fact that I worked at Company X is evidence enough that I can do the job Company Y wants me for, since it's a tight industry they essentially know of the work I was doing, even though it wasn't a groundbreaking novel technology of my own.
- pyb 4y agoPlenty of great developers with a prominent public profile appear to be under-employed.
- bodge5000 4y agoWasn't there famously the story of the guy who wrote a package manager (brew?) that become massively popular and was widely used at google, and yet google rejected him for a job because he couldn't invert a binary tree or something? Don't know all the details so I could be missing something crucial, but if not it'd seem that reputation isn't enough
- gjm11 4y agoYup. Max Howell, creator of Homebrew. A bit more information here https://www.quora.com/Whats-the-logic-behind-Google-rejecting-Max-Howell-the-author-of-Homebrew-for-not-being-able-to-invert-a-binary-tree/answer/Max-Howell?share=100e0bb6&srid=unBJ9 https://www.quora.com/Whats-the-logic-behind-Google-rejectin... (link to Quora, uggh, but that's where he wrote it). HN discussion of that: https://news.ycombinator.com/item?id=15981338 https://news.ycombinator.com/item?id=15981338. Howell's earlier tweet after getting turned down by Google: https://nitter.net/mxcl/status/608682016205344768?lang=en https://nitter.net/mxcl/status/608682016205344768?lang=en. "Google: 90% of our engineers use the software you wrote (Homebrew), but you can’t invert a binary tree on a whiteboard so fuck off."
- heyoni 4y agoI don’t necessarily think leetcode should be the only litmus test for a candidate but Max is an outlier. Not every candidate getting rejected by a leetcode question is also capable of building out homebrew on their free time.
- anon23anon 4y agoThey 100% can get a job and a decent one. I know because I fall into this category BUT the FANG salary are 2 to 2.5 times what I make at this point which pushes me down the study leetcode part.
- Der_Einzige 4y agoGuy who wrote apple homebrew got filtered and rejected by Google for not reversing a binary tree. Apple homebrew is used by tens of millions of people daily.
- jen20 4y agoNit: homebrew is not from Apple and is not even limited to Apple platforms.
- dvirsky 4y agoI had a great track record that was out in the open, actually displaying vast knowledge of algorithms and data structures and exactly the stuff that's being asked in those interviews. FAANG interviewers did not care one bit about it. They actually consider it bias to look at a person's prior work.
- closeparen 4y ago>This person should already have enough of a reputation to get a job at many companies, if their work is public enough. You can't just hire someone based on their reputation at a company of any maturity. That's a legal and HR nightmare. There has to be a process with a semblance of objectivity, and that process has to demonstrably apply to everyone equally, always.
- chadash 4y agoHiring based on reputation is the same as hiring based on resume. And it's extremely common in almost any company. Why would it be a legal or HR nightmare?
- asdff 4y agoWhich in practice means you put out a fake job posting where the qualifications uncannily mirror this persons resume to a tee, and you hand them the job formally after a week.
- closeparen 4y agoYes, but the forms must be observed. You can't just skip the interview, or give people you like a softball interview compared to other candidates.
- asdff 4y agoI've been in situations where I was already somewhat working and onboarding while the faux job ad was up for the two week or however long mandatory posting period. tallied the hours separately and got paid back after i was hired.
- tsimionescu 4y agoI can't at all imagine why this would be the case. Why would a company have any kind of liability for hiring biases such as reputation (except for systematically refusing candidates from protected groups, of course)?
- __turbobrew__ 4y agohttps://twitter.com/mxcl/status/608682016205344768?s=20&t=NsJwok32E1R5C0IGOyX7bQ https://twitter.com/mxcl/status/608682016205344768?s=20&t=Ns...
- draw_down 4y ago
- wiseowise 4y agoFOMO is an atrocious hiring practice. Chances of your scenario, where you somehow find a person that can create something novel, that they will stick around to actually produce novel thing and then this novel thing “making it” are nonexistent.
- goodpoint 4y agoAsking contrived algorithmic puzzles might prove nothing, but the examples in TFA are actually pretty basic programming: “I have an array with positive numbers, find the n^th largest”
- przemelek 4y agoyeah, but in real world when this kind of problem will need to be solved people will most probably sort O(NlogN), or use priority queue O(NlogK), or even will go with something like O(N*K), almost no one will go with O(N) algo and because usually N and K are rather small and this code will not be called too often time complexity may be ignored. Still any solution shorter than O(N) will be called inefficient. And in real world they will know N and K from this what kind of problem they are solving, and this will not be hidden in mist of abstraction with assumption that "candidate should ask".
- Jorge1o1 4y agoMoreover, with the micro-optimized SIMD quicksort algos that are perennially cropping up on this website... I would be willing to bet that "sort and take first N" is objectively faster than my crappy Python implementation -- even if it is linear time.
- grogers 4y agoI mean, in the real world you probably use a library method. If I were an interviewer I would not be expecting the candidate know about median-of-medians (O(n) worst case). I wouldn't even expect they know a-priori about quickselect (O(n) avg). But I don't think it's unreasonable that given a few hints, a candidate could understand and implement quickselect in 30 mins. Most people know about quicksort already, and quickselect is not very different. You can even give them the partition and select_pivot function at the start and then if there's time have them fill those in. In the rare situation they haven't even heard of quicksort, you can even write the shell of the algorithm for them, and have them adapt it to quickselect. Even then, all thats probably a bonus - a priority queue implementation, or many other possible solutions are probably good enough for me.
- 4y ago
- pojzon 4y agoThis reminds me of creator of „brew” who got declined by Google because he couldnt write a reverse binary tree search in 1h. Dont mind that half of Google is using his work for free.
- UncleMeat 4y agoThat wasn’t actually true. He later said that he wasn’t asked to invert a binary tree. Also, nobody at google is using homebrew for work.
- l-lousy 4y agoAnyone using a Mac for tech related jobs has a high probability of using brew. That includes a lot of googlers
- UncleMeat 4y agoGoogle doesn't allow any code on laptops. Everything is done via web IDEs or ssh into a linux machine. So nobody is using brew to obtain dependencies.
- EdwardDiego 4y agoDo you work for Google? I'm just doubting you a little. Like the guy from project zero is finding bugs in Windows via ssh to a Linux machine? Definitely going with Doubt here.
- sumeno 4y agoThey are correct. Stuff like project zero is an extreme outlier. I've been using a MBP for 5 years and have never used homebrew on it.
- EdwardDiego 4y agoCheers for clarifying :) I'll admit that surprises me greatly, I can't see why it's considered more efficient, but hey, Google.
- bigpeopleareold 4y agoI don't do leetcodes because I am not really into programming puzzles (or parlor tricks :D ), but I roughly tried to do what you described. ~45 minutes it took, deciding in the middle to not worry about the algorithm. Guess I won't get the job ... shrugs.
- sdevonoes 4y agoYou won't get the job not because you "didn't worry about the algorithm" but because you didn't ask any questions about the problem; just went straightforward to the implementation. In FAANG interviews that would be a red flag.
- ericbarrett 4y agoIn the FAANG interviews I've done you're never allowed to ask questions...? Maybe for clarification of the problem space, but not about the algorithm or the promise of a particular solution.
- LanceH 4y agoFacebook interviews were very much interactive with my interviewer probing me on O(n) type questions and me refining it down to be more efficient. I was certainly allowed to answer questions, typically about scale. My code which was on a whiteboard certainly wouldn't compile and a good amount of the discussion was making sure that the interviewer could follow it and that he was satisfied with each of the steps. My first round I passed with a less than optimally efficient solution, but he was satisfied every step of the way during my work. While I was lukewarm to the prospect of working for Facebook, the interview process was very positive and reflected very well. On a personal level, self interest would have me like the leetcode style problems because I can get most of them right on the first try during a timed interview, without studying. If I were pursuing a job at a FAANG, I might actually study them and I'm sure it would go well for the testing portion of the interview. However, when I interview this is not what I'm looking for. I'm typically looking for someone who knows the particular language that I'm hiring for. My questions run from the very simple to as deep as they can go on either language or implementation details. From the most junior to the most senior, they get the same starting questions and I expect the senior people to go deeper and explain why they choose something over something else. I'm also testing their ability to explain it to me (not just get it right) as that is part of their job working with juniors. I really don't even care if they have the names of things right and don't really count things wrong against them if they get the names of two things backwards for instance. For example in Go, a huge percent of the time you might use slice over arrays. Some people get the names backwards, but can identify which one they actually use and they know that one can change size. They are correct in usage and misnaming them. I inform them of the name, encourage them a bit and move on. I've never liked the "look at this code, what's wrong with it" approach. There are too many contexts that I have to jump into at the same time. There is often an expectation that I find a specific problem with it. I'm lacking the usual tools like an IDE or compiler. What level am I looking at in the code? Does it compile? Are there off by one errors? Cache invalidation? Spelling errors? Logic errors? Business errors? This guy has missing tests on code that needs to be refactored in order to make those tests. Maybe he has it figured out just right, but the "jump into my code" interviews I've been in on all seemed like they had secret gotchas that the interviewer expected specific answers about. In short, I haven't seen a proper, repeatable process for interviewing for software development.
- devnulll 4y ago> given an array of strings and a fixed width, can you format the text such that each line has exactly maxWidth characters and is fully justified So many questions. What character encoding is the string? What is human language? Should I honor non-breaking spaces and other similar codepoints? Is the string full of 'simple' characters or 'complex' characters? Graphme's? Emoji's? What's the min and max limits on width? How long (or short) can each string me, and how large could the array be? On what system am I running, and does the array fit in memory or is it paged off a disk? Does the font we're using support all of the graphme's present in the string? Amusingly, I had a variation of this problem as part of an Amazon L8 IC role interview, framed as a Prefix Tree. Solved the problem, didn't get the role. :(
- frob 4y agoSadly enough, I'm literally scoping out a new feature at the startup I work at that involves rationally splitting text into lines with a max length and buffers with a max line count so we can interface with a legacy system from the late-80s/early-90s