Як я пройшов стажування в Shopify

Сезон співбесід на літню практику 2018 року нарешті закінчився. Після більш ніж місяця співбесід та тестів у багатьох компаніях, я приєднаюся до Shopify як стажист-розробник.

У цій статті я хочу провести вас через процес подачі заявки, підготовки та співбесіди в Shopify. Я також хочу поділитися з вами кількома порадами, якими я користуюся, коли подаю заявку та отримую співбесіду на роботу.

Швидке введення

Зараз я студент університету Конкордія в Монреалі, Канада. Я закінчую третій курс докторантури з програмної інженерії.

Я також є частиною програми COOP, яка вимагає від мене трьох стажувань протягом бакалаврату. Перші два стажування я проходив в Ubisoft та Vigilant.

Моє останнє стажування відбудеться цього літа, і я буду працювати в Shopify в Монреалі.

Що таке Shopify?

Простіше кажучи, платформа Shopify дозволяє компаніям та приватним особам легко продавати товари в Інтернеті.

Shopify проведе вас під час оформлення магазину, управління вашими товарно-матеріальними цінностями, прийняття різних способів оплати та доставки. Існує навіть торгова точка (POS), яку можна використовувати в магазині!

Що стосується роботи в Shopify, вони виграли найкраще місце для роботи Glassdoor у Канаді 2017. Також відомо, що вони мають блискучих людей у ​​своїй галузі.

Процес подання заявки

Shopify має унікальний процес набору стажистів, і це зрозуміло, починаючи з процесу подачі заявки.

Щоб подати заявку, мені потрібно було виконати три завдання.

1. Створення магазину Shopify

Першим завданням було створення вигаданого магазину Shopify. Це був спосіб ознайомитись із платформою та зрозуміти, через що проходять продавці, створюючи інтернет-магазин.

Я створив японський магазин солодощів та кондитерських виробів. Я хотів зробити щось оригінальніше, ніж типовий магазин моди, краси чи електроніки.

Я думаю, що секрет цього кроку полягає у створенні вигаданої історії навколо вашого магазину. Тоді дизайн магазину та його інвентар повинні стати природними.

2. Виконання технічного завдання

Посада стажера-розробника-спеціаліста мала пов'язану з цим технічну проблему.

Завдання полягало у створенні валідатора для структури даних графіка. Я вирішив використовувати Python для цього.

Мені дуже сподобалось, як виклик був пов’язаний із платформою Shopify (або, принаймні, здавалося б), а не безглуздою алгоритмічною проблемою.

Я вважаю, що для цієї частини надзвичайно важливо зробити просте рішення. Оскільки існує так багато способів вирішити проблему, важливо також зробити своє рішення інтуїтивним та добре задокументованим . Для цього я чудово використав доктринг Python.

Нарешті, не йдіть далі, ніж вимоги проблеми, якщо це означає зробити ваше рішення більш складним. Це тобі лише зашкодить.

3. Відповіді на запитання щодо заявки

Останнім кроком процесу подання заявки була відповідь на деякі запитання.

Я писав про те, яку роботу я хотів би робити під час стажування, а також про те, яким був мій досвід у процесі подання заявки. Я також написав ідею для Hack Days (щоквартальний хакатон Shopify).

Я доклав багато зусиль, щоб відповісти на ці запитання. Як і у будь-якій заявці, кількість зусиль, які ви докладете до неї, чітко покаже, наскільки ви зацікавлені в роботі там.

Важливо також бути чесним щодо того, що ви пишете, і показати свою пристрасть своїми відповідями.

Для ідеї Hack Days спробуйте придумати щось, що могло б покращити ваше життя на роботі під час попередніх стажувань та досвіду. Подумайте про інші аспекти, крім самої роботи. Зробіть це весело!

Процес співбесіди

Зачекавши кілька тижнів, я отримав електронне повідомлення, щоб розпочати процес співбесіди!

Процес мого співбесіди був розділений на дві частини: відеодзвінок із історії життя та технічне інтерв’ю на місці.

Історія життя

Відеодзвінок із моєю історією життя тривав близько 45 хвилин і проходив разом з рекрутером з команди з набору талантів.

Наскільки я розумію, мета життєвої історії полягає в тому, щоб рекрутер знав вас на більш особистому рівні. Вони хочуть знати, про що не йдеться у вашому резюме. Я розповідав про такі теми, як мої подорожі, інтереси, хобі, минулий досвід (нічого технічного), і те, як я розвивав своє захоплення програмуванням.

Це була одна з моїх улюблених частин процесу. Це було дуже невипадково, і мені просто здавалося, що я познайомився з кимось новим і поділився своєю, ну, історією життя!

Хоча в цій частині процесу співбесіди не було до чого готуватися, я склав список усіх різних тем, про які я хотів поговорити. Я тримав це на своєму екрані, щоб переконатися, що не забув згадати все, що вважав важливим.

Я думаю, що найважливішими елементами життєвої історії є бути чесними , залишатися невимушеними і насправді знати свою історію життя . Розгляньте це як розмову!

Технічний на місці

Кілька тижнів потому я отримав електронне повідомлення, щоб запланувати своє співбесіду. Його збиралися розділити на дві частини: особистий аналіз проекту та технічну проблему. Я збирався взяти на співбесіду двох розробників.

Для першої частини мені потрібно було запровадити проект, над яким я провів значну кількість робіт.

На той час я планував розпочати проект, щоб вирішити проблему, що виникала у моєму повсякденному житті: витрачати занадто багато грошей на їжу з ресторанів.

Я хотів створити програму Alexa на моєму Amazon Echo, яка обізнана про наявні в мене інгредієнти та пропонує рецепти на основі того, що у мене є на складі. Це була ідеальна можливість вдарити двох птахів одним каменем.

Однак я хотів вдарити і третього птаха. Я дуже довго хотів вивчити Ruby on Rails. Оскільки платформа Shopify побудована на Rails, я вважав чудовою ідеєю використовувати Rails для створення мого додатка Alexa.

Я швидко пройшов курс SoloLearn Ruby і навчився основам Ruby on Rails в офіційному посібнику з початку роботи.

Потім я використав свої нещодавно вивчені знання, щоб зробити холодильник Alexa!

Під час цієї частини інтерв’ю мене попросили представити свій проект з усіх аспектів. Я пройшов код і показав, як я реалізував різні елементи. Мене також допитували щодо моїх дизайнерських рішень.

Само собою зрозуміло, але ви дійсно повинні знати свій проект всередині та зовні, щоб мати можливість відповісти на будь-яке запитання щодо нього. Це може допомогти заздалегідь підготувати деяку документацію (особливо схеми), щоб показати різні аспекти, такі як ваша інфраструктура, схема бази даних або як працює API, який ви використовували.

Наприклад, я привів цю діаграму, щоб показати, як мій сервер взаємодіє з моїм Amazon Echo:

Я думаю, це також вигідно, якщо ви зможете створити проект, який ви можете демонструвати. Важко зрозуміти значення вашої роботи, якщо ви не можете показати результат.

У другій частині мого інтерв’ю на місці мені потрібно було вирішити технічну проблему.

Мені заздалегідь сказали, що це не буде алгоритмом писати на дошці (так!). Натомість це була проблема, яку мені потрібно було прийняти, щоб вирішити дизайнерські рішення.

З цієї частини я справді рекомендую дізнатися більше про дизайн системи . Ви повинні мати уявлення про те, як упорядковувати веб- і мобільні додатки, як розробляти схему бази даних, як проводити автентифікацію тощо.

Деякі з цих тем вивчаються під час отримання ступеня програмного забезпечення, а інші - ні. Я рекомендую перевірити навчальний табір Hired In Tech's System Design та високу масштабованість. Обидва вони є чудовими джерелами, щоб дізнатись про дизайн системи та побачити, як великі компанії розробляють свої програми. Зверніть пильну увагу на компромісні варіанти, які приходять до кожного рішення щодо проектування.

Працюючи над проблемами проектування системи, переконайтеся, що ви завжди чітко висловлюєте свої припущення та розумієте вимоги .

Крім того, не соромтеся задавати питання, якщо вам потрібно! З вами в кімнаті двоє розробників, і ви можете час від часу отримувати допомогу. Поставити правильні запитання так само важливо, як і відповісти на них (у вас і так є Google).

Нарешті, завжди думайте вголос .Інтерв’юерам дуже важливо знати, як ви думаєте.

Я намагаюся мислити вголос якомога більше під час подібних проблем, навіть якщо мій хід думок помилковий. Однак, якщо це неправильно, важливо, щоб я це усвідомив і виправився.

Пропозиція

Приблизно через тиждень Shopify зв’язався зі мною з пропозицією, і я прийняв її!

Винос

Мені дуже сподобалася унікальність як заявки, так і процесу співбесіди. Це дозволило мені продемонструвати не лише свої технічні навички!

Ось короткий опис порад, якими я поділився у статті:

  • Поставтесь на місце продавця під час створення Інтернет-магазину та пориньте в їх вигадану історію
  • Роблячи технічний виклик, шукайте простоти і добре його задокументуйте
  • Пишучи відповіді на запитання щодо заявки, докладіть багато зусиль, будьте чесними та покажіть свою пристрасть
  • Під час історії життя будьте собою і знайте свою історію життя
  • На місці принесіть проект, який ви добре знаєте, і знайте, чому ви створили його так, як зробили
  • Що стосується технічної проблеми, сформулюйте свої припущення та вимоги та подумайте вголос

Дякуємо, що прочитали мою статтю!

Щоб отримати додаткові оновлення, слідкуйте за мною у Twitter.