Comment j'ai obtenu un stage chez Shopify

La saison des entretiens pour les stages d'été 2018 est enfin terminée. Après plus d'un mois d'entretiens et de tests dans plusieurs entreprises, je rejoindrai Shopify en tant que stagiaire développeur back-end.

Dans cet article, je souhaite vous présenter mon processus de candidature, de préparation et d'entretien chez Shopify. Je souhaite également partager avec vous quelques conseils que j'utilise lorsque je postule et que je suis interviewé pour des emplois.

Introduction rapide

Je suis actuellement étudiant de premier cycle à l'Université Concordia à Montréal, Canada. Je termine la troisième année de mon BEng en génie logiciel.

Je fais également partie du programme COOP, qui m'oblige à effectuer trois stages tout au long de mon baccalauréat. Mes deux premiers stages étaient chez Ubisoft et Vigilant.

Mon dernier stage aura lieu cet été et je travaillerai chez Shopify à Montréal.

Qu'est-ce que Shopify?

En termes simples, la plate-forme Shopify permet aux entreprises et aux particuliers de vendre facilement des marchandises en ligne.

Shopify vous guide tout au long du processus de configuration d'une vitrine, de gestion de votre inventaire, d'acceptation de divers modes de paiement et d'expédition. Il existe même un système de point de vente (POS) à utiliser en magasin!

En ce qui concerne leur travail chez Shopify, ils ont remporté le prix du meilleur endroit où travailler au Canada de Glassdoor en 2017. Ils sont également connus pour avoir des personnes brillantes dans leur secteur respectif.

Le processus de candidature

Shopify a un processus de recrutement unique pour les stagiaires, et c'est clair à partir du processus de candidature.

Pour soumettre ma candidature, je devais effectuer trois tâches.

1. Créer une boutique Shopify

La première tâche était de créer un magasin Shopify fictif. C'était un moyen de me familiariser avec la plateforme et de comprendre ce que les marchands traversent pour créer une vitrine de boutique en ligne.

J'ai créé un magasin de confiseries et pâtisseries japonaises. Je voulais créer quelque chose d'un peu plus original qu'un magasin de mode, de beauté ou d'électronique typique.

Je pense que le secret de cette étape est de créer une histoire fictive autour de votre magasin. Ensuite, la conception du magasin et son inventaire devraient venir naturellement.

2. Relever le défi technique

Le poste de stagiaire développeur back-end était associé à un défi technique.

Le défi était de créer un validateur pour une structure de données graphique. J'ai décidé d'utiliser Python pour le faire.

J'ai vraiment aimé la façon dont le défi était lié à la plate-forme Shopify (ou du moins cela semblait l'être), plutôt que d'être un problème algorithmique dénué de sens.

Je crois que pour cette partie, il est extrêmement important de faire une solution simple . Comme il existe de nombreuses façons de résoudre le problème, il est également crucial de rendre votre solution intuitive et bien documentée . J'ai fait un grand usage des docstrings Python pour y parvenir.

Enfin, n'allez pas plus loin que les exigences du problème si cela signifie rendre votre solution plus complexe. Cela ne fera que vous blesser.

3. Répondre aux questions relatives à l'application

La dernière étape du processus de candidature consistait à répondre à certaines questions.

J'ai écrit sur le type de travail que j'aimerais faire pendant le stage ainsi que sur la façon dont mon expérience s'est déroulée tout au long du processus de candidature. J'ai également écrit une idée pour Hack Days (le hackathon trimestriel de Shopify).

J'ai fait beaucoup d'efforts pour répondre à ces questions. Comme pour toute application, l'effort que vous y consacrez montrera clairement à quel point vous êtes intéressé à y travailler.

Il est également important d' être honnête sur ce que vous écrivez et de montrer votre passion à travers vos réponses.

Pour l'idée des Hack Days, essayez de penser à quelque chose qui aurait pu améliorer votre vie au travail lors de vos stages et expériences précédents. Pensez à des aspects autres que le travail lui-même. Amuse-toi!

Le processus d'entrevue

Après avoir attendu quelques semaines, j'ai reçu un e-mail pour démarrer le processus d'entretien!

Mon processus d'entrevue était divisé en deux parties: un appel vidéo sur l'histoire de la vie et un entretien technique sur place.

Histoire de la vie

L'appel vidéo de mon histoire de vie a duré environ 45 minutes et était avec un recruteur de l'équipe d'acquisition de talents.

D'après ce que j'ai compris, le but de l'histoire de la vie est que le recruteur vous connaisse à un niveau plus personnel. Ils veulent savoir ce que votre CV ne dit pas. J'ai parlé de sujets comme mes voyages, mes centres d'intérêt, mes passe-temps, mes expériences passées (rien de technique) et comment j'ai développé ma passion pour la programmation.

C'était l'une de mes parties préférées du processus. C'était très décontracté et c'était comme rencontrer quelqu'un de nouveau et partager votre histoire de vie!

Bien qu'il n'y ait rien à préparer dans cette partie du processus d'entrevue, j'ai fait une liste de tous les différents sujets dont je voulais parler. Je l'ai gardé sur mon écran pour m'assurer de ne pas oublier de mentionner tout ce que je jugeais important.

Je pense que les éléments les plus importants de l'histoire de la vie sont d'être honnête , de rester décontracté et de connaître réellement l' histoire de votre vie . Considérez-le comme une conversation!

Technique sur site

Quelques semaines plus tard, j'ai reçu un e-mail pour planifier mon entretien sur place. Il allait être divisé en deux parties: une analyse de projet personnel et un problème technique. J'allais être interviewé par deux développeurs.

Pour la première partie, je devais apporter un projet sur lequel j'avais fait un travail important.

À ce moment-là, je prévoyais de démarrer un projet pour résoudre un problème que j'avais dans ma vie quotidienne: dépenser trop d'argent pour la nourriture des restaurants.

Je voulais créer une application Alexa sur mon Amazon Echo qui soit consciente des ingrédients que j'ai actuellement et suggère des recettes en fonction de ce que j'ai en stock. C'était l'occasion idéale de faire d'une pierre deux coups.

Cependant, je voulais aussi frapper un troisième oiseau. Je voulais apprendre Ruby on Rails depuis très longtemps. Étant donné que la plate-forme de Shopify est construite sur Rails, j'ai pensé que ce serait une bonne idée d'utiliser Rails pour créer mon application Alexa.

J'ai rapidement suivi le cours SoloLearn Ruby et appris les bases de Ruby on Rails dans le guide de démarrage officiel.

Ensuite, j'ai utilisé mes nouvelles connaissances pour créer Alexa Fridge!

Durant cette partie de l'entretien, on m'a demandé de présenter mon projet sous tous ses aspects. J'ai parcouru le code et montré comment j'ai implémenté divers éléments. J'ai également été interrogé sur mes décisions de conception.

Cela va sans dire, mais vous devez vraiment connaître votre projet de fond en comble pour pouvoir répondre à toute question à ce sujet. Il peut être utile de préparer au préalable une documentation (en particulier des diagrammes) pour montrer différents aspects tels que votre infrastructure, le schéma de base de données ou le fonctionnement d'une API que vous avez utilisée.

Par exemple, j'ai apporté ce diagramme pour montrer comment mon serveur communique avec mon Amazon Echo:

Je pense que c'est également bénéfique si vous êtes en mesure d'apporter un projet que vous pouvez faire une démonstration. Il est difficile de saisir la signification de votre travail si vous ne pouvez pas montrer le résultat.

Pour la deuxième partie de mon entretien sur site, j'avais besoin de résoudre un problème technique.

On m'a dit au préalable que ce ne serait pas un algorithme pour écrire sur un tableau blanc (ouais!). Au lieu de cela, c'était un problème que je devais prendre des décisions de conception à résoudre.

Pour cette partie, je recommande vraiment d'en savoir plus sur la conception du système . Vous devez avoir une idée de la manière d'organiser les applications Web et mobiles, de concevoir un schéma de base de données, de s'authentifier, etc.

Certains de ces sujets sont appris lors d'un diplôme en génie logiciel, mais d'autres ne le sont pas. Je recommande de vérifier le camp d'entraînement de conception de système de Hired In Tech et sa haute évolutivité. Les deux sont d'excellentes sources pour en savoir plus sur la conception de systèmes et pour voir comment les grandes entreprises conçoivent leurs applications. Portez une attention particulière aux compromis qui accompagnent chaque décision de conception.

Lorsque vous travaillez sur des problèmes de conception de système, assurez-vous de toujours indiquer clairement vos hypothèses et de comprendre les exigences .

N'hésitez pas non plus à poser des questions si vous en avez besoin! Vous avez deux développeurs dans la salle avec vous, et vous êtes autorisé à obtenir de l'aide de temps en temps. Il est aussi important de poser les bonnes questions que d'y répondre (vous avez de toute façon Google pour cela).

Enfin, pensez toujours à voix haute .Il est très important que les enquêteurs sachent comment vous pensez.

J'essaie de penser le plus possible à voix haute pendant ce genre de problèmes, même si ma pensée est fausse. Cependant, si c'est faux, il est important que je m'en rende compte et que je me corrige.

L'offre

Environ une semaine plus tard, Shopify m'a contacté avec une offre et je l'ai acceptée!

À emporter

J'ai vraiment apprécié le caractère unique de la candidature et du processus d'entrevue. Cela m'a permis de mettre en valeur plus que mes compétences techniques!

Voici un résumé des conseils que j'ai partagés tout au long de l'article:

  • Mettez-vous à la place d'un marchand lors de la création de la boutique en ligne, et plongez-vous dans leur histoire fictive
  • Lorsque vous relevez le défi technique, recherchez la simplicité et documentez-la bien
  • Lorsque vous rédigez vos réponses aux questions de candidature, faites beaucoup d'efforts, soyez honnête et montrez votre passion
  • Au cours de l'histoire de la vie, soyez vous-même et connaissez l'histoire de votre vie
  • Pour le site, apportez un projet que vous connaissez bien et sachez pourquoi vous l'avez conçu comme vous l'avez fait
  • Pour le problème technique, énoncez vos hypothèses et exigences, et réfléchissez à voix haute

Merci d'avoir lu mon article!

Pour plus de mises à jour, suivez-moi sur Twitter.