Три тижні та 120 задач. Випускниця Оля Войчик про те, як потрапити в FAANG
- 19 черв.
- Читати 4 хв
Оновлено: 9 лип.
Оля Войчик, Software Engineer в Google та випускниця курсу Performance Engineering в CS Osvita, розповіла в блозі DOU про свій шлях хайрингу в Google в Польщі.
«Коли зʼявилася можливість спробувати свої сили в Google, я тоді не планувала змінювати роботу, не готувалася роками і не цілилася потрапити в FAANG. Я прийшла в програмування зі бізнес-аналітики, згодом опанувала C++, а до першого Google-інтерв’ю мала всього два тижні на підготовку».

З бізнес-аналітики в C++
Я вступила до КПІ у 2020 році на системний аналіз — напрямок, що поєднує математику з програмуванням. З третього курсу почала працювати в Польщі: спочатку стажувалася у відділі R&D, де команда займалася дослідженням операцій та машинним навчанням.
Побула там тиждень, побачила, що мій колега-стажер програмує на Python, і подумала, що теж так можу. Я мала бекграунд, знала машинне навчання, вивчала дослідження операцій. Сказала своєму ментору, що хочу програмувати.
Ментор дав мені задачу — написати фреймворк для регресійних тестів. Так відбувся мій перший switch: з бізнес-аналітики в розробку. Коли виявилося, що основний напрям роботи команди — це програми для оптимізації та дослідження операцій саме на C++, я перейшла на цю мову.
Загалом мій комерційний досвід на момент працевлаштування в Google складав близько двох років, з них більша частина — системна розробка на C++.
Google не був фінальною точкою маршруту
Google не був фінальною точкою мого маршруту, а з’явився несподівано. Паралельно з роботою я брала участь у навчальних групах з C++ в українській спільноті з підготовки до FAANG, про яку мені розповів брат. Саме він допомагав мені розібратися у внутрішній кухні ІТ, як працює рекрутинг та як краще структурувати резюме. Але подавати заявки в жодні FAANG-компанії я на той момент не планувала.
Мені написав рекрутер у LinkedIn. Я подумала, що варто спробувати, хоча я й не розв’язувала жодного лідкоду перед тим. Знала, що такі задачі є, можливо, пробувала колись для цікавості. В мене було 2 тижні, щоб підготуватися до першої співбесіди.
Я довго вагалася: попередня робота мені подобалася — математика, машинне навчання, цікава бізнес-логіка. Перед прийняттям офера написала трьом-чотирьом українцям у LinkedIn, які вже працювали у Google, запитала, як там насправді. Усі відповіли одне й те саме: іди, нудно не буде.
Кожен мені писав: не переживай, йди в Google, наберешся досвіду. І вони всі казали правду — нудно тут не буває.
Технічний фундамент — база & ґрунт
Ще під час з хайрингу в Google я паралельно проходила курс Performance Engineering від Івана Петрушенка в CS Osvita. Закінчила навчання вже під час онбордингу в Google. І ця програма виявилася корисною на несподіваних етапах хайрингу.
Найбільш потрібним для мене виявився розбір перформансу різних контейнерів у C++ і їхньої внутрішньої різниці. Один із найяскравіших кейсів, який я пам’ятаю й досі, — оптимізація роботи мап. Тож коли я прийшла в Google і зіткнулася з Abseil — розробленою в компанії open-source бібліотекою, яка слугує ефективнішою альтернативою стандартним структурам, — я відразу зрозуміла, чому тут віддають перевагу саме цим рішенням.
Також на курсі багато часу займав профайлинг — і він виявився одним з найпотрібніших інструментів у реальній роботі на моїй новій позиції.
Алгоритми — це пріоритет номер один, щоб потрапити в Google. Але не варто забувати про те, що треба заглиблюватися в бізнес-логіку. Коли починаєш цікавитися — а чому нам це взагалі треба вирішувати? А чи можемо ми цього не вирішувати? Хто наші користувачі? Навіщо ми це робимо? — ти починаєш думати трохи далі, аніж просто дивитися на код.
Етапи хайрингу зсередини
Загалом процес зайняв кілька місяців — з урахуванням очікування відповіді після інтерв’ю. Самих інтерв’ю було п’ять, плюс team matching наприкінці.
1. Розмова з рекрутером // неформальний скринінг. Тут потрібно було відповісти на кілька технічних питань: яка складність такого-то алгоритму, у чому різниця між алгоритмами сортування. Інші кандидати, за її словами, таких питань не отримували — все залежить від рекрутера. Це зустріч-перевірка. 2. Перше coding інтервʼю // розвʼязання алгоритмічної задачі. Задача, яку ви отримаєте на цьому інтервʼю, подібна до усіх наступних, які вам зададуть. Якщо проходите, вас запросять на наступний блок, якщо ні, то тут процес завершується. 3. Три coding інтервʼю // різні задачі, різні інтерв’юери. Одне з інтервʼю було не на класичний алгоритм, а на дизайн структури даних — «як би ти задизайнив таку структуру». Не system design, але близько до нього за форматом мислення. Примітка: Зараз Google проводить три, а не чотири coding-раунди. 4. Behavioral інтервʼю (Googleyness) // ситуаційні питання про минулий досвід. Ця розмова точно потребує окремої підготовки: важко згадати конкретну ситуацію прямо під час інтерв’ю, якщо не думав про це заздалегідь. Я готувала список можливих питань за два дні до раунду і записувала конкретні ситуації з роботи, які б могли охарактеризувати мене. 5. Team matching // коротка розмова-знайомство з менеджером потенційної команди. Ви спілкуєтеся з своїм майбутнім менеджером про бекграунд, завдання команди, виклики та очікування. Після цієї розмови я чекала три тижні: перша команда, куди мене хайрили, закрила позицію. Рекрутер щотижня тримав мене в курсі про хід справ і зрештою запропонував подібну роль в іншій команді.
Пройшовши цей шлях я точно знаю, що хотіла б порадити тим, хто тільки на його початку:
01. Вивчай шаблони, а не задачі. Знаючи загальний підхід до класу задач, вирішиш будь-яку його варіацію. 02. Проходь задачі рандомно з різних тем, а не послідовно. Імітуй умови реального інтерв’ю. 03. Порівнюй своє рішення з іншими. LeetCode показує complexity за часом і пам’яттю — використовуй це. 04. Behavioral потребує окремої підготовки. Записуй та проговорюй конкретні ситуації заздалегідь, не намагайся згадати їх прямо під час розмови — вийде поганенько. 05. За можливості організуй собі mock-інтервʼю. Це допомагає навчитися презентувати свої думки вголос та боротися зі стресом в моменті. А ще це шанс отримати фідбек на ті нюанси, які самотужки важко помітити.
Повну версію матеріалу читайте на DOU.





