Un ingénieur raconte comment s'est passé son entretien technique au téléphone chez Google
Pour le poste de directeur de l'ingénierie

Le , par Stéphane le calme, Chroniqueur Actualités
Un développeur a partagé son expérience d’entretien technique chez Google, entretien qui a eu lieu au téléphone. Pierre Gilbert Gauthier explique que ses premières expériences avec le développement remontent à 37 ans (il avait alors 11 ans) et n’a jamais arrêté. Depuis, sa carrière professionnelle a été ponctuée par des expériences comme être à la tête d’un département de recherche et développement.

Pour en revenir à l’entretien, le représentant de Google lui a dit que des capacités en management ainsi qu’en développement étaient nécessaires. Pour ce dernier critère, les connaissances devaient être actualisées. Cependant, malgré l’expérience de Pierre, il n’a pas pu donner les « bonnes réponses ». Voici la série de questions - réponses à laquelle il s’est plié en conversation téléphonique ainsi que les petites anecdotes du candidat :

Quelle est la fonction opposée à malloc() dans C ?
lui : free()
Google : bonne réponse
pensée : « j’imagine qu’en ces rares occasions vous êtes supposé être fier de vos 35 années d’expérience en programmation dans la 40ème année de ce bon vieux C »

Quelle fonction Unix permet à un socket de recevoir une connexion ?
lui : listen()
Google : bonne réponse
pensée : « est-ce que je suis donc qualifié comme étant un gourou du réseau ? »

Combien d’octets sont nécessaires pour sauvegarder une adresse MAC ?
lui : six
Google : bonne réponse
pensée : « je suppose que je viens de gagner le badge [Ethernet] »

Triez par temps d’exécution : lecture du registre CPU, recherche sur disque, changement de contexte, lecture de la mémoire système
lui : lecture du registre du CPU, lecture de la mémoire système, changement de contexte, recherche sur disque
Google : bonne réponse
pensée : « typiquement des cours d’informatique de première année universitaire »

Qu’est ce qu’un inode Linux ?
lui : un identificateur unique de fichier pour un système de gestion de fichiers donné
Google : incorrect, il s’agit d’une métadonnée
lui : l’inode est un index identifiant de façon unique un fichier sur un système de gestion de fichiers donné et vous pouvez chercher dans cet index pour récupérer des attributs de fichiers comme la taille, la date de création, le nom du propriétaire et les permissions, vous pouvez même ajouter vos propres attributs
Google : incorrect, pas “attribut” mais “métadonnée”
pensée : « “métadonnée” est plus informatif que “attribut”, vraiment ? »

Quel fonction Linux prend un chemin et retourne un inode ?
lui : j’ai écrit un LIBC personnalisé pour G-WAN, notre serveur d’applications, mais je n’arrive pas à me souvenir d’un syscall retournant un inode
Google : stat()
lui : stat(), fstat(), lstat(), et fstatat() retournent tous des erreurs de code, pas un inode ; ils remplissent une structure stat qui va contenir les attributs de fichier dont nous avons parlé précédemment, pas seulement un index inode de fichier
Google : ce n’est pas la réponse : l’inode contient toutes les métadonnées
pensée : « se pourrait-il que Google soit secrètement à l’origine de la licence du bot Microsoft néfaste AI ? »


Pierre Gauthier

quel est le nom du signal KILL ?
lui : SIGKILL avec #define fixé à 9
Google : non, c’est “TERMINATE” .
lui : SIGTERM (15) est différent de KILL signal (9)
Google : ce n’est pas la réponse que j’ai sur ma feuille de papier
pensée : « je suppose que c’est ce qui s’est passé lorsque AI a découvert les drogues récréatives »

Pourquoi est-ce que Quicksort constitue la meilleure méthode de tri ?
lui : ce n’est pas toujours le cas, il arrive même que cette méthode ne convienne pas
Google : Quicksort a le meilleur big-O
lui : “big-O” ne prend pas en considération les latences du stockage de données, la topologie, le volume, la quantité de mémoire disponible et encore moins le coût en calcul de chaque instruction impliquée dans une implémentation donnée. À la place, il compte simplement le nombre d'opérations algorithmiques ! Big-O peut s’avérer être une indication précieuse lors de la conception des algorithmes, mais la meilleure solution performante et mise à l'échelle dépend des contraintes particulières de tout problème et environnement spécifique.
Google : faux, vous deviez me parler du score Big-O de Quicksort
pensée : « quand est-ce que l’OMS va reconnaître les modèles du scandale du tabac dans les dommages causés par le milieu universitaire sur la santé mentale publique? Le noyau Linux (sur lequel Google se base) a opté pour Heapsort plutôt que Quicksort ... pour son utilisation de la mémoire plus faible et le temps d'exécution plus prévisible »

Quelle est la méthode la plus efficace pour compter les bits sets dans un tableau de 10 000 valeurs 16 bits ?
lui : vous passez les bits à droite sur tous les mots de 64 bits, la méthode Kernighan
Google : non
lui : il y a des méthodes plus rapides pour traiter les mots de 64-bits avec des masques mais je ne peux pas les expliquer au téléphone étant donné que pour le faire je vais devoir écrire un code
Google : la réponse correcte est d'utiliser une table de consultation, puis additionner les résultats.
lui : sur quel type de CPU ? Pourquoi ne pas me laisser comparer mon code au vôtre sur un benchmark ?
Google : ce n’est pas l’objectif de ce test
lui : quel est l’objectif de ce test ?
Google : je dois vérifier que vous obtenez les bonnes réponses
pensée : « combien de temps cela va-t-il durer ? Une table de consultation de 8 bits peut traiter les octets les uns après les autres, tandis qu’une méthode basée sur un masque 64 bits traite des mots de 8 octets à la fois (en plus de cela, des instructions CPU modernes vous permettent même de traiter des mots de 128 bits avec un gain de vitesse 10 fois supérieur si la portabilité ne pose pas de problème). Étant donné qu’une table de consultation 64-bit est hors de la portée des ordinateurs d'aujourd'hui, il n'y a aucun doute sur ce qui est plus rapide ».

Quels types de paquets sont échangés pour établir une connexion TCP ?
lui : en hexadécimal : 0x02, 0x12, 0x10 - littéralement "synchroniser" et "reconnaître".
Google : faux ! Il s’agit de SYN, SYN-ACK et ACK. Si Google connaît une panne, vous devez savoir comment diagnostiquer le problème. Nous nous arrêterons ici parce qu'il est évident que vous ne possédez pas les compétences nécessaires pour écrire ou examiner des applications réseau. Vous devriez apprendre les appels de fonction Linux, comment la pile TCP / IP fonctionne, et ce que Big-O signifie pour finalement être qualifié si vous veniez à obtenir un entretien plus tard. Bonne chance et au revoir.
pensée : « lorsque vous devez lire un dump de paquet hexadécimal pour trouver ce qui se passe, ces trois lettres mnémoniques ne vous seront d’aucune utilité dans votre processus de résolution d’un service de réseau mort. Peut-être que Google aurait déclaré que la pratique n’est pas nécessaire pour le travail ».

Source : blog G-WAN

Et vous ?

Pouvez-vous partager vos expériences de tests de recrutement en tant que développeur ?


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :


 Poster une réponse

Avatar de Jitou Jitou - Membre averti https://www.developpez.com
le 15/10/2016 à 8:58
On dirait un questionnaire tiré d'un examen de cours d'informatique des années 70s ... j'ai malheureusement déjà eu ce genre de questions et j'ai alors vite arrêté l'entretien car ce n'est pas dans ce genre de boite que je vais m'épanouir. J'imagine que des profils qui répondent parfaitement à ce questionnaire ont leur savoir ancré dans un certains passé et qu'ils sont peut être ignorant des concepts comme le polymorphisme, l'IoC, proxy ... en tout cas le RH au téléphone ne pourrai objectivement le déterminer. Pourtant c'est ce qu'il faut connaitre pour 90% des applications développées par Google.
Avatar de rawsrc rawsrc - Modérateur https://www.developpez.com
le 15/10/2016 à 10:15
Euh, c'est à se poser la question si ce ne sont pas des attardés chez Google...
Non mais sans blagues, pour un poste de "directeur de l'ingénierie", il faut savoir maintenant jouer à Questions pour un Champion ?

Dites tout de suite qu'il ont recruté Julien Lepers (vu qu'il avait un créneau de libre ;-)) et lui ont confié le recrutement (d'où le jeu téléphonique, vu sa grande expérience pro dedans )

Ah les RH devraient rester au placard quand les domaines sont pointus, ils devraient se contenter d'expédier la paperasse et laisser les domaines hors de leurs compétences aux petits copains du technique.
Avatar de Iradrille Iradrille - Expert confirmé https://www.developpez.com
le 15/10/2016 à 10:36
Citation Envoyé par Stéphane le calme  Voir le message
Il y a un tableau de 10 000 valeurs de 16-bits, comment vous y prenez vous pour compter les bits les plus efficaces ?

La traduction est mauvaise.
Je me demandais ce qu'était un bit efficace, alors que la question est "Quelle est la méthode la plus efficace pour compter les bits sets dans un tableau de 10k valeurs 16 bits.
Au passage la question est floue, le résultat doit être un tableau de 10k valeurs ? Ou le nombre total de bits sets ? J'ai l'impression qu'un tableau est attendu; mais que le monsieur donne une solution pour trouver le nombre total de bits sets.

Et vraiment curieux de comparer les deux solutions dans le cas ou seulement le total est attendu. Je serais étonné de voir la méthode Kernighan plus rapide que l'utilisation d'une look-up table; même si elle autorise la vectorisation.
Un accès L1 c'est 2 ou 3 cycles (donc 4/6 cycles par élément), les additions sont ensuite vectorisables.

Citation Envoyé par Stéphane le calme  Voir le message
Pouvez-vous partager vos expériences de tests de recrutement en tant que développeur ?

Ça ressemble à un test classique d'une SSII, avec des questions plus techniques.
Avatar de Excellion Excellion - Membre actif https://www.developpez.com
le 15/10/2016 à 10:39
Je n'aurai eu ... aucune bonne réponse... 😂

En même temps, en regardant les réponses, on ne voit pas l'intérêt des questions, quand elles sont d'actualité...
Avatar de chrtophe chrtophe - Rédacteur/Modérateur https://www.developpez.com
le 15/10/2016 à 12:09
Voilà ce qui se passe quand on fait faire un test technique par un DRH.

La même débilité que les questions du code de la route au permis.

une photo douteuse ou on est à hauteur d'une route sur notre droite. Un conducteur normal dans le doute répondrait je ne passe pas because priorité à droite par défaut, et il aurait faux à la question car il pouvait passer. Il faut surtout pas réfléchir.

Le recruteur bossait pas chez yahoo avant ?

Ou peut être pire et beaucoup plus vicieux. Ils cherchent des moutons respectant scrupuleusement à la lettre et mot pour mot les documentations. Aucune initiative.
Avatar de NSKis NSKis - En attente de confirmation mail https://www.developpez.com
le 15/10/2016 à 13:14
Pas besoin de se focaliser sur le questionnaire, le sympathique candidat avait déjà tout faux dès le départ avec son:

Pierre Gilbert Gauthier explique que ses premières expériences avec le développement remontent à 37 ans (il avait alors 11 ans) et n’a jamais arrêté.

Le monsieur a donc 48 ans!!! Personne ne lui a expliqué qu'il est "trop vieux", "trop expérimenté pour le poste", "trop cher".... Ah non... Ce point personne ne l'indique, mais tous le pensent très fort

Si un représentant des RH de Google nous lit, merci de bien vouloir nous indiquer la moyenne d'age des développeurs chez Google...

PS: D'autre part, je ne vois pas l'utilité de montrer du doigt Google... Toutes les sociétés ont la même approche: On engage "jeune" parce que:

1. Cela coûte moins cher en salaire
2. On pofite d'un mec qui est formé aux dernières techno
3. On a un gars bien maléable qui ne va pas trop s'opposer au management
Avatar de joublie joublie - Membre averti https://www.developpez.com
le 15/10/2016 à 15:41
Est-on bien certain que ce n'est pas un automate mal dégrossi qui a répondu au candidat ? Parce qu'à ce degré de bêtise et de déshumanisation, il y a de quoi s'interroger. Manifestement, la liberté de créer chez Google commence par être avant tout un mouton, bien dans le moule, sans imagination ni créativité lors du recrutement.
Avatar de Traroth2 Traroth2 - Membre chevronné https://www.developpez.com
le 15/10/2016 à 15:53
Google recrute comme les SSII, maintenant ? En faisant passer des entretiens par des gens qui n'y connaissent rien ? Concernant les questions sur les inode, sur le signal KILL, sur le Quicksort, le candidat avait manifestement raison ! C'est grave, quand même !
Avatar de nirgal76 nirgal76 - Membre expérimenté https://www.developpez.com
le 15/10/2016 à 16:59
Un cas (et une expérience) personnel reste un cas personnel.
Ca ne fait pas loi. Ca ne veut rien dire. On ne peut rien en déduire. Ca n'apprends pas grand chose.
A part que ça lui permet de faire un coup de bashing google parcequ'il n'a pas dû être retenu. Tant mieux si ça lui fait du bien, ça aura au moins (et uniquement) servi à cela.
Avatar de blbird blbird - Membre éclairé https://www.developpez.com
le 15/10/2016 à 18:42
Citation Envoyé par nirgal76  Voir le message
Un cas (et une expérience) personnel reste un cas personnel.
Ca ne fait pas loi. Ca ne veut rien dire. On ne peut rien en déduire. Ca n'apprends pas grand chose.
A part que ça lui permet de faire un coup de bashing google parce qu'il n'a pas dû être retenu. Tant mieux si ça lui fait du bien, ça aura au moins (et uniquement) servi à cela.

On peut très bien déduire quelque chose : 1 cas comme celui-là c'est déjà trop pour un entretien technique. Maintenant que Google connaît cet article, peut-être que certains de ses experts techniques vont demander de tester les candidats autrement. Ce serait pas mal d'en arriver là pour un "coup de gueule qui ne sert à rien", non?
Contacter le responsable de la rubrique Accueil