Interview at Google

mardi 23 septembre 2008 13h29

En mars, j'ai été contacté par un recruteur de Google qui voulait savoir si j'étais intéressé par un job. Six mois plus tard, je ne suis pas chez Google mais j'ai une expérience à partager.

Voici un article pour parler un peu de Google et de ce que j'ai appris, en espérant que cela pour aider ceux qui sont ou seront dans le processus d'embauche.


Premier contact

Le premier contact fut un mail à la fin du mois de février pour savoir si j'étais intéressé par un emploi chez Google. Rapidement nous avons convenu d'une date pour un premier entretient téléphonique.

Le premier entretient téléphonique est assez court (environ 30 minutes). Je pense que le but de cet entretient était de: juger la communication en anglais, savoir les domaines de compétences, et écarter rapidement les candidats peur prométeur à l'aide de quelques questions techniques (des questions ponctuelles, pas du tout une interview technique).

Ce premier contact m'a aussi permis d'apprendre le déroulement de l'embauche. Le processus dure 3 mois (malheureusement pour moi cela aura été 6), durant lesquels il y a un nombre indéterminé d'interview technique par téléphone. Ces interviews durent entre 45 minutes et 1h et se font à chaque fois avec un ingénieur différent.

Les interviews téléphoniques

Après le premier entretient ont commencé les interviews téléphoniques. Ces interviews touchent à tout les domaines que vous avez cités comme acquis dans la première interview.

Ces interviews chez Google sont uniques en leur genre. J'ai passé des tas d'interviews en Belgique, quelques interviews par téléphone pour l'étranger, et les interviews de Google sont vraiment intéressante. Chez Google, il est demandé de résoudre de petits problèmes et de raffiner la solution en discutant avec l'intervieweur. La différence avec une interview classique est qu'on s'amuse un minimum (beaucoup de problèmes sont chouettes à résoudre) et surtout on apprend de nouveau truc (nouvelle approche sur une série de problème, structure de données pas encore connue, etc).

Si vous devez passer ces interviews, prenez le temps de réviser entre chacune d'entre elle. Dans mon cas, j'ai relu "Data Structures and Algorithm Analysis in C++", une partie de "The algorithm design manual" et j'ai relu la fin de "Understanding the Linux Kernel" après m'être fait avoir sur une interview. Il y a aussi des sites internet avec des questions d'interviews, mais dans ces sites, méfiez vous des réponses proposées car un grand nombre sont fausses (ou largement sous-optimale).

Mauvaise communication

Ces dans cette période d'interviews téléphoniques que j'ai dû faire face à un point délicat dans l'embauche chez Google. Les ingénieurs que j'ai eu au téléphone sont toujours très sympa mais, à l'exception du premier contact, les démarches avec les recruteurs sont vraiment chaotique.

Il y eu par exemple une période d'un mois durant laquelle Google ne répondait plus à mes emails. J'ai rapidement eu l'impression que les recruteurs n'en ont rien à foutre des candidats et j'ai arrêté de poser des questions.

Autre point fâcheux, au départ il était question d'un processus d'embauche de 90 jours. Finalement, ça en a pris le double (un peu plus de 6 mois). Ce retard m'a fait rater des opportunités dans de très chouette compagnies (car je ne pouvais signer pour 2-3 ans si j'avais une réponse de Google 1 mois plus tard). Pour ça je pense que je vais encore en vouloir à Google pendant longtemps.

Interviews à Dublin

Après les interviews téléphoniques, je fut invité à venir à Dublin pour une série d'interview dans les bâtiments de Google. Tout les frais sont payé pour cet interview (avion, hôtel, bus, taxi), ce qui est génial pour les étudiants fauché comme votre serviteur. Je vous passe mes aventures pour traverser Dublin le jour d'un match de foot pour en arriver directement à la journée chez Google.

Je ne peux hélas vous en dire beaucoup sur ce qui m'a été demandé. La raison est que, en arrivant chez Google, j'ai dû signer un papier stipulant:

  1. La première règle est: tu ne parles pas de Google
  2. La seconde règle est: tu NE parles PAS de Google

Sur place, j'ai fait 5 interviews avec 5 personnes différentes (une personne à la fois, ce qui est beaucoup plus agréable que d'autres employeurs pour les interviews). Les interviews s'enchaînent, il n'y a pas de pause excepté à midi, mais l'ambiance est détendue et le stress vous maintient plus ou moins d'aplomb.

Sur le temps de midi, j'ai été mangé avec un ingénieur Irlandais très sympa. Il m'a expliqué comment fonctionne le travail et m'a raconté quelques anecdotes sur la vie à Google. On m'a dit avant le repas que cela ne faisait pas partie de l'interview mais après coup j'en doute sérieusement.

Cassons dès maintenant un mythe sur Google: leurs cantines ne sont pas du tout extraordinaire :)

Le dénouement

Après les interviews à Dublin, la recruteuse m'a dit que j'aurais une réponse dans les deux semaines. Deux mois plus tard, j'eu finalement une réponse négative.

Je n'ai pas pu avoir d'information sur mes points faible aux interviews afin de m'améliorer. D'après ce que j'ai lu, aucun candidat qui n'a pas eu le job n'a pu avoir d'information sur les raisons. C'est évidemment très frustrant car cela ne laisse aucune place pour corriger ses erreurs.

Ce que j'ai appris

Au cours de ces six mois dans la procédure d'embauche de Google, j'ai eu l'occasion d'apprendre énormément. J'ai lu de très nombreux papier publié par Google et je me suis intéressé à la façon dont ils créent leur logiciels.

Depuis les interviews, j'accorde beaucoup plus d'importance aux structures de données, aux algorithmique et à la complexité algorithmique de ce que j'écris. Choisir le bon algorithme permet de sauver des cycles, ce qui donne des programmes plus rapide, une meilleure tenue en charge, et une réduction des ressources consommées. Résoudre un problème n'est pas suffisant, je préfère le résoudre de façon élégante.

Un autre changement dans ma façon de travailler, et la façon de monitorer mon travail. Si vous regardez aux logiciels de Google, ils sont toujours accompagné d'une batterie d'outil de mesure. Voir comment se comporte un programme dans le profileur donne une vision intéressante, mais voir les mesures du programme en production vous donne une vue directe sur ce qui mérite de l'attention. Passer (beaucoup) de temps sur le monitoring, ce n'est pas du temps perdu.