To add insult to the injury: he will probably not pass the Facebook coding interview. I tried (for a different position) and failed, due to a bullshit reason. It was a coding interview with two problems, 1-hour time limit, and an interviewer who watches how you enter code into their online editor without the possibility to run anything.
The problems were not that hard, the real difficulty was due to the time limit.
During my previous experience as a software developer I have acquired a habit to write an obviously-correct but non-optimized solution to every problem, to use as something to compare a better solution to, i.e. as a test factory. So, I had only enough time to solve the first problem correctly, and to implement a wasteful solution to the second one. In retrospect, implementing the "obviously correct" but wasteful solution would not have helped, because I could not compare the results anyway.
In my opinion, the test selects for people who are lucky enough to discover and implement the non-obvious optimization correctly from the first attempt. Or, as I have discovered later, who have bought all books on programming interview preparation, because the problems were actually non-unique.
Yep. Leetcode style problems are effective filters only for people who grind leetcode. It's tailored for a very particular level of developer; someone who is smart enough to understand the problems and solutions (and retain them well enough to trot them out quickly), ambitious enough to put in that level of effort to work for a 'top tier' tech company, and sufficiently docile and willing to work on BS (outside of their working hours, typically, too) that they'll spend that kind of time just to try to make it into one.
So someone who went out and built a SaaS business themselves, was moderately successful, and sold it? Not going to pass. Someone who spent three months grinding leetcode and doing little else? Probably going to pass.
I'm guessing it's highly effective at selecting for the kind of candidates these companies want.
The problems were not that hard, the real difficulty was due to the time limit.
During my previous experience as a software developer I have acquired a habit to write an obviously-correct but non-optimized solution to every problem, to use as something to compare a better solution to, i.e. as a test factory. So, I had only enough time to solve the first problem correctly, and to implement a wasteful solution to the second one. In retrospect, implementing the "obviously correct" but wasteful solution would not have helped, because I could not compare the results anyway.
In my opinion, the test selects for people who are lucky enough to discover and implement the non-obvious optimization correctly from the first attempt. Or, as I have discovered later, who have bought all books on programming interview preparation, because the problems were actually non-unique.