19 ms·
I cannot help but think that these big tech companies (FAANG, et. al) are missing out on diversifying and increasing their engineering expertise by passing over
by odorousrex 8y ago
I cannot help but think that these big tech companies (FAANG, et. al) are missing out on diversifying and increasing their engineering expertise by passing over developers like you.
I often think what would Google/Facebook would be like if they hired in some experienced engineers that may not be able to whiteboard a BFS tree or can tell you Djikstra's algorithm, but have proven business track records of getting projects done, on budget, and on time. Real, pragmatic, get-it-done types of engineers. (That's not to say whiteboard expert engineers can't also be this way - it's just that whiteboard interviews don't hire for this in particular - technical expertise comes first)
There was an excellent comment on another thread yesterday (that I can't find) that basically said something along the lines of "If I'm asked about BFS trees in an interview I'm going to tell them I'm just going to google a library that can handle it - I've got more important work to get done"
- deleted 8y ago[deleted]
- mav3rick 8y agoThis is just ridiculous. BFS is such a useful building block. If you're stubborn enough to not spend 10 mins on this the best of luck.
- ojr 8y agoThe creator of ruby on rails wouldn't pass a whiteboard interview. Ruby on Rails had more of an impact at Twitter, Github, Airbnb than BFS is my guess DHH's tweet https://twitter.com/dhh/status/1085987159406927872 https://twitter.com/dhh/status/1085987159406927872
- deleted 8y ago[deleted]
- hungryhobo 8y agoi mean if had to choose between no graph theory vs no ruby on rails...i would probably go with no ruby on rails
- kamarg 8y agoWhat if you had to choose between someone with a proven track record of building high quality software used by millions of people who has also shown they're capable of leading groups of people in successful projects but hasn't memorized the specific algorithm you asked about and another candidate who doesn't have as good of a track record but can totally nail that easy algorithm you asked for? Edit: Typos.
- mav3rick 8y agoYou think every candidate who comes in is like this. There are anomalies and outliers. The truth is resume padding is so common in the valley. Everyone can just say all these things. It's very hard to hire like this.
- kamarg 8y agoI don't work in SV. I assume it's like everywhere else where a potential employee who feels their skills are weak will take credit for things done by their teammates even if they were only tangentially involved. My above comment was strictly related to the idea that DHH shouldn't be considered for a job over anther candidate who is an unknown quantity simply because DHH apparently is not good at algorithm problems in interviews.
- hello_moto 8y agoWould you choose one-hit-wonder over proven engineers (Jeff Dean, Sanjay, other ex SUN microsystems folks?) that lead high-profile projects? I know that sounds rude... but one seems better to be a leader while others are better engineers would you agree?
- kamarg 8y agoTotal cop out answer but if DHH and people like Jeff Dean are both interviewing for a position with me you can be sure I'm doing everything I can to hire all of them. Even if it means starting entirely new departments. I'd totally fanboy and hire Jeff though if it came down to just one though.
- base698 8y agoThere's a reason such tweets resonate so well: 1. Creator of top software project can't pass whiteboard interviews. 2. I can't pass whiteboard interviews. Therefore, they are stupid for not hiring me. It strokes everyone's inner narcissist--why spend the hours on leetcode, they are stupid anyway.
- stale2002 8y agoI wouldn't hire someone who cares so little about getting a job that he didn't spend the most basic amount of time studying for obvious questions that he was of course expected to be asked. Such a situation would show me that he either does not care about getting the job, or is so arogent that he automatically expected that people who throw job offers at him. That shows that this person has horrible personality problems and that I would not want to work with him, no matter how much he has accomplished in his life.
- Benjammer 8y agoI honestly don't mean this in a snide way. Can you give a few concrete examples of how a deep understanding of BFS that can't be googled and read in 10 minutes at the time you need it can help you ship profitable software products faster than your competitors?
- mav3rick 8y agoNo problem will present in such an easy way as "oh just apply BFS". As part of a big project you often have to use many different algorithms for sub parts, often modify them to suit constraints. I think the HN crowd is heavily inclined to web apps and also front end. I can't tell you how important fundamental CS knowledge is for backend. I bet you can't use a library or API for how caches work or when paging happens. Knowing these things makes you a well rounded engineer ready to tackle different problems. I can trust you to write a mobile app or work on some part of a self driving car because you have the building blocks to do so. Most of the comments in such threads have no interest in interesting and diverse jobs because "why bother, when will I use this". To any new grad, yes the interviews can be better but please spend time on these things at school. They are an investment in your career's stock.
- Benjammer 8y agoI mean, I've built and released multiple mobile apps (commercial and enterprise) on both platforms for multiple companies. They've all been mostly successful at doing what the company needed them to do. They look fairly nice as well. And I don't have this kind of fundamental, "what do you mean 'google it' are you a complete and total fucking moron!?" attitude about anything in software. I routinely browse through google results (mostly SO/Medium) about very basic concepts just to read the words again and re-warm those caches in my brain.
- saagarjha 8y agoIt’s possible to have to solve issues like this even inside of app development. Think back to every time your app has performed poorly: has there been any cases where you didn’t know how to make it faster without giving up in the way you had designed it? Maybe the app was reading from the disk to populate your data model, and that was too slow? Maybe you were performing an O(n) operation for each row in your table view?
- quickthrower2 8y agoBFS is common sense. It’s what you use when you’ve lost your car keys for example. Quickly check each room in the house, then if no luck go one layer deeper in each room.
- deleted 8y ago[deleted]
- dekhn 8y agouh, I thoroughly search each room, starting at the left corner and recursively iterating via a hilbert curve. doesn't everybody?
- ghaff 8y agoTwo different approaches. Each have their adherents. But when someone can’t find their phone or keys that that just had, they probably don’t start by ripping one room apart top to bottom.
- Rapzid 8y agoI would certainly probe deeper if given that as evidence for a strong grasp on the utility of BFS.
- quickthrower2 8y agoSo you’d do a DFS on a BFS
- magicalhippo 8y agoI didn't know about "BFS trees", do you have any references? I tried Googling but I could only find breadth-first searching (which I do know well, though apparently not the acronym BFS), but that's just a traversal algorithm.
- reggieband 8y agoBFS is "Breadth first search". One tree you would do this on is a BST or "Binary Search Tree". Probably OP got the acronyms mixed up.
- vishnugupta 8y agoThere's actually a thing called BFS tree. It's a tree that depicts the order of node expansion/visitation when a graph is traversed BFS. Even I wasn't aware of it until I recently read Peter Norvig's AI book. However, I'm not sure if the author referring this.
- magicalhippo 8y agoRight, since I didn't pick up on the acronym I thought I had missed something. Cheers!
- jenscow 8y ago> If you're stubborn enough to not spend 10 mins on this the best of luck I know. These people are expecting to be paid way above the average salary - I'd expect them to know the fundamentals, or (more importantly) be able to figure it out. "BFS?? I'd use a library for that" - well, thanks for that... instead of hiring you I'll just download some libraries instead.
- mav3rick 8y agoWatch me get downvoted to hell though :)
- andrewla 8y agoThe technical interviewing scheme is not great, but I haven't seen another system that works. > I cannot help but think that these big tech companies (FAANG, et. al) are missing out on diversifying and increasing their engineering expertise by passing over developers like you. I think this is certainly true. > I often think what would Google/Facebook would be like if they hired in some experienced engineers that may not be able to whiteboard a BFS tree or can tell you Djikstra's algorithm, but have proven business track records of getting projects done, on budget, and on time. Well... how do we find these people? By looking at their resumes where they claim this? By contacting references who will attest to it? By trusting the intuition of subjective evaluators of the candidates? Practically speaking, FAANG companies do hire such individuals, they just do it through acqui-hires. If a person works at a company that is good enough to be worth acquiring, then we have a good signal that they are effective employees even absent a direct evaluation of their technical abilities.
- sigstoat 8y ago> Practically speaking, FAANG companies do hire such individuals, they just do it through acqui-hires. there's a huge pool of employees that are in companies which aren't potential acquisition targets. > Well... how do we find these people? By looking at their resumes where they claim this? By contacting references who will attest to it? internal references? if you've got a couple of internal folks who are doing good work, and they all worked with and vouch for old bob, maybe that's better than anything you're going to find out from <8 hours of whiteboard scribblings? > By trusting the intuition of subjective evaluators of the candidates? even the faintest whiff of implication that FAANG interviews might not be subjective is hilarious.
- swozey 8y agoI've had internal referrals at a few FAANG myself, I have one of the "unique" (no degree, some high school, ops/coding since 12 so about 15 years on/off) backgrounds and the people who referred me would be on the team that I'd be joining and all seemed incredibly excited to get me on board. I work on FOSS projects with them already. At each place it was people from other teams completely unrelated to that team who interviewed (or would interview) me and eventually turned into a decision panel where everything about me would be considered by these people who really knew nothing of my character/skills aside from the resume and white boarding. Between that and the amount of times I heard "Stanford" tossed around in a way that put down other schools (while not having a degree at all myself) I decided to give up on ever working at any of these places without being an acquihire. It just seems like a far fetched pipe-dream and I'd never check the required boxes that they expect for someone to sit in the same building with them. And honestly, none of that sat well with me. It was an interesting time and I got to finally experience SV and realized it's likely not a place for someone like me.
- thefourthchime 8y agoI think companies are trying to find superheros. I would say maybe 5% of the people I've worked with are worlds smarter and more productive than the average programmer (like me). Those people generally also do well on those whiteboard questions.
- maccio92 8y agoYeah honestly, I think those are the type of engineers that are more suitable for managing other engineers, and the really heavy ones are more suited for strictly engineering.
- watwut 8y agoExperienced engineers can BFS the tree. They may not remember djikstra.
- xfer 8y agoThese processes are optimized to reduce false positives not false negatives. So they already know that they might be missing on some great developers.
- theptip 8y agoThis is the correct explanation; false positives are so much more expensive than the opportunity cost of a false negative.
- malvosenior 8y agoPeople always say this, but is it true? It’s easy to fire someone. It’s really hard to find someone who can ship (something you won’t get from a whiteboarding challenge).
- etse 8y agoSeems costly to fire, not just because of HR and management process overhead. People are trying to build successful teams, and regular firings distract from goals, ruin morale, and create an unsafe environment.
- vonmoltke 8y agoRegular firings imply a pretty bad hiring process. There's a spectrum between "regularly fire bad hires" and "regularly reject good hires". Also, what evidence is there that these high-false-negative practices are actually reducing false positives by a significant degree? In these kind of threads I read the same arguments and assertions, with the same lack of evidence, as I hear from people trying to defend airport security theater. I should start calling these practices "interview theater".
- rockinghigh 8y agoEngineers who don’t perform well for extended periods of time tend to drain resources from the rest of the team. They require active management; laborious code reviews, they also introduce more bugs and contribute to less robust designs. As for firing, it is a painful process for a manager as it comes with a variety of liabilities and HR involvement.
- matz1 8y agoThese company simply want the best of the best. They want people who can whiteboard BFS tree AND also have proven business track records, yada yada. Not just either one of this.
- FranzFerdiNaN 8y agoShame they only test for one of those though. So I doubt they want the best. They want people who can pass arbitrary interviews.
- rhizome 8y agoI cannot help but think that these big tech companies (FAANG, et. al) are missing out on diversifying and increasing their engineering expertise by passing over developers like you. There is still so much stupid money out there that it doesn't pay to do this. Literally immaterial, and it's more cost-effective to hire for a narrow-but-consistent set of requirements.
- kokokokoko 8y agoIt's because they are basically just testing IQ. It's not actually programming knowledge they care about. If a person has a CS/EE degree and has been professionally programming for a few years they probably have enough domain knowledge regardless. Then the rest of the interview is testing soft skills.
- rhexs 8y agoI think it’s exactly that, willingness to conform, and a very effective filter on age. I know Google does a lot of metrics on hiring. Have they correlated their practice with IQ anywhere? Guessing nothing public as that would trigger a firestorm. At the end of the day it’s just the cognitive elite trying to hire the cognitive elite.
- jammygit 8y agoThey used to interview using the kind of brainteasers found in books like the ones Mensa used to make. The algorithms approach, I suspect, is just a CS proxy for an IQ test just like their old approach was. It would also filter for youth, which they semi-openly advertise as well (see chess literature on brain age for what I mean). Conformance too (due to the prep time)
- opportune 8y agoThis is because it's actually not allowed to use IQ tests as a screening mechanism for most jobs (you need a valid reason and "software engineer" probably isn't good enough to justify the liability). By using algo questions they can select for something that might correlate very well with IQ, that also makes sure the candidate has real coding knowledge, and which has much less liability
- stale2002 8y agoUhhh, no. They are absolutely not testing IQ. It is instead the opposite. These companies are testing the quality of "who has practiced the most for these types of questions". It has nothing to do with intelligence. It is instead almost directly correlated with how much time you have spent practicing interview questions.
- nostromo95 8y agoHave you considered that there are enough people who can both whiteboard a BFS tree and get stuff done that Google doesn’t need to hire people who can do the latter but not the former?
- creato 8y ago> I often think what would Google/Facebook would be like if they hired in some experienced engineers that may not be able to whiteboard a BFS tree or can tell you Djikstra's algorithm I think this happens less than people think. I've been at two big tech companies and interviewed people while at both (and obviously was interviewed myself). I think what trips people up is that many questions have solutions that are given by "named" CS algorithms like the ones you listed, but also have simpler solutions that are fine too. And honestly, candidates that invoke named algorithms and (maybe eventually regurgitate the textbook algorithm) are often not the good ones (to me at least). Most problems like this often have simplifications that good candidates take advantage of to do something custom (and much simpler) than the "named" algorithms. Basically, if I'm interviewing you and you regurgitate a famous algorithm... well I'm not going to ding you if you do it correctly, but in my experience, I'm much more likely to give a good review to someone that methodically works out a simple solution instead. Often the people that successfully dig up a named algorithm and apply it can't talk about it very well. So, I suspect that a lot of the people that complain about not knowing a famous algorithm in an interview simply failed to work out a simpler solution to a simpler problem and didn't realize it.
- nnd 8y agoBut you are expected to find the most optimal solution to a problem, and not just a brute force one. And usually an optimal approach would require advanced knowledge of algorithms and data structures.
- creato 8y ago> But you are expected to find the most optimal solution to a problem, and not just a brute force one. I'm not talking about brute force solutions. For many problems, there are things in between <famous algorithm> and brute force. Some problems offer simplifications over more general problems where <famous algorithm> is strictly worse than a simpler, more customized solution (same efficiency, but simpler to write and understand).
- nathan_f77 8y agoThese interviews do filter out any engineers that can't solve these algorithm problems on a whiteboard, but they don't necessarily filter out people who have a proven business track record and can get projects done on time and under budget. I think the phrase "jack of all trades, master of none" is overused and doesn't hold a lot of truth. It's very possible to have a lot of experience and skill in many different areas. Maybe there's even a positive correlation between being a very good programmer that can pass whiteboard interviews, and being a pragmatic, get-it-done type of engineer.