fbpx
google-intern

Як київський студент стажувався у Microsoft і Google, частина 2

Андрію Омельяненку – 22 роки. Зараз він навчається на другому курсі магістратури КНУ ім. Шевченка (факультет комп’ютерних наук та кібернетики) та є інтерном у Microsoft. За його плечима вже два успішних стажування у цій компанії та ще одне у Google.

У першій частини інтерв’ю для TheJune Андрій у подробицях розповів, як потрапити на стажування у Microsoft: від подачі заявки до отримання оферу. У продовженні матеріалу – поради для новачків, різниця між стажуваннями в Microsoft і Google та багато іншої корисної інформації.

Нова команда, новий проект

Отже, від оферу на фултайм після першого стажування в Microsoft я відмовився. Повідомив рекрутеру, що планую йти на магістратуру, і мені запропонували повернутись наступного року як returning intern з підвищеною зарплатою та sign up бонусом. Інтерв’ю проходити не треба. Ти відразу приїжджаєш назад і потрапляєш у команду. Якщо по датам, перше стажування було після третього курсу, наступне – після четвертого.

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

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

Хоча саме на цьому стажуванні я був найбільш задоволений собою за кількістю виконаної роботи. Я працював над кількома додатками до VS Code – нова IDE від Microsoft, source code якої є у відкритому доступі на GitHub.

Додатки, над якими я працював, також знаходяться у відкритому доступі. І якщо на першому стажуванні для мого проекту був окремий branch, то цього разу всі зміни відразу вносились в master. Тобто вся моя робота точно потрапляла в продукти, якими користуються десятки тисяч інженерів. Періодично перевіряю, що там відбувається, і бачу, що мій код живе, команда над ним працює. І це приємно.

Нюанси стажування

Якщо розповісти про стек технологій, то на першому стажуванні це був SQL, трохи Machine learning і C#. На другому в основному TypeScript. До стажування мав упередження стосовно цієї мови, а виявилась крутою, після навіть використовував для особистого проекту. Рекомендую.

На другому стажуванні задача була ніяк не пов’язаною з тим, чим я займався минулого разу: потрібно було відобразити список підключених баз даних для веб застосунків в додатку AppService та створити можливість відкриття бази даних в Cosmos DB (інший додаток). Цікавим моментом було те, що ніхто до мене в команді не працював над взаємодією додатків між собою, не було шаблону, як писати API до них.

Цього разу я тісно працював з Project Manager. Ми постійно комунікували, він дізнавався для мене, чого саме хочуть користувачі від мого проекту. Це було круто. На першому стажуванні в мене був досвід такого-собі мікроменеджменту. Я був закритий в своєму проекті, ставив менеджеру забагато питань стосовно кожного кроку. А тут я з ним майже не спілкувався – в мене була команда, PM та ментор. В другій половині стажування почав відчувати себе повноцінним фултаймером. Оглядав pull requests інших членів команди, залишав їм коментарі, допомагав з їхніми задачами. Взагалі не було враження, що я інтерн. В цьому плані – дуже круте стажування, відчував, що багато чого встиг зробити, хоча й лишилось ще, над чим працювати.

Як стати інтерном Google

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

Якщо все пройшло успішно, ти заповнюєш анкету з побажаннями до проекту та міста, де стажуватись. Після цього тебе додають до списку інтернів. Це суттєва відмінність від Microsoft. Тут менеджери по ключових словах знаходять тих, кого хотіли би бачити інтерном в своїй команді. Після того, як тебе обрали, назначається співбесіда. У ході розмови ви придивляєтесь один до одного. За 30–45 хвилин потрібно зрозуміти, чи хочете ви працювати один з одним. І, що дуже важливо, за час співбесіди треба вирішити, чи хочеш ти три місяці працювати над запропонованим проектом. Цього разу в Microsoft я потрапив зовсім не туди, куди бажав. Тож займаюсь не тим, що мені цікаво. Раніше я не надавав цьому великого значення, але тепер вважаю: то є ключовою умовою для успішного стажування.

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

Тернистий шлях

З Google в мене пов’язано багато історій. Туди я потрапив з третьої спроби. Спочатку мені дали два інтерв’ю, а потім ще назначили третє. На ньому, я вважаю, мені дуже не пощастило з інтерв’юером. Перше, що я від нього почув: «Ну, взагалі-то я зазвичай по телефону проводжу інтерв’ю». А в мене якраз кілька днів назад поламався телефон. Було дуже дивно, бо зазвичай американці привітні, добрі, посміхаються, а тут такий початок. Потім ще й задача потрапила не зовсім адекватна, з дуже довгою передісторією про те, як цей інтерв’ювер сто років тому зі своїм другом працювали над програмуванням процесорів. То було моє найгірше інтерв’ю за всі роки.

Друга спроба: пройшовши три інтерв’ю, я потрапив на стадію відбору на проект. Це було перед початком четвертого курсу, я тоді тільки повернувся зі стажування в Microsoft. Того разу я подався на осіннє стажування, тож мав всього кілька тижнів на пошук команди. Рекрутер мені сказав: «Дедлайн до вересня». Незрозуміло, чому так вийшло. Зараз я вже знаю, що Google коли завгодно проводить стажування.

В результаті, в мене було одне інтерв’ю з командою в Google Ads. Я вважав, що воно пройшло нормально. На ньому мені більше розповідали, ніж задавали питання, тож я досі невпевнений, що пішло не так. Напевне, треба було показати більше захоплення. Після цього в мене не було більше інтерв’ю. І мене «заморозили».

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

Вдала спроба

Цього разу все пройшло гладко. На етапі вибору проекту в мене було два варіанта. Operation Research команда у Парижі та Shopping Search Quality в Цюриху. В першій команді були дуже круті задачі, які зав’язані на алгоритмах. Було приємно дізнатись, що можна розв’язувати такого типу задачі для заробітку. Туди я хотів більше, але коли отримав пропозицію від команди в Цюрих, рекрутер сказав: «Команда з Парижу тобі відмовила, тож в тебе є тільки цей варіант». І я погодився. А наступного дня мені написав менеджер з Парижу, чи готовий я йти до нього у проект. Виявилося, що знову рекрутери щось наплутали, а він просто хотів ще поспілкуватись й з іншими кандидатами.

Але я вже вирішив, що нічого змінювати не буду: Цюрих звучить непогано, команда та проект виглядають теж цікаво. Поїдемо – подивимось.

В Google стажування триває зазвичай 13 тижнів. Круто, що на тиждень більше, ніж у Microsoft, але часу все одно не вистачило. Сильно в подробиці вдаватися не буду, якщо коротко: потрібно було створити класифікатор веб-сторінок на ті, де продається один товар, де продається багато товарів та де нічого не продається. Для підготовки якісних тренувальних даних мені прийшлось опрацьовувати весь Інтернет з використанням більше двох петабайтів пам’яті! Протягом цього стажування зіткнувся з дуже великою кількістю різного роду проблем з дозволами: в Google з даними все дуже суворо.

Крім класифікатору, потрібно було покращити вже існуючий pipeline обробки даних. На результатах роботи мого класифікатора базувався інший класифікатор, який вирішував задачу класифікації доменів (сайтів). Цей проект був написаний попереднім інтерном, над яким трохи працював інший член команди. На жаль, там все було досить криво. Прийшлося багато часу витратити на зміну структури pipeline оброки даних, аби потім все можна було гарно масштабувати. В результаті машинним навчанням я займався лише останні два тижні. При тому, що під кінець мені треба було писати звіти, презентацію та документацію. Ці тижні я працював по 10–12 годин, а останні кілька днів взагалі сидів до другої ночі.

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

Насправді, проект виявився набагато складнішим, ніж на 13 тижнів. Ми з менеджером хотіли продовжити моє стажування хоча б на один місяць. В ідеалі – на два–три. Але через те, що я з України, продовжити візу мені не змогли. При цьому багато моїх друзів з Євросоюзу продовжували взагалі без проблем, все, що їм потрібно було зробити, – це повідомити менеджеру та почути від нього: «Ок». І все. Тут я трохи відчув дискримінацію.

Порівняння: Microsoft і Google

На жаль, Google не дає житло. Вони виділяють тобі сім тисяч – і ти шукаєш сам, де жити. Я починав стажування одночасно з моїм другом, з яким ми були на першому стажуванні в Microsoft. Тож ми вирішили разом знімати житло. На пошуки пішло доволі багато часу.

В соціальному плані стажування в Google було моїм найкращим. Попередні рази я спілкувався більше з українцями, іноді з росіянами. А тут в мене з’явилось дуже багато друзів з всього світу. Зазвичай коли кудись збирались, то мали не більше двох людей з однієї країни. Такої кількості хороших і розумних особистостей за такий короткий проміжок часу я ніколи не зустрічав до цього.

На відміну від Microsoft, Google майже не організовував ніяких заходів для стажерів. Але в нас був фултаймер-«інтертеймер» (intern + entertainment) – ми його так називали. Він часто звав нас кудись гуляти, дивитися фільми, грати в настільні ігри.

В Google я набагато більше часу проводив в офісі, бо в ньому є все, що потрібно для життя: масажні крісла, кімнати для сну, музична кімната, тренажерні зали, душ, ігрові кімнати з приставками, кімната для болдерингу, кінозал, кімната з настілками…

Напевне, найбільше в Google мені сподобалося мати безкоштовну їжу. Про харчування не потрібно думати взагалі, тільки на вихідних щось вигадувати. А так у тебе сніданок, обід і вечеря. В Microsoft є лише обід. І той за гроші. Коли я зараз хочу попрацювати довше, то беру на обіді їжу з собою, аби потім була вечеря. В свою чергу, атмосфера в Microsoft сприяє кращому work-life balance та допомагає виходити в світ. За період перебування в Цюриху я познайомився лише з однієї людиною не з компанії, і то вже після того, як стажування закінчилось.

Ще всередині Google є memgen – ресурс, де працівники публікують меми. Це дуже об’єднує. В Microsoft склалося враження, що люди мало знають про проекти за межами їх організацій. А тут якщо щось грандіозне відбувається, відразу публікуються меми. Якщо в компанії відбувається щось, що тобі не подобається, теж публікуєш мем. Люди це обговорюють, і як наслідок, завдяки дискусії, є шанс на це вплинути. В Microsoft, в свою чергу, краще доносяться базові принципи компанії, її культура та напрям, в якому вона рухається.

Загалом все більшою мірою залежить від команди. І Microsoft, і Google – величезні компанії, де підрозділи працюють над дуже різними речами, і в яких культура може сильно відрізнятися.

Теперішнє і майбутнє

Після стажування в Google я попросився на ще одне. Десь місяць назад мені сказали, що офер я отримав. Чесно кажучи, сумнівався, чи буде відповідь позитивна, бо зробив суттєво менше роботи, ніж хотів. Я багато працював наприкінці та дуже стресував, тому після цього мені навіть потрібно було місяць відновлюватися.

Зараз початок шостого курсу і я знову на стажуванні в Microsoft, знову в Сієтлі. Тут вже дуже багато друзів, я знаю все навколо, є улюблені місця тощо. Відчуваю себе тут майже як вдома.

Взагалі-то я хотів або в VSCode Tools for AI команду або в якусь поряд з Research. Але опинився в зовсім іншому місці – в Azure DevOps. Був трохи засмучений, що так трапилось. Зараз мій проект – додати певну feature до сайту. Це full-stack команда. І я працюю з SQL, TypeScript, React та C#. Але все одне це щось нове для мене, відчуваю, що вчусь. Зараз вже середина стажування. Наче все добре – в терміни вкладаюся.

Що далі? Я хочу взяти академку на рік і використати її продуктивно. Довго вагався, а зараз остаточно вирішив, що хочу йти в науку, а саме робити PhD закордоном.

За цей рік планую поїхати на стажування в Google ще раз. Це буде в Operation Research команді в Парижі, в яку я не поїхав минулого року. По результатам цього стажування хотілося би написати статтю. Проекти, між якими обираю, дуже круті. І по будь-якому з них може вийти щось гідне. Ще планую отримати трохи дослідницького досвіду за рахунок магістерської роботи. А після з кращим досвідом буду подаватись в різні університети. Вже маю приблизний список варіантів, але куди точно, буде більше залежати від потенційних наукових керівників.

А вже з досвідом PhD можна потрапити і в найкращі дослідницькі лабораторії: Microsoft Research, Google Brain, Facebook AI… Це неймовірно круті місця. Потрапити туди доволі тяжко. Навіть на стажування вони беруть тільки PhD студентів, бажано 2–3 року, які працюють над темами, суміжними до проектів компанії. А для повної зайнятості треба вже зарекомендувати себе і займатись тим, що потенційно може бути корисно компанії.

Поради

Перша порада – не думати, що це щось нереальне. Особисто знаю багатьох людей, які ніколи не займались олімпіадами та мали посередню англійську, але успішно отримували офери. Потрібно вмотивуватись та серйозно попрацювати. Підтягнути англійську хоча б до базового рівня. Ніхто не вимагає від вас бути fluent. Головна ціль, аби ти розумів інших, а вони – тебе. Компанії – міжнародні, де працюють люди з всього світу. Всі розуміють, що англійська – не рідна для більшості.

Обов’язкове вміння – розв’язувати задачі. На різноманітних ресурсах  (по типу Leetcode.com) багато хто ділиться, що їм давали на інтерв’ю. Тож для тренування є всі умови.

Також потрібно мати хороше резюме. Якщо ви навчаєтесь на другому чи третьому курсі, ніхто не буде вимагати великого досвіду. Але треба продемонструвати, що ви не байдикуєте: брали участь у якихось проектах чи хакатонах, чимось займаєтесь. В ідеалі – це працювати над якимось проектом в відкритому доступі. Можна обрати цікавий для вас проект на GitHub і почати мінімально його покращувати. Можливостей зараз дуже багато, а вклад в open source компанії дуже цінують.

Ще не потрібно подаватись тільки в топ-5 компаній. Треба в усі можливі, які тільки вийде знайти на LinkedIn чи просто в Інтернеті. Очевидно, якщо податися в сорок компаній, імовірність пройти хоч кудись набагато більша, ніж якщо надіслати заявку лише в п’ять. Всюди відправляйте резюме і сподівайтеся, що вам призначать інтерв’ю. Тож, необхідні умови такі: мінімальна англійська, вміння розв’язувати задачі, резюме з хоч-якимось досвідом. І не треба засмучуватись, якщо не вийшло з першого разу. В багатьох людей так. В мене також не вийшло. Але чим більше прикласти зусиль – тим краще результат.

Підписуйся на Телеграм TheJune, щоб не пропустити курси і стажування в ІТ.

Добавить комментарий

Ваш e-mail не будет опубликован.