Hacker News new | past | comments | ask | show | jobs | submit login

This is a poor analogy. It's like making a soccer / football player answer a test on the history of the sport, how the ball is made, the geometry involved in kicking the ball, the mesh size of the goal net, etc.

There may be some relevance but in the end if they're a good player none of that matters. You'd be testing the wrong things to know if they're a good player.




I'm an athlete-turned-software engineer at FAANG. This is the NFL scouting combine:

40-yard dash, Bench press (225 lb repetitions), Vertical jump, Broad jump, 20-yard shuttle, 3 cone drill, 60-yard shuttle, Position-specific drills, Interviews – each team is allowed 60 interviews in 15-minute intervals, Physical measurements, Injury evaluation, Drug screen, The Cybex test, The Wonderlic test

I would consider this set of proxy tests to be roughly analogous to the FAANG interview loop for screening world-class engineers. They're representative tests with predictive validity for the separate, more meaningful task of Game Day athletic performance -- since you obviously can't hold a real Super Bowl as a scouting combine.


Other than Wonderlic everything you listed is directly related to athletic ability and are things athletes do on a regular basis. You're supporting my point. I'm saying testing should be directly related to the position.

If someone doesn't need to do binary math or write complex sorting algos from scratch you don't test those, just like how you wouldn't ask an athlete the mundane questions I posted above. You might ask high level questions to demonstrate knowledge of sorting, but not ask someone to implement that algo from scratch.

If someone is trying out for the NFL they're not going to have to demonstrate baseball skills, how their shoes are made, engineering questions about how the stadium is built, what software should be used for the ticketing system, or any other questions unrelated to the position. You have them to demonstrate skills directly related to the talents they need to fill their role, like standard field drills.


But the engineers at FB do need to be able to write sorting algorithms from scratch rather than just have knowledge of sorting. The reason is that the engineers have to be reasonably fungible so that they can be easily moved between projects as projects are started and stopped. So they could easily be tomorrow thrown into an environment where a sorting algorithm is needed, they are the ones responsible (so they'll need to build it, not just have a high-level idea of how to do it), and at FB scale every bit of squandered efficiency is very expensive (if their photo search algorithm, let's say, takes 5% more memory than it needs to, that will end up costing the company much more than their salary).


Yes, if you aren't dealing with CS fundamentals directly in your work, you aren't working on the kinds of challenging engineering problems we face on a day-to-day basis. For example, a coworker applied some arcane number theory to one of our hashing algorithms, saving the company millions and was just recently awarded a patent for it. You can find many other, more specific examples in our Engineering blog. We're a mature product operating at scale so small, but meaningful statistically-significant % metrics gains are actually quite large when it comes to real business impact, and so chasing these gains actually requires a serious academic toolbox.


FB has thousands of employees who write code. I highly doubt many of them are writing sorting algos from scratch. They should know which sorting solves the problem and use an appropriate library.

The same applies to most other low level problems. They should understand the problem and the best practice to solve it. In most cases writing low level solutions from scratch is not the best practice.

FB is a mature company now with a slowed growth rate. They've been dealing with scale and performance for long enough now that it shouldn't be necessary to write all of these things from scratch.


Facebook has pioneered multiple languages and programming API packages. I'm certain they have had to implement library functions "from scratch" multiple times.

I can assure you that the growth rate has not slowed. Do not use the USA as a proxy for global behaviors.


I don't see a correlation between product growth and engineering complexity.


So what would you do instead? Being able to write some code on a simpler problem vs real-life code is an equivalent of a 40 yard dash vs rushing for a touchdown (or whatever). Being able to find special cases, or design, or figure out a simple algorithmic puzzle is the equivalent of the same for larger problems. The alternative is letting the candidate talk about their projects or to have some hand-wavy design exercise, something too easy to BS.


I think this is an equally poor analogy as it assumes Facebook wants to hire all the good people it can, which isn't the case at all. Facebook is trying to limit false positives. They would rather deny 10 world-class developers than hire one person they need to fire 6 months later.

Facebook, who is paying a lot of people to optimize its hiring processes, has found a correlation between the objective of "lower short-term attrition / first-year PIPs" and "quiz people about the mesh size of the goal net." I'm not saying it's the best long-term or that I agree with false positive bit as a business decision, but I find it hard to believe they're doing stuff like this just because they feel like it without any data to back it up.


Also the big tech companies only need "world class" developers in under 10% of their positions. Reducing latency on Oculus Rift? OK you need a Carmack. Building a compliance portal for some new law passed in Kerblachistan? A lot of people can do that, and a company like Facebook has a lot more of the second type of problem than the first.


That's a real understatement. Privacy and legal compliance toward evolving laws in a massive codebase + many datasets spanning multiple complex systems is a company-wide effort that takes some serious system engineering ingenuity. Some of the smartest people at these FAANG companies are currently working on privacy engineering.


You really think a professional football player wouldn't know tons of random trivia about their sport? They probably could spend hours talking about the various pros/cons of different cleats...

Though I guess it's technically not necessary to know those things, I would be surprised that someone would put in the work necessary to succeed without being at least a bit interested in the details.


I'm sure it's not optimal. But it's worked for Facebook very well so far. Why would they change? They don't need every talented developer under the sun. They just need a large group of developers who can do the work, and a small group of developers who can push the envelope on the most cutting edge stuff.


Sports scouting and evaluations are also notoriously unreliable. For every Messi or Ronaldo there are literally thousands of players who were scouted as having potential but washed out almost immediately.




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: