Cómo obtuve una pasantía en Shopify

La temporada de entrevistas para las pasantías de verano de 2018 finalmente ha terminado. Después de más de un mes de entrevistas y pruebas en varias empresas, me uniré a Shopify como becario de desarrollo back-end.

En este artículo, quiero guiarte a través de mi proceso de solicitud, preparación y entrevista en Shopify. También quiero compartir con ustedes algunos consejos que utilizo cuando solicito y me entrevistan para trabajos.

Introducción rápida

Actualmente soy estudiante de pregrado en la Universidad de Concordia en Montreal, Canadá. Estoy terminando el tercer año de mi BEng en Ingeniería de Software.

También formo parte del programa COOP, que me obliga a realizar tres pasantías a lo largo de mi licenciatura. Mis dos primeras pasantías fueron en Ubisoft y Vigilant.

Mi última pasantía tendrá lugar este verano y trabajaré en Shopify en Montreal.

¿Qué es Shopify?

En pocas palabras, la plataforma de Shopify permite a las empresas y a las personas vender fácilmente mercancías en línea.

Shopify lo guía a través del proceso de configurar un frente de tienda, administrar su inventario, aceptar varios métodos de pago y envío. ¡Incluso hay un sistema de punto de venta (POS) para usar en la tienda!

En lo que respecta a trabajar en Shopify, ganaron el premio al Mejor Lugar para Trabajar de Glassdoor en Canadá 2017. También son conocidos por tener personas brillantes en sus respectivas industrias.

El proceso de solicitud

Shopify tiene un proceso de reclutamiento único para pasantes, y eso está claro a partir del proceso de solicitud.

Para enviar mi solicitud, necesitaba completar tres tareas.

1. Creando una tienda Shopify

La primera tarea fue crear una tienda Shopify ficticia. Fue una forma de familiarizarme con la plataforma y comprender lo que atraviesan los comerciantes para crear una tienda en línea.

Creé una tienda de dulces y pasteles japoneses. Quería hacer algo que fuera un poco más original que una tienda típica de moda, belleza o electrónica.

Creo que el secreto de este paso es crear una historia ficticia en torno a tu tienda. Entonces, el diseño de la tienda y su inventario debería ser algo natural.

2. Completar el desafío técnico

El puesto de becario de desarrollo back-end tenía un desafío técnico asociado.

El desafío consistía en crear un validador para una estructura de datos de gráficos. Decidí usar Python para hacerlo.

Me gustó mucho cómo el desafío estaba vinculado a la plataforma Shopify (o al menos parecía estarlo), en lugar de ser un problema algorítmico sin sentido.

Creo que para esta parte, es extremadamente importante hacer una solución simple . Dado que hay tantas formas de resolver el problema, también es fundamental que su solución sea intuitiva y esté bien documentada . Hice un gran uso de las cadenas de documentación de Python para lograrlo.

Por último, no vaya más allá de los requisitos del problema si eso significa hacer su solución más compleja. Solo te hará daño.

3. Respuesta a las preguntas de la solicitud

El último paso del proceso de solicitud fue responder algunas preguntas.

Escribí sobre el tipo de trabajo que me gustaría hacer durante la pasantía y sobre cómo fue mi experiencia durante todo el proceso de solicitud. También escribí una idea para Hack Days (el hackathon trimestral de Shopify).

Me esforcé mucho en responder esas preguntas. Al igual que con cualquier aplicación, la cantidad de esfuerzo que le dedique mostrará claramente su interés en trabajar allí.

También es importante ser honesto sobre lo que escribe y mostrar su pasión a través de sus respuestas.

Para la idea de Hack Days, intente pensar en algo que podría haber mejorado su vida en el trabajo durante sus pasantías y experiencias anteriores. Piense en otros aspectos además del trabajo en sí. ¡Hazlo divertido!

El proceso de la entrevista

Después de esperar unas semanas, ¡recibí un correo electrónico para comenzar el proceso de entrevista!

El proceso de mi entrevista se dividió en dos partes: una videollamada de la historia de mi vida y una entrevista técnica en el lugar.

Historia de vida

La videollamada de la historia de mi vida duró aproximadamente 45 minutos y fue con un reclutador del equipo de Adquisición de Talentos.

Según tengo entendido, el propósito de la historia de vida es que el reclutador te conozca a un nivel más personal. Quieren saber lo que no dice su currículum. Hablé sobre temas como mis viajes, intereses, pasatiempos, experiencias pasadas (nada técnico) y cómo desarrollé mi pasión por la programación.

Esta fue una de mis partes favoritas del proceso. Fue muy informal y sentí como conocer a alguien nuevo y compartir tu, bueno, ¡la historia de tu vida!

Si bien no había nada para lo que prepararse en esta parte del proceso de la entrevista, hice una lista de todos los diferentes temas de los que quería hablar. Lo mantuve en mi pantalla para asegurarme de no olvidar mencionar nada que considerara importante.

Creo que los elementos más importantes durante la historia de la vida son ser honesto , ser informal y conocer la historia de su vida . ¡Véalo como una conversación!

Técnico in situ

Un par de semanas después, recibí un correo electrónico para programar mi entrevista en el lugar. Iba a dividirse en dos partes: un análisis del proyecto personal y un problema técnico. Me iban a entrevistar dos desarrolladores.

Para la primera parte, necesitaba traer un proyecto en el que había trabajado mucho.

En ese momento, estaba planeando comenzar un proyecto para solucionar un problema que tenía en mi vida cotidiana: gastar demasiado dinero en comida de restaurantes.

Quería crear una aplicación de Alexa en mi Amazon Echo que fuera consciente de los ingredientes que tengo actualmente y sugiera recetas basadas en lo que tengo en existencia. Fue la oportunidad perfecta para golpear dos pájaros de un tiro.

Sin embargo, también quería golpear a un tercer pájaro. Quería aprender Ruby on Rails durante mucho tiempo. Dado que la plataforma de Shopify se basa en Rails, pensé que sería una gran idea usar Rails para crear mi aplicación Alexa.

Hice rápidamente el curso SoloLearn Ruby y aprendí los conceptos básicos de Ruby on Rails en la Guía de inicio oficial.

Luego, utilicé mis conocimientos recién adquiridos para hacer Alexa Fridge.

Durante esta parte de la entrevista, se me pidió que presentara mi proyecto desde todos los aspectos. Revisé el código y mostré cómo implementé varios elementos. También me preguntaron sobre mis decisiones de diseño.

No hace falta decirlo, pero debes conocer tu proyecto por dentro y por fuera para poder responder cualquier pregunta al respecto. Puede ayudar preparar algo de documentación de antemano (especialmente diagramas) para mostrar diferentes aspectos como su infraestructura, esquema de base de datos o cómo funciona una API que utilizó.

Por ejemplo, traje este diagrama para mostrar cómo se comunica mi servidor con mi Amazon Echo:

Creo que también es beneficioso si puedes traer un proyecto que puedas hacer una demostración. Es difícil comprender el significado de su trabajo si no puede mostrar el resultado.

Para la segunda parte de mi entrevista in situ, necesitaba resolver un problema técnico.

Me dijeron de antemano que este no sería un algoritmo para escribir en una pizarra (¡yay!). En cambio, era un problema que necesitaba tomar decisiones de diseño para resolverlo.

Para esta parte, realmente recomiendo aprender más sobre el diseño de sistemas . Debe tener una idea de cómo organizar aplicaciones web y móviles, cómo diseñar un esquema de base de datos, cómo autenticarse, etc.

Algunos de estos temas se aprenden durante una carrera de Ingeniería de Software, pero otros no. Recomiendo consultar el campo de entrenamiento de diseño de sistemas y alta escalabilidad de Hired In Tech. Ambas son fuentes excelentes para aprender sobre el diseño de sistemas y ver cómo las grandes empresas diseñan sus aplicaciones. Preste mucha atención a las compensaciones que vienen con cada decisión de diseño.

Cuando trabaje en problemas de diseño del sistema, asegúrese de indicar siempre claramente sus suposiciones y comprender los requisitos .

Además, ¡no dude en hacer preguntas si es necesario! Tienes dos desarrolladores en la sala contigo y puedes recibir ayuda de vez en cuando. Es tan importante hacer las preguntas correctas como responderlas (de todos modos, tienes Google para eso).

Por último, piense siempre en voz alta .Es muy importante que los entrevistadores sepan cómo piensas.

Intento pensar en voz alta tanto como sea posible durante este tipo de problemas, incluso si mi línea de pensamiento es incorrecta. Sin embargo, si está mal, es importante que me dé cuenta y me corrija.

La oferta

Aproximadamente una semana después, Shopify me contactó con una oferta y ¡la acepté!

Para llevar

Realmente disfruté de la singularidad tanto de la solicitud como del proceso de entrevista. ¡Me permitió mostrar más que solo mis habilidades técnicas!

Aquí hay un resumen de los consejos que compartí a lo largo del artículo:

  • Póngase en el lugar de un comerciante al crear la tienda en línea y sumérjase en su historia ficticia.
  • Al realizar el desafío técnico, busque la simplicidad y documente bien
  • Cuando escriba sus respuestas para las preguntas de la aplicación, haga un gran esfuerzo, sea honesto y muestre su pasión.
  • Durante la historia de vida, sé tú mismo y conoce tu historia de vida.
  • Para el sitio, traiga un proyecto que conozca bien y sepa por qué lo diseñó de la manera que lo hizo
  • Para el problema técnico, indique sus supuestos y requisitos, y piense en voz alta

¡Gracias por leer mi artículo!

Para obtener más actualizaciones, sígueme en Twitter.