First things first – the questions look typical for the recruiter screening stage at any large company. Some people know the answers, others lack the most basic concepts and fail such test from the beginning to its end. The purpose of this screening, at its very core, is to reduce the load on the subsequent “interview layers” – phone interviews with engineers and then on-site interviews. It is simply not economically feasible for any company to have a highly trained engineer administer such test; the engineer’s time simply costs more money, along with the mental wear and the likely alienation that is bound to happen due to the incredibly large percent of unsuitable candidates.
The second purpose of such screening, beyond the technical assesment, is to act early on a possible culture mismatch. Does the candidate speak the same language? No, not if they speak English – the question is: do they use the same words to describe technical concepts? “Knowledge”, in a broad sense, can be expressed in many forms, not all of them useful for everybody out there (e.g. the 0x02 – SYN representation, while undoubtely useful for low level debugging, is of no use during a formal or informal talk, even with an engineer with advanced knowledge of the TCP stack).
Pierre seems to have failed this second layer of the screening, but he seems to have failed a third one, too. There is a concept, “technical humility”, that is a relative opposite of an over-inflated ego. To me it seems that Google in particular has no use for people with such ego and also puts a very high value on the “technical humility” part, on one’s ability to know when they don’t know enough, to listen, to have respect for colleagues as human beings and to strive to become better persons and better engineers every day.
Later Edit: Business Insider alleges that Pierre has given a better answer to one of the questions, the bit counting within an array of integer values:
At one point, on a question about how to most efficiently count data, he suggests a method that might be faster than the answer the recruiter wants, but the recruiter rejects it.
This is actually wrong; the recruiter was expecting a “theoretical” answer, not related to any type of optimization some CPU may or may not provide. Counting bits by right shifting is the brute force solution to this particular problem and is roughly 8 times more expensive, time wise, than using a 8 bit lookup table. Or k times more expensive than using a k bit lookup table, assuming one has enough memory and also the right computing architecture to actually be able to implement such solution.
Anyway, this looks to me as a symptom of the “entrenching condition” I have described in this text (link).
These are my 2 cents on this topic. Thank you for your read!