Все що треба знати програмісту про інтерв'ю в корпораціях

Всім привіт!
Вітаю на каналі kostrub.online

Сьогоднішня стаття буде в форматі інтерв’ю, так як тему - “що потрібно знати програмісту і як отримати офер в корпорацію”, допомагатиме розкривати наш гість Діма Коструб. 
Він сам пройшов через всі кроки та з радістю поділиться своїм досвідом.

Діма, привіт! Розкажи, будь ласка трішки про себе та про те з чого починалася твоя кар’єра програміста?
Привіт, з радістю. Вже близько 10 років я являюся частиною ІТ. Ще будучи студентом, почав працювати Software Developer в продуктовій компанії Терасофт в Києві. Протягом року підтягував англійську та різні технології, для того щоб перейти в найбільшу аутсорс компанію України - Epam Systems.
Там попрацював 2 роки і дізнався, що у них є можливість релокації. Так як я завжди мріяв пожити та попрацювати за кордоном, особливо в епіцентрі розвитку світових технологій Кремнієвій долині, було прийнято рішення спробувати.
Уже через деякий час, я переїхав до Каліфорнії в Epam USA. Попрацював там на декількох маленьких проектах, а потім отримав пропозицію від якої не зміг відмовитися — попрацювати за контрактом на компанію Google.
Там я був цілий рік, але завжди хотів працювати на корпорацію напряму, без посередників. Тому невдовзі відправив своє резюме на позицію в компанію Amazon.  Зі мною досить швидко зв’язався рекрутер і я почав процес інтерв’ю. На фінальний етап полетів до Сіетла, штат Вашингтон і отримав job offer. Розглядалося 2 різні позиції в різних країнах: у Ванкувері, Канада та Берліні, Німеччина. Наразі працюю в Берліні на позиції Front End Engineer. 2 роки був частиною ритейл команди, а зараз уже в іншому департаменті, - Amazon Web Services (AWS).

Я помітила, що ти сказав, що починав кар’єру як developer, а зараз працюєш як engineer. Можеш, будь ласка пояснити чи є різниця і якщо так, то в чому вона?
В основному розробник, програмер або кодер працює по ТЗ (технічному завданню), яке надає замовник, а інженер — намагається вирішувати проблеми бізнесу.
Крім того, інженер відповідальний за випуск продукту, за розробку інфраструктури, за спілкування з клієнтами, за oncall та підтримку системи і т.д.
Тобто, інженер — це той самий девелопер, але з трохи ширшим спектром відповідальності.

Наразі, я також працюю в продуктовій компанії, де одна з команд — це аутсорс команда. І я помітила, що чим далі тим більше їх обов’язки перегукуються з обов’язками інженерів.
Чи погоджуєшся ти?

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

Як я розумію, процес інтерв’ю в аутсорс компанію та продуктову компанію буде теж відрізнялися?
Базуючись на власному досвіді, можу сказати, що так воно і є.
Аутсорс компанії в основному шукають людину на конкретний проект для конкретного замовника, де зазвичай уже використовується конкретний фреймворк чи мова програмування. Тому скоріше за все, співбесіда буде структурована на основі цих вимог.
Що стосується корпорації чи продуктової компанії, то вони шукають в першу чергу професіонала з фундаментальними знаннями алгоритмів, структур даних та базовими знаннями computer science технологій. Це дуже важливо, тому що у них, як правило, свій зоопарк технологій і ти повинен швидко їх схвачувати, а іноді навіть створювати нові.

Я думаю, всім більш менш всім зрозуміло яке воно інтерв’ю в Україні в аутсорс компанії: зазвичай це розмова з рекрутером, потім технічне інтерв’ю з командою і фінальне з замовником. Розкажи трохи про структуру інтерв’ю в корпорації?
Початок дуже схожий. Відправляєш резюме на відкриту позицію, зв’язуєшся з рекрутером напряму через LinkedIn, або ж через реферал знайомих (часто дієвий спосіб).
Якщо резюме було відібране, з вами зв’язується рекрутер і назначає дату і час на швидкий 15 хвилинний дзвінок, для того щоб перевірити вас на адекватність і обговорити наступні кроки.

Добре, рекрутер зв’язався, ви поговорили, що далі?
Далі може бути 2 сценарія:
  • Або вам відправляють декілька задач, які треба буде вирішити онлайн за якийсь певний обмежений час. Зазвичай це 2-3 задачі на алгоритми
  • Або відразу Phone Screening з інженером, який подзвонить і по відео зв'язку запропонує вирішити якусь задачу чи проблему в лайф за годину.

Як відбувається Phone Screening з інженером? Він запитує і ти просто маєш відповісти?
Не зовсім! Задається конкретна задача. Наприклад: відсортувати масив даних, або задача на бінарні дерева та пошук, і в текстовому документі ви повинні написати рішення і аргументовано пояснити його.

Можеш навести приклад цих задач?
Зазвичай це класичні задачі на структури даних та базові алгоритми. Приклади можна подивитися на сайті: topcoder чи glassdoor.

Що чекає кандидата у разі якщо він справився з задачами далі?
Далі найцікавіший і як на мене найскладніший етап — це етап tech interview.
До нього рекомендую дуже добре підготуватися, тому, що воно включає цілий цикл внутрішніх онсайт інтерв’ю.
Частіше за все цей етап уже проводиться в компанії і вас запрошують в офіс.
Як правило, це 5 інтерв’ю по 1 годині кожне з 5 різними людьми.
Більш того, співбесіда може проходити в іншому місті чи навіть країні. В цьому випадку компанія оплачує вам переліт, проживання в готелі та всі поточні витрати. Хоча зараз, коронавірус вніс свої корективи, тому навіть цей етап відбувається онлайн.

Тобто на етапі, коли кандидат подає резюме він не знає на якому продукті/проєкті він буде працювати?
Ти подаєшся в конкретну команду, але все потім може змінитися. Навіть я проходив співбесіду в Сіетлі, але працюю в Берліні. Тобто якщо ви проходите в корпорацію, ви проходити в саму компанію, а потім уже вирішується питання куди саме.

Давай трішки більше про ці 5 інтерв'ю. Яка їх ціль?
Їх задача протестувати кандидата в різних напрямках з різним фокусом.
Але на одному з них, скоріше за все, буде запитання на system design: вам запропонують спроектувати систему з нуля — наприклад розробити uber чи twitter.

Ого, спроектувати такого монстра як uber чи twitter?
Ну наприклад, що таке uber? Uber - це система замовлення таксі онлайн і вам в першу чергу потрібно розробити систему обробки замовлень, її прототип, мобільний додаток та якісь сервіси для спілкування з клієнтами.

Тобто код на цьому етапі писати не потрібно?
Ні, потрібно лише надати архітектуру цієї системи: або словами, або краще з вайтбордом.

А що на рахунок софт скілів? Чи важливі вони в корпорації?
Звичайно. Ви можете вирішити всі задачі, але отримати реджект (відмову) за свої soft skills. Тому що компанія шукає в першу чергу людину з якою буде приємно спілкуватися, яка буде проактивною та яка буде підходити команді та компанії.

Тобто якщо я геній-інтроверт і важко знаходжу спільну мову з людьми - це буде проблема?
Це може бути проблемою. Залежить від команди. Але якщо там всі генії-інтроверти, то це буде ідеальний кандидат.

Давай підсумуємо? Отже, всі 5 годин інтерв’ю відбуваються в один день?
Так, найчастіше ви маєте відстрілятися за один день :)

Оо, дуже інтенсивно! Але я надіюсь це все і кандидат дізнається результат в той самий день?
Не одразу, але так, це майже все.
Через деякий час, якщо ви пройшли цей етап, буде ще один кол з хайрінг менеджером. Але це вже не співбесіда, хоча теж не менш важлива розмова. Ви обговорюватимете job offer, де важливо теж грамотно себе продати, та узгодити умови працевлаштування.

Можеш сказати скільки приблизно часу зайняли всі етапи?
Залежить від вашого досвіду. Але якщо у вас уже є базовий фундамент, то я думаю що за 3 місяці можна підготуватися, плюс сам процес займає 1-2 місяці.

Ти сказав, що на підготовку варто виділити досить багато часу, іноді це декілька місяців. Чи можеш ти порекомендувати щось від себе? Як підготуватися до цього непростого марафону?
Потрібно розвиватися не тільки в технічному напрямку, але й прокачувати свої soft skills, свій профайл, щоб з вами взагалі зв’язалися. Що стосовно технічних знань, то тут би я радив сфокусуватися на фундаментальних речах: computer science, структури даних та базові алгоритми. Без них ви не зможете вирішити жодну задачу. Коли буде базове розуміння, ви вже зможете брати задачі одну за одною та намагатися їх вирішувати.

Підготовка це такий дуже широкий топік: що потрібно знати, на що звернути увагу, якими 
матеріалами користуватися! Якщо у наших читачів виникнуть конкретні запитання, чи зможеш ти на них відповісти?
Звичайно, з радістю!

Діма, дуже дякую. Це було реально цікаво та корисно.
Дякую і вам.

Якщо у вас є якісь запитання — задавайте їх в коментарях на youtube, спробуємо на всі відповісти.
Залишайтеся на зв’язку та підписуйтесь на канал:

Відео інтерв'ю:
#kostrub #kostrubonline #співбесіда #інтерв'ю #роботавкорпорації #якпройтиспівбесіду #програміст #інтерв'юпрограміста #технічніскіли #софтскіли #щотребазнати #основніетапи #досягнутиціль #навчання #самоосвіта #змінитироботу #знайтисебе #іткомпанія #стартап #роботаонлайн #віддаленаробота #ремоут #роботаздому

Дописати коментар

0 Коментарі