Como consegui um estágio no Shopify

A temporada de entrevistas para os estágios de verão de 2018 finalmente acabou. Depois de mais de um mês de entrevistas e testes em várias empresas, irei ingressar no Shopify como Estagiário de Desenvolvimento de Back-end.

Neste artigo, quero mostrar a você o meu processo de inscrição, preparação e entrevista no Shopify. Também quero compartilhar com vocês algumas dicas que uso quando me inscrevo e sou entrevistado para empregos.

Introdução rápida

Atualmente sou estudante de graduação na Concordia University em Montreal, Canadá. Estou terminando o terceiro ano do meu BEng em Engenharia de Software.

Também faço parte do programa COOP, que me obriga a completar três estágios durante o meu bacharelado. Meus dois primeiros estágios foram na Ubisoft e Vigilant.

Meu último estágio será neste verão, e estarei trabalhando no Shopify em Montreal.

O que é o Shopify?

Simplificando, a plataforma da Shopify permite que empresas e indivíduos vendam mercadorias online com facilidade.

O Shopify orienta você no processo de configuração de uma loja, gerenciamento de estoque, aceitação de vários métodos de pagamento e envio. Existe até um sistema de ponto de venda (POS) para usar na loja!

No que diz respeito ao trabalho no Shopify, eles ganharam o prêmio de melhor lugar para trabalhar da Glassdoor no Canadá em 2017. Eles também são conhecidos por terem pessoas brilhantes em seus respectivos setores.

O Processo de Candidatura

O Shopify tem um processo de recrutamento exclusivo para estagiários, e isso fica claro desde o processo de inscrição.

Para enviar minha inscrição, precisei completar três tarefas.

1. Criação de uma loja Shopify

A primeira tarefa foi criar uma loja Shopify fictícia. Foi uma forma de me familiarizar com a plataforma e entender o que os comerciantes passam para criar uma fachada de loja online.

Criei uma loja de doces e pastelaria japonesa. Eu queria fazer algo que fosse um pouco mais original do que uma típica loja de moda, beleza ou eletrônicos.

Acho que o segredo dessa etapa é criar uma história fictícia em torno de sua loja. Então, o design da loja e seu estoque devem vir naturalmente.

2. Completando o Desafio Técnico

A posição de Back-end Developer Intern tinha um desafio técnico associado a ela.

O desafio era criar um validador para a estrutura de dados de um gráfico. Decidi usar Python para fazer isso.

Eu realmente gostei de como o desafio estava vinculado à plataforma Shopify (ou pelo menos parecia estar), em vez de ser um problema algorítmico sem sentido.

Acredito que para essa parte é extremamente importante fazer uma solução simples . Como existem tantas maneiras de resolver o problema, também é crucial tornar sua solução intuitiva e bem documentada . Usei muito bem as docstrings do Python para fazer isso.

Por último, não vá além dos requisitos do problema se isso significar tornar sua solução mais complexa. Isso só vai machucar você.

3. Respondendo às perguntas de aplicação

A última etapa do processo de inscrição foi responder a algumas perguntas.

Escrevi sobre o tipo de trabalho que gostaria de fazer durante o estágio e também sobre como foi minha experiência durante o processo de inscrição. Também escrevi uma ideia para o Hack Days (hackathon trimestral do Shopify).

Eu me esforcei muito para responder a essas perguntas. Como acontece com qualquer aplicativo, a quantidade de esforço que você colocar nele mostrará claramente o quão interessado você está em trabalhar nele.

Também é importante ser honesto sobre o que você escreve e mostrar sua paixão por meio de suas respostas.

Para a ideia do Hack Days, tente pensar em algo que poderia ter melhorado sua vida no trabalho durante seus estágios e experiências anteriores. Pense em outros aspectos além do próprio trabalho. Torne isso divertido!

O Processo de Entrevista

Depois de esperar algumas semanas, recebi um e-mail para iniciar o processo de entrevista!

Meu processo de entrevista foi dividido em duas partes: uma videochamada de história de vida e uma entrevista técnica no local.

História de vida

Minha vídeo chamada de história de vida durou cerca de 45 minutos e foi com um recrutador da equipe de Aquisição de Talentos.

Pelo que entendi, o objetivo da história de vida é que o recrutador conheça você em um nível mais pessoal. Eles querem saber o que seu currículo não diz. Falei sobre tópicos como minhas viagens, interesses, hobbies, experiências anteriores (nada técnico) e como desenvolvi minha paixão por programação.

Essa foi uma das minhas partes favoritas do processo. Foi muito casual e foi como conhecer alguém novo e compartilhar sua, bem, história de vida!

Embora não houvesse nada para se preparar nesta parte do processo de entrevista, fiz uma lista de todos os diferentes tópicos sobre os quais queria falar. Eu o mantive na tela para ter certeza de não esquecer de mencionar nada que considerasse importante.

Acho que os elementos mais importantes durante a história de vida são ser honesto , permanecer casual e realmente conhecer a história de sua vida . Veja como uma conversa!

Técnico no local

Algumas semanas depois, recebi um e-mail para agendar minha entrevista no local. Ele seria dividido em duas partes: uma análise de projeto pessoal e um problema técnico. Eu seria entrevistado por dois desenvolvedores.

Para a primeira parte, eu precisava apresentar um projeto no qual havia trabalhado bastante.

Naquela época, planejava iniciar um projeto para resolver um problema que estava tendo no dia a dia: gastar muito dinheiro com comida em restaurantes.

Eu queria criar um aplicativo Alexa no meu Amazon Echo que conhecesse os ingredientes que possuo atualmente e sugira receitas com base no que tenho em estoque. Foi a oportunidade perfeita para acertar dois coelhos com uma cajadada só.

No entanto, eu queria acertar um terceiro pássaro também. Eu queria aprender Ruby on Rails há muito tempo. Como a plataforma da Shopify é construída em Rails, achei uma ótima ideia usar Rails para fazer meu aplicativo Alexa.

Eu rapidamente fiz o SoloLearn Ruby Course e aprendi o básico de Ruby on Rails no Guia oficial de primeiros passos.

Então, usei meu conhecimento recém-aprendido para fazer Alexa Fridge!

Durante esta parte da entrevista, fui convidado a apresentar meu projeto em todos os aspectos. Examinei o código e mostrei como implementei vários elementos. Também fui questionado sobre minhas decisões de design.

Nem é preciso dizer, mas você realmente deve conhecer seu projeto por dentro e por fora para poder responder a qualquer dúvida sobre ele. Pode ajudar a preparar alguma documentação com antecedência (especialmente diagramas) para mostrar diferentes aspectos como sua infraestrutura, esquema de banco de dados ou como funciona uma API que você usou.

Por exemplo, eu trouxe este diagrama para mostrar como meu servidor se comunica com meu Amazon Echo:

Eu acho que também é benéfico se você puder trazer um projeto para demonstração. É difícil entender o significado do seu trabalho se você não puder mostrar o resultado.

Para a segunda parte da minha entrevista no local, eu precisava resolver um problema técnico.

Disseram-me de antemão que este não seria um algoritmo para escrever em um quadro branco (yay!). Em vez disso, era um problema que eu precisava tomar decisões de design para resolver.

Para esta parte, eu realmente recomendo aprender mais sobre design de sistema . Você deve ter uma ideia de como organizar aplicativos da web e móveis, como projetar um esquema de banco de dados, como autenticar e assim por diante.

Alguns desses tópicos são aprendidos durante um curso de Engenharia de Software, mas outros não. Eu recomendo verificar o campo de treinamento de Design de Sistema da Hired In Tech e High Scalability. Ambos são fontes excelentes para aprender sobre design de sistemas e ver como grandes empresas arquitetam seus aplicativos. Preste muita atenção às compensações que vêm com cada decisão de projeto.

Ao trabalhar em problemas de design de sistema, certifique-se de sempre declarar claramente suas suposições e compreender os requisitos .

Além disso, não tenha vergonha de fazer perguntas, se necessário! Você tem dois desenvolvedores na sala com você e pode obter ajuda de vez em quando. É tão importante fazer as perguntas certas quanto respondê-las (você tem o Google para isso).

Por último, sempre pense em voz alta .É muito importante que os entrevistadores saibam como você pensa.

Tento pensar em voz alta o máximo possível durante esses tipos de problemas, mesmo que minha linha de pensamento esteja errada. No entanto, se estiver errado, é importante que eu perceba e me corrija.

A oferta

Cerca de uma semana depois, o Shopify me contatou com uma oferta e eu aceitei!

Aprendizado

Eu realmente gostei da singularidade da inscrição e do processo de entrevista. Isso me permitiu mostrar mais do que apenas minhas habilidades técnicas!

Aqui está um resumo das dicas que compartilhei ao longo do artigo:

  • Coloque-se no lugar do comerciante ao criar a loja online e mergulhe na história fictícia
  • Ao fazer o desafio técnico, procure simplicidade e documente bem
  • Ao escrever suas respostas para as perguntas de aplicação, faça um grande esforço, seja honesto e mostre sua paixão
  • Durante a história de vida, seja você mesmo e conheça sua história de vida
  • Para o local, traga um projeto que você conhece bem e sabe por que o desenhou da maneira que o fez
  • Para o problema técnico, defina suas suposições e requisitos e pense em voz alta

Obrigado por ler o meu artigo!

Para mais atualizações, siga-me no Twitter.