Cum am obținut un stagiu la Shopify

Sezonul interviurilor pentru stagiile de vară 2018 s-a încheiat în sfârșit. După mai bine de o lună de interviuri și teste la mai multe companii, mă voi alătura Shopify ca stagiar de back-end pentru dezvoltatori.

În acest articol, vreau să vă duc prin procesul meu de aplicare, pregătire și interviuri la Shopify. Vreau, de asemenea, să vă împărtășesc câteva sfaturi pe care le folosesc atunci când aplic și sunt intervievat pentru locuri de muncă.

Introducere rapidă

În prezent sunt student la Universitatea Concordia din Montreal, Canada. Termin al treilea an de licență în inginerie software.

De asemenea, fac parte din programul COOP, care îmi cere să finalizez trei stagii de-a lungul diplomei de licență. Primele mele două stagii au fost la Ubisoft și Vigilant.

Ultimul meu stagiu va avea loc în această vară și voi lucra la Shopify din Montreal.

Ce este Shopify?

Mai simplu spus, platforma Shopify permite companiilor și persoanelor fizice să vândă cu ușurință marfa online.

Shopify vă ghidează prin procesul de configurare a unui magazin, gestionarea inventarului, acceptarea diferitelor metode de plată și livrare. Există chiar și un sistem de punct de vânzare (POS) de utilizat în magazin!

În ceea ce privește lucrul la Shopify, au câștigat Glassdoor's Best Place to Work in Canada 2017. De asemenea, sunt cunoscuți că au oameni străluciți în industria lor respectivă.

Procesul de aplicare

Shopify are un proces unic de recrutare pentru stagiari și acest lucru este clar începând cu procesul de aplicare.

Pentru a-mi trimite cererea, trebuia să îndeplinesc trei sarcini.

1. Crearea unui magazin Shopify

Prima sarcină a fost crearea unui magazin Shopify fictiv. A fost o modalitate de a mă familiariza cu platforma și de a înțelege prin ce trec comercianții pentru a crea un magazin online.

Am creat un magazin japonez de dulciuri și produse de patiserie. Am vrut să fac ceva ceva mai original decât un magazin tipic de modă, frumusețe sau electronică.

Cred că secretul acestui pas este să creezi o poveste fictivă în jurul magazinului tău. Apoi, designul magazinului și inventarul acestuia ar trebui să vină de la sine.

2. Finalizarea provocării tehnice

Poziția Back-end Developer Intern avea o provocare tehnică asociată.

Provocarea a fost crearea unui validator pentru o structură a datelor grafice. Am decis să folosesc Python pentru a o face.

Mi-a plăcut foarte mult modul în care provocarea a fost legată de platforma Shopify (sau cel puțin părea să fie), mai degrabă decât să fie o problemă algoritmică fără sens.

Cred că pentru această parte este extrem de important să se facă o soluție simplă . Deoarece există atât de multe modalități de a rezolva problema, este de asemenea crucial să vă faceți soluția intuitivă și bine documentată . Am făcut o mare utilizare a șirurilor de documente Python pentru a realiza acest lucru.

În cele din urmă, nu mergeți mai departe decât cerințele problemei, dacă înseamnă să vă faceți soluția mai complexă. Te va răni doar.

3. Răspunsul la întrebările de aplicare

Ultimul pas al procesului de aplicare a fost răspunsul la câteva întrebări.

Am scris despre tipul de muncă pe care aș vrea să o fac în timpul stagiului, precum și despre experiența mea pe parcursul procesului de înscriere. De asemenea, am scris o idee pentru Hack Days (hackathonul trimestrial al lui Shopify).

Am depus mult efort în a răspunde la aceste întrebări. Ca și în cazul oricărei aplicații, efortul depus pentru aceasta va arăta clar cât de interesat sunteți să lucrați acolo.

De asemenea, este important să fii sincer cu privire la ceea ce scrii și să -ți arăți pasiunea prin răspunsurile tale.

Pentru ideea Hack Days, încercați să vă gândiți la ceva care v-ar fi putut îmbunătăți viața la locul de muncă în timpul stagiilor și experiențelor anterioare. Gândiți-vă la alte aspecte decât munca în sine. Fă-l distractiv!

Procesul de interviu

După ce am așteptat câteva săptămâni, am primit un e-mail pentru a începe procesul de interviu!

Procesul meu de interviu a fost împărțit în două părți: un apel video despre povestea vieții și un interviu tehnic la fața locului.

Povestea vieții

Apelul video despre povestea vieții mele a durat aproximativ 45 de minute și a fost alături de un recrutor din echipa Talent Acquisition.

Din înțelegerea mea, scopul poveștii de viață este ca recrutorul să te cunoască la un nivel mai personal. Vor să știe ce nu spune CV-ul tău. Am vorbit despre subiecte precum călătoriile mele, interesele, hobby-urile, experiențele din trecut (nimic tehnic) și despre modul în care mi-am dezvoltat pasiunea pentru programare.

Aceasta a fost una dintre părțile mele preferate ale procesului. A fost foarte dezinvolt și mi s-a părut că întâlnești pe cineva nou și îți împărtășești povestea de viață!

Deși nu a fost nimic de pregătit în această parte a procesului de interviu, am făcut o listă cu toate subiectele despre care am vrut să vorbesc. Am păstrat-o pe ecran pentru a mă asigura că nu am uitat să menționez ceva ce am considerat important.

Cred că cele mai importante elemente din timpul poveștii de viață sunt să fii sincer , să rămâi dezinvolt și să îți cunoști de fapt povestea vieții . Vizualizați-l ca o conversație!

Tehnic la fața locului

Câteva săptămâni mai târziu, am primit un e-mail pentru a-mi programa interviul la fața locului. Acesta urma să fie împărțit în două părți: o analiză personală a proiectului și o problemă tehnică. Urma să fiu intervievat de doi dezvoltatori.

Pentru prima parte, trebuia să aduc un proiect în care făcusem o cantitate semnificativă de muncă.

În acea perioadă, plănuiam să încep un proiect pentru a rezolva o problemă pe care o aveam în viața mea de zi cu zi: cheltuiți prea mulți bani pe mâncare din restaurante.

Am vrut să creez o aplicație Alexa pe Amazon Echo, conștientă de ingredientele pe care le am în prezent și sugerează rețete pe baza a ceea ce am în stoc. A fost ocazia perfectă de a lovi două păsări cu o singură piatră.

Cu toate acestea, am vrut să lovesc și o a treia pasăre. Aș fi vrut să învăț Ruby on Rails de foarte mult timp. Deoarece platforma Shopify este construită pe Rails, m-am gândit că ar fi o idee minunată să folosesc Rails pentru a-mi crea aplicația Alexa.

Am făcut rapid Cursul SoloLearn Ruby și am învățat elementele de bază ale Ruby on Rails din Ghidul oficial de începere.

Apoi, mi-am folosit cunoștințele recent învățate pentru a crea Alexa Fridge!

În timpul acestei părți a interviului, mi s-a cerut să prezint proiectul meu din toate aspectele. Am parcurs codul și am arătat cum am implementat diferite elemente. Am fost, de asemenea, chestionat cu privire la deciziile mele de proiectare.

Este de la sine înțeles, dar ar trebui să știi cu adevărat proiectul tău din interior și din exterior pentru a putea răspunde la orice întrebare despre acesta. Vă poate ajuta să pregătiți în prealabil unele documente (în special diagrame) pentru a arăta diferite aspecte precum infrastructura dvs., schema bazei de date sau modul în care funcționează un API pe care l-ați folosit.

De exemplu, am adus această diagramă pentru a arăta cum comunică serverul meu cu Amazon Echo:

Cred că este benefic și dacă poți aduce un proiect pe care îl poți demonstra. Este greu să înțelegi semnificația muncii tale dacă nu poți arăta rezultatul.

Pentru a doua parte a interviului meu la fața locului, am avut nevoie să rezolv o problemă tehnică.

Mi s-a spus în prealabil că acesta nu ar fi un algoritm de scris pe o tablă albă (da!). În schimb, era o problemă de care aveam nevoie pentru a lua decizii de proiectare pe care să le rezolv.

Pentru această parte, recomand cu adevărat să aflați mai multe despre proiectarea sistemului . Ar trebui să aveți o idee despre cum să organizați aplicații web și mobile, cum să proiectați o schemă de baze de date, cum să vă autentificați și așa mai departe.

Unele dintre aceste subiecte sunt învățate în timpul unei diplome de inginerie software, dar altele nu. Vă recomandăm să verificați tabăra de instruire Hired In Tech Design System și Scalabilitatea ridicată. Ambele sunt surse excelente pentru a afla despre proiectarea sistemelor și pentru a vedea cât de mari companii își arhitectează aplicațiile. Acordați o atenție deosebită compromisurilor care vin cu fiecare decizie de proiectare.

Atunci când lucrați la probleme de proiectare a sistemului, asigurați-vă că vă spuneți întotdeauna clar presupunerile și înțelegeți cerințele .

De asemenea, nu fi timid să pui întrebări dacă ai nevoie! Aveți doi dezvoltatori în cameră cu dvs. și vi se permite să primiți ajutor din când în când. Este la fel de important să puneți întrebările corecte pe cât este să le răspundeți (oricum aveți Google pentru asta).

În cele din urmă, gândiți-vă întotdeauna cu voce tare .Este foarte important ca intervievatorii să știe cum gândești.

Încerc să mă gândesc cu voce tare cât mai mult posibil în timpul acestor tipuri de probleme, chiar dacă gândirea mea este greșită. Cu toate acestea, dacă este greșit, este important să-mi dau seama și să mă corectez.

Oferta

Aproximativ o săptămână mai târziu, Shopify m-a contactat cu o ofertă și am acceptat-o!

Concluzii

Mi-a plăcut foarte mult unicitatea atât a cererii, cât și a procesului de interviu. Mi-a permis să prezint mai mult decât abilitățile mele tehnice!

Iată un rezumat al sfaturilor pe care le-am împărtășit de-a lungul articolului:

  • Puneți-vă în pielea unui comerciant atunci când creați magazinul online și cufundați-vă în povestea lor fictivă
  • Când faceți provocarea tehnică, căutați simplitatea și documentați-o bine
  • Când scrieți răspunsurile la întrebările despre cerere, depuneți mult efort, fiți sinceri și arătați-vă pasiunea
  • În timpul poveștii de viață, fii tu însuți și cunoaște-ți povestea de viață
  • Pentru fața locului, aduceți un proiect pe care îl cunoașteți bine și știți de ce l-ați conceput așa cum ați făcut-o
  • Pentru problema tehnică, menționați-vă presupunerile și cerințele și gândiți-vă cu voce tare

Vă mulțumesc că ați citit articolul meu!

Pentru mai multe actualizări, urmărește-mă pe Twitter.