Skip to main content

Pierre Gauthier’s Google Interview: My Opinion

The original post, published in April 2016, is available here (original blog post by Pierre Gauthier). Business Insider had recently picked it up (link) and sparked a lot of debate. My thoughts are below.


First, the questions are typical of a recruiter screening stage at any large company. Some candidates know the answers, while others lack even the basic concepts and struggle through the whole test. At its core, the screening exists to reduce the “load” on later “interview layers”: phone interviews with engineers, followed by on-site interviews. No company can afford to have a highly trained engineer run this kind of test. Engineer time is expensive, it takes a mental toll, and it is likely to breed frustration given how large a share of candidates turn out to be unsuitable.

Beyond the technical assessment, the screening also serves to catch a possible culture mismatch early. Does the candidate speak the same language? Not in the sense of English, but in the sense of whether they use the same words to describe technical concepts. Knowledge can be expressed in many forms, and not all of them are useful to everyone. For example, the 0x02 SYN representation is certainly handy for low-level debugging, but it is of no use in a normal conversation, even with an engineer who knows the TCP stack well.

Pierre seems to have failed the second layer of such screening, but also another one as well. There is a concept called “technical humility”, which is roughly the opposite of an inflated ego. Google in particular appears to have no use for such egos and places a very high value on technical humility: knowing when you don’t know enough, listening, respecting colleagues as human beings, and striving to become a better person and a better engineer every day.


Later edit: Business Insider claims that Pierre gave a better answer to one of the questions, the one about counting bits in an array of integers:

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 incorrect. The recruiter expected a “theoretical” answer, independent of any optimization a particular CPU may or may not offer. Counting bits by right-shifting is the brute-force solution to this problem, and it is roughly 8 times more expensive than using an 8-bit lookup table, or k times more expensive than a k-bit lookup table, assuming you have enough memory and the right computing architecture to implement it.

In any case, this looks to me like a symptom of the “entrenching condition” I described in this earlier post.