Le recrutement dans la société Google étant hors du commun, je me décide enfin à vous raconter mon expérience.

Première tentative avortée, en télétravail

Avril 2010, j'ai postulé chez Google sur leur site web, en espérant y travailler depuis mon domicile. J'ai rapidement été contacté par courriel par le recruteur Dean. Sauf que quand j'ai demandé si le télétravail était envisageable, Dean m'a répondu que non, et j'ai donc laissé tomber.

Octobre 2010, Sarah, une autre recruteuse de Google, m'invite à postuler. Je lui réponds que j'ai déjà postulé, que je ne souhaite pas déménager et que donc je ne vais pas repostuler.

Deuxième tentative, ingénieur en sécurité à Zurich : questionnaire puis entretien au téléphone

Début décembre 2010, je change d'avis et je me décide à postuler chez Google une 2e fois pour travailler à Zurich (Suisse germanophone). Deux jours plus tard, la recruteuse Aleksandra m'invite à répondre à quelques questions par courriel : décrire 3 projets techniques dans lesquels je suis impliqué ; décrire mon expérience C++, Java et Python ; décrire mon implication dans le logiciel libre. Hum, on dirait qu'ils n'ont pas du tout lu mon CV.

Mi-décembre, j'appelle la recruteuse Eve qui me propose un entretien téléphonique avec Nikolaus. Ce dernier m'a posé des questions techniques sur la sécurité. Ayant passé les deux premières épreuves avec succès, on me propose des entretiens sur site (Zurich). Liam me confirme par courriel l'entretien début janvier avec les informations pratiques. Autant j'étais à l'aise en anglais avec Nikolaus, autant j'avais le plus grand mal à comprendre Eve et elle ne me comprenait pas non plus.

Deuxième tentative : 5 entretiens à Zurich

Fin janvier 2011, j'ai passé cinq entretiens à la suite (avec une pause le midi quand même !). Le premier entretien était avec Tavis Ormandy, ce qui m'a impressioné. J'avais lu plusieurs articles de Tavis qui a trouvé de nombreuses failles de sécurité importantes avec des exploits très techniques. Tavis m'a demandé d'implémenter strlen(str) en assembleur Intel x86. J'ai un peu regretté d'avoir mis l'assembleur sur mon CV, je ne l'avais pas pratiqué depuis plusieurs années... Tavis semblait satisfait de mon code, mais je doute qu'il était correct :-) Il m'a questionné sur les protections du noyau et de la libc, on a parlé de randomisation de l'espace d'adressage.

Lors d'un entretien, on m'a demandé d'écrire un algorithme pour générer un jeu de données pour fuzzer une application. Sauf que je n'ai rien compris de la manière dont les données devaient être générées. Le recruteur m'a expliqué pendant 10 min, et j'ai encore mis au moins 5 minutes à comprendre ce qu'il voulait. J'ai écrit un truc sans vraiment comprendre ce que j'écrivais. C'était assez frustrant de rester bloquer comme ça, j'avais l'impression que le recruteur n'arrivait pas à formuler correctement sa question et que j'étais coincé à cause de lui.

Un entretien avec deux personnes m'a marqué. Celui qui parlait m'a demandé si ça me dérangait qu'il utilise un ordinateur portable. Euh... je n'ai pas osé dire la vérité, que oui ça me gênait. Pendant que je parlais, ils ne me regardaient pas mais regardaient leur ordinateur en notant nerveusement tout ce qui sortait de ma bouche. La seconde personne était en formation pour apprendre à faire passer un entretien.

On m'a demandé comment tester un site web, comment éviter qu'un widget ajouté à une page web puisse attaquer la page qui l'inclut, et d'autres questions que j'ai oubliées.

J'ai écrit beaucoup de code sur un tableau blanc. Pas mal d'exercices d'algorithmique, certains en C, certains en Python (j'avais le choix du langage).

Les locaux de Zurich sont vraiment très jolis, semblent calmes, agréables et ludiques. Il y a des consoles de jeux, des espaces détente et des cafètes très bien équipées. La cantine est très bonne. On peut utiliser un tobogan ou des barres de pompier pour descendre entre deux étages. Cette journée d'entretien était épuisante, à cause de la quantité de questions et parce que c'était entièrement en anglais (que je pratique très rarement à l'oral). D'ailleurs, on m'a dit qu'on peut très bien ne parler qu'anglais à Zurich, ville qui héberge 30% d'expatriés !

Je n'ai pas été pris pour ce poste, je n'avais pas le niveau. Je pense que je n'avais pas assez de connaissances sur le web et sur l'exploitations de failles de sécurité. Eve m'a proposé une deuxième journée d'entretien pour un autre poste. Étant un peu dégoûté de ne pas avoir été pris (quoi, ils n'ont pas reconnu mes talents !?), j'accepte sans grande motivation.

Troisième tentative, ingénieur en test de sécurité : 4 entretiens à Zurich

Fin février, nouvelle journée d'entretiens à Zurich, pour quatre entretiens cette fois-ci. Le premier entretien était catastrophique pour moi. L'énoncé de l'exercice était simple, mais j'ai mis longtemps à comprendre. À partir de pièces de monnaie avec une valeur donnée, il faut rendre la monnaie avec le minimum de pièces. Je propose un algorithme naïve qui fait la division en partant de la pièce ayant la plus grande valeur. Je ne comprends pas en quoi cet algorithme n'est pas bon, car j'avais pris {1, 2, 5} comme pièces (ce qu'on m'avait donné en exemple). En fait, {1, 2, 5} n'est pas un bon exemple. Avec {1, 5, 7, 10}, mon algorithme n'est pas optimum pour 12 (il donne {10, 1, 1} au lieu de {7, 5}). Déjà, on a bien perdu 15 min sur les 45 de l'entretien avec ça. Ensuite, il fallait diviser le problème en sous-problèmes (diviser pour régner) en cachant le résultat des calculs précédents. Enfin, cette idée m'était soufflée pour que je la trouve moi-même, mais je n'y pensais pas car je ne voyais pas en quoi ça accélérait le calcul. Je crois qu'au final, l'idée était bonne, mais maintenant j'ai un doute :-)

Durant les autres entretiens, on a beaucoup parlé de tests, de méthodes de management et de travail, et d'assurance qualité plus généralement.

De mémoire, les entretiens se sont bien passés (à part le premier). Bah... je n'ai pas non plus été pris. Tant pis.

En fait, j'ai relancé Eve plusieurs fois par courriel et par téléphone. Elle ne répondait pas puis s'excusait d'avoir manqué mes appels. D'ailleurs, ce n'était pas elle qui m'avait accueilli lors de la ma 2e journée d'entretien à Zurich. Après plusieurs semaines, je me suis dit que c'était fichu. J'ai eu la réponse négative début avril, soit cinq mois après ma candidature.

Impressions sur le recrutement et sur Google

Les entretiens m'ont laissé une drôle d'impression. Déjà, j'ai eu de nombreux interlocuteurs entre le début et la fin de ma candidature. C'est frustrant qu'on m'ait posé des questions dont les réponses étaient dans mon CV. Souvent j'ai du me répéter car les personnes avec qui je parlais ne me connaissaient pas. C'est pénible et un peu vexant. Ayant travaillé dans une société d'une vingtaine de personne, j'étais perdu et plus tout à fait sûr de vouloir travailler dans une société de 25 000 employés. Je garde une impression négative du recrutement. La lenteur du processus était également pesante (surtout à la fin). Dans les autres sociétés où j'ai postulé, j'ai toujours eu la réponse en moins d'un mois.

La majorité des entretiens étaient intéressants et se sont bien passés. Malheureusement, deux ont vraiment bloqués car je ne comprenais ce qu'on me demande (ce n'était pas un problème de la langue). J'ai un peu l'impression de ne pas avoir été pris en partie à cause des recruteurs qui n'étaient pas toujours au point. Sûrement que je me dis ça pour garder mon honneur sauf :-)

Google demeure une société assez mystérieuse pour moi. Elle cherche tellement à se donner une bonne image que ça en devient louche. D'ailleurs, il semble que l'esprit d'entreprise soit un critère très important dans les recrutements. Il semble qu'il faille vouloir à tout prix bosser pour Google. Bon ça tombait bien, je voulais beaucoup y bosser ;-)

Au moins, j'aurai dormi gratos dans un superbe hôtel à Zurich avec voyage (en train) payé... Mis à part que j'ai du avancer les 220€ x 2 pour les 2 nuits d'hôtel, plus le train, plus le taxi. J'avais plus de 600€ de notes de frais, envoyés par courrier dans une grosse enveloppe en Pologne. Enfin, j'ai recupéré les sous ! C'est classe de la part de Google de payer même si on n'est pas pris ;-)