Mon expérience de stage chez Microsoft Redmond et l'obtention d'une offre


une réimpression de l'article « » Chaque année, Microsoft reçoit 2 millions de CV « Développeur Minsk -. de passage âgé de 7 ans dans l'entreprise (+ lignes directrices et une liste de livres) » site dev.by .

Andrey Artemyev - Ingénieur développement logiciel au bureau américain de Microsoft à Seattle, travaillant sur le système d'exploitation Windows. Son chemin vers l'entreprise a duré 7 ans, avec cinq soumissions de curriculum vitae, une entrevue échouée et un stage d'été chez Microsoft Redmond. Andrey partage son expérience avec les lecteurs de dev.

"Mon expérience est que la persévérance, pas le talent, gagne sur un large intervalle"


Entrer dans Microsoft est déjà assez difficile, car l'embauche de la mauvaise personne peut coûter cher à l'entreprise. Cela comprend non seulement les coûts de relocalisation, mais aussi les dommages potentiels à l'entreprise causés par des erreurs des employés qui entraînent des conséquences désagréables, que ce soit le vol par des pirates russes d'une lettre de la candidate à la présidence Hillary Clinton, la propagation du virus Petya ransomware et la chute du serveur de base de données des patients dans un hôpital japonais. ou l'échec d'un contrat de 19 millions de dollars avec un fabricant d'ordinateurs portables.

Microsoft reçoit chaque année environ 2 millions de CV, donc tout doute sur le candidat entraîne son rejet. Un échec lors de l'entrevue finale signifie que la prochaine tentative ne sera qu'après 6 mois, mais en fait - seulement après un an. D'après mon expérience, la persévérance, et non le talent, l'emporte sur un large intervalle.

Tout a commencé en décembre 2008, lorsque moi, étudiant en troisième année à la BSUIR (Université d'État biélorusse de l'informatique et de l'électronique radio), suis venu à une conférence sur MS HPC Server 2008, organisée à Minsk par l'employé de Microsoft Vsevolod Ukrainsky. Dans une conférence, il a mentionné les stages d'été pour les étudiants au siège de l'entreprise aux États-Unis.

C'était incompréhensible pour l'esprit, un but et un sens sont apparus dans ma vie - je dois aller chez Microsoft. J'ai immédiatement envoyé mon curriculum vitae (je dois le soumettre ici ), et bien que je n'aie pas reçu de réponse, je n'étais pas contrarié: déjà à ce moment-là, j'ai réalisé que toutes les grandes réalisations nécessitaient une préparation.

Depuis janvier, je me suis complètement plongé dans le processus de collecte d'informations et de préparation. J'ai trouvé le blog de Sergey Grebnov d'Ivanovo (RF), qui venait de rentrer d'un stage d'été chez Microsoft aux États-Unis et a demandé d'en dire plus sur cette expérience, alors il a reçu une série de messages sur le processus d'entrevue et les tâches d'entrevue. Au cours de la clarification du contenu de l'entretien, le travail a commencé à bouillir et j'ai regretté qu'il n'y ait que 24 heures par jour. Mes camarades de classe n'ont pas compris cela.

Pour commencer, votre CV doit être remarqué. Si vous avez franchi cette étape, en septembre-octobre, vous aurez un entretien téléphonique de 30 minutes en anglais, qui éliminera ceux qui ne passeront certainement pas l'entretien final avec les Américains au bureau européen. Au deuxième tour, il y aura quatre à cinq entretiens de quarante-cinq minutes chacun, au cours desquels on vous proposera des problèmes algorithmiques, vous demanderez comment vous allez tester votre solution, et examinerez votre code et vos approches pour résoudre les problèmes. Sergey Grebnov a été le vainqueur de la programmation des Olympiades, le finaliste de la Microsoft Imagine Cup 2008, mais il n'est pas allé la première fois non plus.

"Dans une interview, vous devez être sincèrement intéressé par la façon dont vous pouvez vous améliorer, et pas seulement effectuer un rituel."


Je ne mets pas le mot «préparation» dans le sens où il le donne à l’université - mémoriser dans quelques jours, écrire des éperons, travailler avec un enseignant, tricher. Si vous avez été averti que pendant l'entretien, vous devez demander des commentaires à l'enquêteur, alors vous devez être sincèrement intéressé par la façon dont vous pouvez vous améliorer, et pas seulement effectuer le rituel.

D'après le comportement des enquêteurs, vous devez comprendre qui ils recherchent et vous faire comme ça. Se préparer, c'est développer en soi des compétences et des habitudes, pour la démonstration desquelles vous n'aurez pas à forcer la mémoire. Cela prendra peut-être six mois, peut-être plusieurs années. Le boxeur sur le ring ne se souvient pas comment mettre le bloc et ne sait pas où esquiver - ces compétences sont élaborées. Le jour de l'entretien, tout devrait se dérouler parfaitement, toutes les questions doivent être répondues et toutes les tâches résolues, seulement de cette façon, vous entrerez dans la «grande ligue».

J'ai appris l'anglais en lisant de la littérature technique, en regardant des dessins animés Futurama, The Simpsons, South Park. J'ai revu de nombreux épisodes une quarantaine de fois, écrit de nouveaux mots avec traduction et transcription dans un cahier et relu bêtement lorsque je voyageais dans les transports publics. Les cours de langues étrangères, à mon avis, sont inutiles: j'ai étudié l'allemand comme ça, et il me semblait que leur but n'était pas d'enseigner, mais de gagner de l'argent.

Un entretien téléphonique était simple: on m'a posé une question sur les listes liées et l'expérience de travail. Dans une interview, non seulement l'entreprise apprend à vous connaître, mais vous apprenez à le connaître, il est donc très important de préparer des questions. Je m'intéressais à la personne à l'autre bout de la ligne, à ce sur quoi elle travaille, à la fréquence des heures supplémentaires, à l'équilibre entre le travail et la vie personnelle, quels sont les plans des stagiaires, etc. Le manque d'intérêt pour un futur emploi peut ne pas jouer en faveur du candidat. Après un certain temps, j'ai découvert que la première étape a été franchie et je vous recontacterai bientôt.

L'automne pluvieux de Minsk a fait place au froid de l'hiver. À la mi-février 2010, j'ai reçu une lettre m'invitant à venir à Munich pour un entretien sur le campus de l'entreprise. 4 interviews de 45 minutes m'attendaient, Microsoft a payé tous les frais. Il restait moins d'un mois avant le jour fixé et je n'avais pas de visa. J'ai dû courir, car pour obtenir un visa allemand (non-Schengen), j'avais besoin d'un extrait du registre foncier sur Microsoft Deutschland Gmbh.

En général, le processus d'embauche chez Microsoft est assez «bâclé», et je ne pense pas que moi. Parfois, les recruteurs oublient d'envoyer des documents ou d'envoyer les mauvais sans signature, ou laissent simplement aux candidats peu de temps pour collecter les documents. On pense que cela est fait exprès pour éliminer les candidats, mais peut-être que le département des ressources humaines ne peut pas faire face à un énorme flux de candidats. Alors ne vous détendez pas, suivez vous-même l'ensemble du processus et n'ayez pas peur de leur écrire.

Microsoft mène très souvent des entretiens dans les bureaux de l'UE, où vient une équipe de recruteurs des États-Unis. Grebnov l'a eu à Varsovie, je l'ai eu à Munich. Parfois, des événements similaires ont également lieu en Russie, une fois qu'un événement d'embauche a eu lieu à la BSU (Belarusian State University). Un entretien dans un pays étranger est mauvais car il faut s'adapter à un nouvel environnement, un système de transports en commun peu familier, cela ajoute des risques. Je suis arrivé une heure avant l'entrevue et j'ai marché à proximité. Puis nous nous sommes retrouvés tous les quatre avec les autres candidats dans le hall, et nous avons été invités un par un à différents intervieweurs.

"L'erreur la plus stupide est de commencer à écrire du code sans spécifier tous les détails"


Lors de la première entrevue, on m'a posé des questions sur mon expérience de travail, puis on m'a remis un dépliant sur lequel la classe C ++ CString a été implémentée, la tâche est de trouver tous les problèmes. Depuis que j'ai lu C ++ efficace et C ++ plus efficace, j'ai réussi.

La tâche suivante a été plus difficile: implémenter la fonction bool IsMatch (char * pszText, char * pszPattern). Une chaîne est passée sous forme de modèle, qui peut contenir *, indiquant 0 ou plusieurs caractères. Je n'ai pas résolu ce problème. Lorsque vous décidez, considérez ces options: "Abcde", "A * c ** d * ek."

Dans le deuxième entretien, la tâche consistait à implémenter une fonction qui retourne tous les mots sur une ligne. Par exemple, "Bonjour, Microsoft Deutchland!" - "Deutchsland Microsoft Hello." La tâche peut sembler simple, mais en fait elle ne l'est pas. L'erreur la plus stupide lors de l'entrevue est de commencer à écrire du code sans spécifier tous les détails. Pour sélectionner une solution, vous devez disposer de données précises qui doivent être extraites de l'intervieweur. Il est nécessaire de clarifier ce qu'il faut faire avec les signes de ponctuation, si la prise en charge Unicode est nécessaire, car il y a plusieurs caractères (par exemple, des émoticônes avec différentes couleurs de peau), la taille du fichier, les restrictions de temps / mémoire. Il est également nécessaire d'expliquer le choix de l'algorithme et le choix de la structure des données. À la fin de l'entrevue, ils m'ont demandé comment je testerais ce code, j'ai répondu mal, et c'était la fin pour moi.

Je suis retourné à Minsk avec la ferme intention de mieux me préparer la prochaine fois. Je ne l'ai dit à personne à l'université, même le chef ne savait pas pourquoi j'étais absent. Immédiatement, il a envoyé des scans de chèques pour la nourriture et les transports publics à Microsoft, et FedEx a répondu en envoyant un chèque de 215 $, à partir duquel il devait payer de l'impôt sur le revenu. L'hébergement et le vol ont déjà été payés par l'entreprise.

À l'automne, j'ai de nouveau déposé mon curriculum vitae, mais j'ai survolé. Selon les exigences du visa J-1 (visa d'étudiant requis pour un stage aux États-Unis), au moment de la fin du stage, vous devez être un étudiant universitaire, et en 2011, j'étais déjà diplômé de l'université.

En cas d'échec, j'avais le plan B, alors j'ai continué à travailler. De temps en temps, je résolvais des problèmes et des situations perdues lors d'un entretien dans ma tête. Le processus de préparation est entré en arrière-plan: j'ai lu des livres sur la programmation, mais il n'y avait pas de fusible passé. L'Allemagne ne m'a pas donné de repos, j'ai donc envoyé les documents au Master d'informatique de l'Université technique de Munich. Ils ne l'ont pas fait.

La préparation s'est poursuivie, parfois j'ai résolu des problèmes et testé le code. À l'automne, il a de nouveau posé sa candidature dans trois universités différentes, et cette fois, il a reçu des réponses positives de tous en même temps. L'Université technique de Munich était en tête de liste (37e au monde), je l'ai donc choisie. Donc en avril 2012, je suis devenu étudiant dans une université allemande. Plus tard, j'ai été déçu de lui.

«Il fait sombre devant la fenêtre, je me tiens avec un marqueur devant un carton et j'implémente le jeu Démineur en C ++»


Fin août, déjà de Munich, j'ai de nouveau postulé pour un stage chez Microsoft, et j'ai été invité à la première étape. Il était à mon université. Je suis arrivé 20 minutes avant le départ, plusieurs personnes étaient assises sous la porte. L'un d'eux s'est avéré être un recruteur, et nous avons discuté pendant environ 15 minutes: j'ai posé des questions sur l'entreprise que j'avais préparée à l'avance.

Lors de l'entrevue, j'avais besoin d'écrire une application console C # sur le tableau, qui considère le nombre de caractères dans le fichier et les imprime par ordre décroissant. Lorsque vous le faites, pensez aux caractères Unicode composés, aux caractères de formatage et aux caractères invisibles (espace), et à quoi considérer les mêmes caractères, car dans certaines langues, ils peuvent sembler différents, mais signifient la même chose. Lors de ces entretiens, les spécialistes qui n'atteignent pas le niveau minimum sont éliminés. L'intervieweur évalue comment j'écris le code, comment je raisonne, comment j'aborde la solution du problème. Environ une semaine plus tard, j'ai été informé que j'avais passé la première étape.

En février 2013, j'ai été invitée à un entretien sur le campus de Zurich, me laissant le choix entre plusieurs dates. À la mi-mars, deux gars de Pologne se sont réunis dans un hall Microsoft à Zurich, un étudiant indien en Suisse et moi. Tout était le même qu'en 2010 - quatre interviews de 45 minutes chacune.

Dans la première interview, un responsable de Microsoft m'a demandé d'écrire des algorithmes LinkedList, dont l'un trouvait une bague dans la liste SingleLinked. Je ne me souviens pas d'autres problèmes techniques, mais les listes liées sont utilisées partout dans le système d'exploitation, vous devez donc bien les connaître. L'intervieweur m'a alors demandé si j'avais des questions à lui poser. J'ai interrogé tout le monde sur le stage, l'équipe et l'environnement de travail - c'était intéressant pour moi.

Le deuxième entretien était avec un employé russe de Microsoft. Je ne me souviens pas de ce que nous faisions, mais finalement il m'a donné 7 minutes pour implémenter l'algorithme en C #. J'ai immédiatement allumé le chronomètre de la montre (ce qui a bouleversé son plan) et j'ai ainsi pu me concentrer sur la résolution du problème. En conséquence, j'ai tout écrit à temps. L'interlocuteur m'a demandé si je voulais travailler avec Windows Phone ou SQL Server. Je me souviens être revenu de cette interview à la salle de conférence, j'ai vu un Indien avec des choses près de l'ascenseur - les autres gars étaient toujours aux entretiens.

Avec le troisième intervieweur, je n'ai pas immédiatement trouvé de langue commune. Il fallait organiser le tri des cartes. Au début, j'ai compris comment représenter au mieux les cartes en mémoire, la tâche a donc été réduite à réorganiser les éléments du tableau. Ensuite, le recruteur a ajouté la condition selon laquelle les cartes ne devraient jamais rester à leur place. J'ai implémenté l'algorithme en C ++. Avant d'écrire le code, j'ai précisé s'il était possible d'utiliser un générateur de nombres pseudo-aléatoires standard.

La quatrième entrevue. Il fait sombre dehors, je me tiens avec un marqueur devant un carton et implémente le jeu Démineur en C ++. En cours de route, le recruteur demande combien prend la gamme de pointeurs vers les pointeurs et comment vous pouvez répéter la boucle for, comment vais-je implémenter le jeu si le champ est énorme, disons un million par million.

En conséquence, deux d'entre nous restent, nous attendons une décision finale. Devant nous, un recruteur américain assis avec un ordinateur portable, elle demande qui veut d'abord connaître son résultat. J'exprime un désir, nous allons dans une autre salle, nous asseyons, le recruteur me remercie de l'attention portée aux stages Microsoft, exprime l'espoir que l'expérience acquise m'a été utile, et la joie de rejoindre l'entreprise au cours de l'été 2013.

Ce gars est également décédé. Nous sommes sortis à 18h30 et sommes allés à l'hôtel, où nous avons célébré la victoire avec deux verres de bière.

«Une lettre est venue de l'ambassade que le traitement de mes documents a été retardé, car je faisais partie du traitement supplémentaire»


Le stage devait commencer le 7 juin 2013. Je suis retourné en Allemagne et j'ai commencé à collecter des documents pour un visa J1. Ce n'était pas le moment d'étudier, elle était malade. J'ai préparé les documents très rapidement, car toutes les traductions et notarisations nécessaires ont été faites lors de mon entrée à l'université allemande.

Sur le site Web de l'ambassade, il a fallu passer un test avec des questions stupides, telles que: êtes-vous membre d'une organisation terroriste, avez-vous l'intention d'apporter des drogues aux États-Unis, etc. Lorsque vous allez à l'ambassade américaine, il vaut mieux ne pas emporter d'électronique avec vous, car il n'y a nulle part où la stocker. Quelqu'un enterre ses tablettes et ses montres intelligentes dans le parterre de fleurs, quelqu'un les donne aux escrocs pour les ranger et ne les revoit plus jamais, je suis allé au magasin et j'ai laissé mes affaires dans la salle de stockage.

Environ une semaine plus tard, l'ambassade m'a répondu que le traitement de mes documents avait été retardé, car je faisais partie du traitement supplémentaire. C'est la procédure que de nombreux programmeurs, physiciens et spécialistes des explosifs subissent lors de la première demande de visa américain. Ainsi, l'examen de mes documents a été retardé plus longtemps que prévu.

J'ai écrit à Microsoft et ils m'ont dit que je ne peux qu'attendre. Chaque jour, j'allais à la boîte aux lettres, mais elle était vide. Le temps de mon stage a été repoussé, j'ai complètement «noté» mes études, même si les examens approchaient. À cette époque, j'ai loué un grenier à une famille allemande près de l'université, mais ils se préparaient à déménager dans une autre maison. Je me souviens que la maison n'avait déjà rien à part la mienne, la période de location touchait à sa fin et il fallait prendre une décision. Une fois, par une chaude journée à Munich, j'ai vu une lourde enveloppe dans une boîte, et dedans - un passeport avec un visa et un tas de papiers. Microsoft m'a immédiatement acheté des billets et je me suis envolé. Ainsi, le stage à Redmond a commencé avec un retard d'un mois.

"En règle générale, les stagiaires Microsoft obtiennent une offre d'emploi à moins qu'ils ne fassent quelque chose de stupide."


Pendant le stage, Microsoft m'a fourni une voiture et une réduction sur le logement locatif. Les stagiaires ont eu le temps non seulement de travailler, mais aussi de voyager.


Station de travail interne Microsoft

J'ai travaillé sur Windows Phone 8.1, y ai ajouté une sorte d'API (je ne me souviens pas laquelle). Il fallait d'abord comprendre le projet, puis rédiger un document de conception, en discuter avec les autres collaborateurs, obtenir leur approbation, puis le mettre en œuvre et le tester. Au terme d'un stage de 12 semaines, j'ai présenté mon projet à l'équipe et reçu une offre d'emploi. La plupart des stagiaires ne reçoivent une telle offre que s'ils ne font pas quelque chose de stupide.

J'ai reçu une invitation à travailler chez Microsoft début septembre, mais je n'ai reçu une carte d'employé bleue que deux ans plus tard.

J'ai voyagé à travers l'Amérique et je suis retourné à Minsk pour la durée de mon visa de travail. Il s'agit d'un processus très long. Aux États-Unis, le nombre de travailleurs étrangers est un quota; ces dernières années, le nombre de candidats a dépassé le nombre de quotas, ils sont donc tirés au sort selon le principe de la loterie.

En dehors de la fenêtre en 2014, je vis avec mes parents, j'attends un visa. Si tout se passe bien, à l'automne j'irai aux USA, donc tu ne peux pas chercher du travail. Mais en avril, il est devenu clair que cette année, je n'ai pas reçu de visa et ne suis pas allé aux États-Unis, mais il y avait une option pour travailler au bureau de Vancouver, à trois heures de route de Seattle: après un an de travail au Canada avec un visa L1, je serais transféré à Redmond. Cependant, cette option n'a pas fonctionné non plus. En conséquence, à l'automne, je suis allé pour une entrevue chez Softeq. Mon expérience chez Microsoft et une solide connaissance de l'anglais m'ont donné un avantage notable lors de la candidature à un emploi.

Le printemps 2015 s'est discrètement introduit. En avril, mes documents de visa de travail ont finalement été approuvés. L'entretien à l'ambassade des États-Unis à Moscou a été très court: ils m'ont juste demandé où je travaillerais et avec quel salaire, ils ont pris mon passeport et sont revenus le même jour avec un visa. Tous les employés étrangers commencent à travailler en octobre, au début du nouvel exercice. Par conséquent, ma première journée de travail était le 5 octobre 2015.

Références d'Andrei Artemyev :

littérature pour les «physiciens» qui aidera à préparer les entretiens techniques. La lecture d'un bout à l'autre n'est pas nécessaire; je vous recommande d'étudier les algorithmes avec un crayon dans les mains.

Les entrevues débuteront l'automne prochain l'année prochaine - préparez-vous et soumettez votre CV. Si cela ne fonctionne pas, tirez des conclusions et réessayez.

  • Thomas Cormen. Algorithmes et structures de données;
  • Boris Kordemsky. Maîtrise des mathématiques;
  • Alexander Shen. Programmation. Théorèmes et problèmes;
  • William Pandstone. Comment déplacer le mont Fuji.
  • Une collection de tâches de programmation et de solutions pour eux sur topcoder.com ;
  • Entrevue sur le codage: 150 questions et réponses d'entrevue de programmation;
  • Questions d'entretiens chez Microsoft à glassdoor.com ;
  • C ++ efficace;
  • C ++ plus efficace;
  • Programmation des perles;
  • Page Microsoft sur FB pour se tenir au courant des événements

Littérature de motivation pour les "paroles":

  • M. Weller. Les aventures du major Zvyagin;
  • A. Schwarzenegger. Souviens-toi de tout. Mon histoire incroyablement vraie;
  • M. Sharapova. Inarrêtable. Ma vie;
  • Malcolm Gladwell. 10 000 heures;
  • C. Lengold. Just space: un atelier sur la vie Agile, plein de sens et d'énergie;
  • Timothy Ferris Comment travailler 4 heures par semaine.

ps ajout à l'article de l'auteur : si je comptais reprendre un stage, je soumettrais immédiatement un CV à toutes les grandes entreprises. Presque tout le monde a des stages - Microsoft, Google, Amazon, Facebook, Intel, Apple et le reste. En plus des stages aux États-Unis, il y a des stages dans les bureaux européens. L'Europe n'a pas d'exigences de visa aussi strictes que les États-Unis. Il existe des stages chez Microsoft Research pour les personnes engagées dans la science.

All Articles