Hvordan jeg fik en praktik hos Shopify

Interviewsæsonen for sommerpraktikopholdet 2018 er endelig slut. Efter over en måned med interviews og tests hos flere virksomheder vil jeg tilslutte mig Shopify som en Back-end Developer Intern.

I denne artikel vil jeg tage dig igennem min proces til ansøgning, forberedelse og samtale hos Shopify. Jeg vil også dele med dig nogle tip, som jeg bruger, når jeg ansøger og bliver interviewet til job.

Hurtig introduktion

Jeg er i øjeblikket en studerende ved Concordia University i Montreal, Canada. Jeg afslutter det tredje år af min BIng i Software Engineering.

Jeg er også en del af COOP-programmet, som kræver, at jeg gennemfører tre praktikophold gennem hele min bachelorgrad. Mine første to praktikophold var hos Ubisoft og Vigilant.

Min sidste praktikophold finder sted i sommer, og jeg vil arbejde på Shopify i Montreal.

Hvad er Shopify?

Kort sagt giver Shopifys platform virksomheder og enkeltpersoner mulighed for nemt at sælge merchandise online.

Shopify guider dig gennem processen med at oprette en butiksfront, administrere din beholdning, acceptere forskellige betalingsmetoder og forsendelse. Der er endda et salgsstedssystem (POS) til brug i butikken!

Så vidt arbejdet hos Shopify går, har de vundet Glassdoors bedste sted at arbejde i Canada 2017. De er også kendt for at have strålende mennesker i deres respektive branche.

Ansøgningsprocessen

Shopify har en unik rekrutteringsproces for praktikanter, og det er klart startende med ansøgningsprocessen.

For at indsende min ansøgning var jeg nødt til at udføre tre opgaver.

1. Oprettelse af en Shopify-butik

Den første opgave var at oprette en fiktiv Shopify-butik. Det var en måde at gøre mig bekendt med platformen og forstå, hvad handlende går igennem for at skabe en onlinebutikfront.

Jeg oprettede en japansk slik- og kagerbutik. Jeg ville lave noget, der var lidt mere originalt end en typisk mode-, skønheds- eller elektronikbutik.

Jeg tror, ​​at hemmeligheden bag dette trin er at skabe en fiktiv historie omkring din butik. Derefter skal butikkens design og dens beholdning komme naturligt.

2. Gennemførelse af den tekniske udfordring

Back-end Developer Intern-stillingen havde en teknisk udfordring forbundet med den.

Udfordringen var at oprette en validator til en grafdatastruktur. Jeg besluttede at bruge Python til at gøre det.

Jeg kunne virkelig godt lide, hvordan udfordringen var knyttet til Shopify-platformen (eller i det mindste så ud til at være), snarere end at være et meningsløst algoritmisk problem.

Jeg tror, ​​at det for denne del er ekstremt vigtigt at lave en enkel løsning. Da der er så mange måder at løse problemet på, er det også afgørende at gøre din løsning intuitiv og veldokumenteret . Jeg benyttede mig meget af Python docstrings for at opnå det.

Endelig skal du ikke gå længere end kravene til problemet, hvis det betyder at gøre din løsning mere kompleks. Det vil kun skade dig.

3. Besvarelse af applikationsspørgsmålene

Det sidste trin i ansøgningsprocessen var at besvare nogle spørgsmål.

Jeg skrev om den slags arbejde, jeg gerne ville udføre i løbet af praktikken, samt hvordan min erfaring var gennem hele ansøgningsprocessen. Jeg skrev også en idé til Hack Days (Shopifys kvartalsvise hackathon).

Jeg lagde en stor indsats i at besvare disse spørgsmål. Som med enhver applikation vil den indsats, du lægger i den, tydeligt vise, hvor interesseret du er i at arbejde der.

Det er også vigtigt at være ærlig om hvad du skriver og vise din lidenskab gennem dine svar.

For Hack Days-ideen, prøv at tænke på noget, der kunne have forbedret dit liv på arbejdet under dine tidligere praktikophold og oplevelser. Tænk på andre aspekter end selve arbejdet. Gør det sjovt!

Interviewprocessen

Efter at have ventet et par uger modtog jeg en e-mail for at starte interviewprocessen!

Min interviewproces blev opdelt i to dele: et livshistorie-videoopkald og et teknisk interview på stedet.

Livshistorie

Min livshistorie videoopkald varede cirka 45 minutter og var sammen med en rekrutterer fra Talent Acquisition-teamet.

Efter min forståelse er formålet med livshistorien, at rekruttereren skal kende dig på et mere personligt niveau. De vil vide, hvad dit CV ikke siger. Jeg talte om emner som mine rejser, interesser, hobbyer, tidligere oplevelser (intet teknisk) og hvordan jeg udviklede min passion for programmering.

Dette var en af ​​mine yndlingsdele af processen. Det var meget afslappet, og det føltes bare som at møde nogen ny og dele din livshistorie!

Mens der ikke var noget at forberede sig på i denne del af interviewprocessen, lavede jeg en liste over alle de forskellige emner, jeg ville tale om. Jeg holdt det på min skærm for at sikre, at jeg ikke glemte at nævne noget, som jeg anså for vigtigt.

Jeg tror, ​​at de vigtigste elementer under livshistorien er at være ærlig , være afslappet og faktisk kende din livshistorie . Se det som en samtale!

Onsite teknisk

Et par uger senere modtog jeg en e-mail for at planlægge mit stedssamtale. Det skulle opdeles i to dele: en personlig projektanalyse og et teknisk problem. Jeg skulle interviewes af to udviklere.

For den første del var jeg nødt til at bringe et projekt ind, hvor jeg havde arbejdet meget.

På det tidspunkt planlagde jeg at starte et projekt for at løse et problem, jeg havde i min hverdag: at bruge for mange penge på mad fra restauranter.

Jeg ville oprette en Alexa-app på min Amazon Echo, der er opmærksom på de ingredienser, jeg har i øjeblikket, og foreslår opskrifter baseret på hvad jeg har på lager. Det var den perfekte mulighed for at slå to fugle i én smag.

Jeg ville dog også ramme en tredje fugl. Jeg havde ønsket at lære Ruby on Rails i meget lang tid. Da Shopifys platform er bygget på Rails, tænkte jeg, at det ville være en god idé at bruge Rails til at lave min Alexa-app.

Jeg lavede hurtigt SoloLearn Ruby Course og lærte det grundlæggende i Ruby on Rails fra den officielle Kom godt i gang guide.

Derefter brugte jeg min nyuddannede viden til at lave Alexa Køleskab!

I løbet af denne del af interviewet blev jeg bedt om at præsentere mit projekt fra alle aspekter. Jeg gennemgik koden og viste, hvordan jeg implementerede forskellige elementer. Jeg blev også afhørt om mine designbeslutninger.

Det siger sig selv, men du bør virkelig kende dit projekt indefra og ude for at kunne besvare ethvert spørgsmål om det. Det kan hjælpe med at forberede nogle dokumenter på forhånd (især diagrammer) for at vise forskellige aspekter som din infrastruktur, databaseskema eller hvordan en API, du brugte, fungerer.

For eksempel bragte jeg dette diagram for at vise, hvordan min server kommunikerer med min Amazon Echo:

Jeg synes, det er også gavnligt, hvis du er i stand til at medbringe et projekt, som du kan demo. Det er svært at forstå betydningen af ​​dit arbejde, hvis du ikke kan vise resultatet.

I anden del af mit onsite-interview var jeg nødt til at løse et teknisk problem.

Jeg fik på forhånd at vide, at dette ikke ville være en algoritme til at skrive på en tavle (yay!). I stedet var det et problem, som jeg havde brug for for at tage designbeslutninger for at løse.

For denne del anbefaler jeg virkelig at lære mere om systemdesign . Du skal have en idé om, hvordan man organiserer web- og mobilapplikationer, hvordan man designer et databaseskema, hvordan man godkender osv.

Nogle af disse emner læres under en softwareingeniøreksamen, men andre er det ikke. Jeg anbefaler at tjekke Hired In Techs træningslejr i System Design og høj skalerbarhed. Begge er fremragende kilder til at lære om systemdesign og se, hvor store virksomheder arkitekterer deres applikationer. Vær opmærksom på afvejningerne, der følger med enhver designbeslutning.

Når du arbejder på problemer med systemdesign, skal du sørge for altid at angive dine antagelser og forstå kravene .

Vær heller ikke bange for at stille spørgsmål, hvis du har brug for det! Du har to udviklere i rummet med dig, og du har lov til at få hjælp fra tid til anden. Det er lige så vigtigt at stille de rigtige spørgsmål, som det er at besvare dem (det har du alligevel Google til).

Til sidst skal du altid tænke højt .Det er meget vigtigt for interviewere at vide, hvordan du tænker.

Jeg prøver at tænke højt så meget som muligt under denne slags problemer, selvom min tankegang er forkert. Men hvis det er forkert, er det vigtigt, at jeg indser det og retter mig selv.

Tilbuddet

Omkring en uge senere kontaktede Shopify mig med et tilbud, og jeg accepterede det!

Takeaways

Jeg nød virkelig det unikke ved både ansøgningen og interviewprocessen. Det tillod mig at fremvise mere end bare mine tekniske færdigheder!

Her er et resumé af de tip, jeg delte i hele artiklen:

  • Sæt dig selv i en handelssko, når du opretter onlinebutikken, og fordyb dig i deres fiktive historie
  • Når du udfører den tekniske udfordring, skal du kigge efter enkelhed og dokumentere den godt
  • Når du skriver dine svar på applikationsspørgsmålene, skal du gøre en stor indsats, være ærlig og vise din lidenskab
  • I løbet af livshistorien skal du være dig selv og kende din livshistorie
  • Medbring et projekt, som du kender godt til stedet, og ved, hvorfor du designet det, som du gjorde
  • For det tekniske problem, angiv dine antagelser og krav, og tænk højt

Tak fordi du læste min artikel!

For flere opdateringer, følg mig på Twitter.