История одной стажировки

Всем привет. Сегодня у нас история Насти о том, как она два раза стажировалась, и в конце получила оффер в Google на fulltime.

Всем привет! Меня зовут Настя. Я стажировалась в Google два раза, а в этом году мне сделали оффер на фул-тайм. Сегодня я хотела бы поделиться с вами опытом. В моей истории есть несколько не совсем обычных моментов – например, меня Google сам нашел, у меня не было собеседований при конверсии, а еще так получилось, что на всех хост-матчингах я находила команды с первого собеседования. Часть из этого – чистая удача, часть – следствие того, что я очень-очень старалась. В любом случае, я думаю, что мой опыт будет кому-нибудь полезен. Постараюсь и про процесс, и про эмоции, и немножко советов тоже будет! Обо все по порядку. Поехали 🙂

И, да, “All opinions are my own” 🙂

Подача

На далеком третьем курсе мне пришло письмо с заголовком “Google Internships 201x”, которое повергло меня в шок. Я сначала подумала, что это спам, и долго не могла поверить, что автор письма – это настоящий рекрутер Google, который нашел меня на GitHub. Я до сих пор искренне не понимаю, что конкретно было привлекательным в моем аккаунте – он состоял в основном из домашек по универу и open source-проекта нашей кафедры. Но что-то им все-таки понравилось, со мной связался рекрутер и предложил пройти собеседования на стажировку. Я сначала долго колебалась, соглашаться или нет, потому что первые три года бакалавриата были для меня ужасно тяжелыми. Потом приняла однозначное решение – отложить до следующего года, когда у меня будет время подготовиться к собеседованиям. Оглядываясь назад, могу сказать, что на тот момент это было очень правильным решением.

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

Подготовка к интервью

В те года (кажется, это было так давно!) я была совсем молодая и зеленая и еще не знала, как готовиться к интервью. К счастью, у меня были друзья, которые дали несколько советов. В первый раз подготовка все равно получилась довольно сумбурной. Но тем не менее за пару месяцев до первого интервью у меня получилось успеть следующее:

  • прорешать и разобрать много задач из Cracking the Coding Interview
  • прочитать самое важное из Algorithms Design Manual
  • выписать себе основную теорию для запоминания
  • пройти курс по алгоритмам и курс по C++
  • пройти пару мок-интервью
  • подтянуть английский (я занималась в языковой школе + смотрела сериалы на английском)

Интервью

Несмотря на все мои старания, первое интервью вышло не очень. Все-таки лучше было пройти побольше моков и пособеседоваться в другие компании тоже. Я вроде со всем справилась, но так сильно переживала, что постоянно в чем-то запутывалась. Было очень страшно 🙂 Еще мне попался интервьюер с необычным для меня акцентом, и приходилось прикладывать много усилий, чтобы услышать, о чем речь. В итоге – стресс, ошибки, попытки совладать с собой. Сами задачки были на алгоритмы – простая в начале, потом посложнее.

Второй интервью вышло получше. Я немного расслабилась и перестала сильно паниковать. Сейчас мне кажется, что это интервью тоже прошло очень не идеально, но я понимаю, что для второго реального собеседования в жизни это было ок. Была небольшая задачка на теорвер, а потом большая на знание C++.

После первых двух интервью рекрутер позвонила и сказала, что они хотят провести третье. Это было довольно логично – я думаю, они прекрасно понимали, что я очень переживаю, а также увидели какой-то прогресс от первого интервью ко второму.

Третье интервью было самым классным. Тут я с уверенностью могу сказать, что с ним я справилась отлично. Мне дали большую задачу на несложные алгоритмы и структуры данных. Как мне кажется, у меня получилось продемонстрировать и знание базовых алгоритмов, и некоторых особенностей C++, и умение писать красивый код.

После последнего интервью со мной довольно быстро связались и сказали, что переводят в host matching для поиска проекта. Помню, мне это казалось чем-то невероятным 🙂

Host matching

Через некоторое после перехода в host matching мне сказали, что со мной хочет поговорить хост из Дублина. Мне предлагали позицию Site Reliability Engineering Intern в Ads SRE. Во время интервью мы с хостом в основном говорили о том, чем я буду заниматься, и о моих предпочтениях. Надо сказать, я тогда вообще не знала, что такое “site reliability”. Звучало пугающе, но интригующе 🙂

Руководитель прямо на интервью сказал, что его все устраивает, и скоро у меня на руках был оффер. Я не знала, насколько мне понравится Дублин и site reliability, но я точно знала, что нужно попробовать!

Первая стажировка

Долгий визовый процесс, ожидание лета – и вот я в Дублине. Тут меня поджидал сюрприз: оказывается, мой руководитель до моего приезда успел перевестись в Network SRE и забрать меня с собой 🙂 Я удивилась, но не помню, чтобы это как-то меня расстроило или обрадовало. В мыслях было только “О боже, я работаю в Google, готова делать что угодно” 🙂

Мои задачи на стажировке в основном были связаны с автоматизацией процессов в Network-команде. Я писала сервисы на Go, тулы на Python и немножко фронт на JavaScript. Мои коллеги были моими пользователями, и можно было прямо на месте смотреть, как мой код уходит в production и им начинают пользоваться.

Мне кажется, я проявила себя неплохо. Я очень старалась, слушала руководителя, старалась не повторять ошибок. Как итог, узнала очень много нового о технологиях и о процессах Google, а также на собственном опыте прочувствовала, как важны масштабирование и автоматизация.

Из-за неопытности были и вещи, которые, как мне кажется, я могла бы сделать лучше. Например, я в основном “просто программировала”, а надо было больше общаться с командой (тем более, что они были моими пользователями) и больше вникать в глобальные проблемы и проявлять инициативу, а не просто делать то, что говорит руководитель. Не могу себя сильно винить за это – все-таки, это была первая работа в моей жизни. Да и на стажировке между инициативностью и своими проектами нужен баланс. На задачи стажеру отводится всего 3-4 месяца, и нужно успеть как можно больше.

Мне запомнился один момент, когда я помогла в команде в “экстренной ситуации”. Нам пришло много тикетов, с которыми нужно было осуществлять много действий, и я за два часа написала небольшую тулу для автоматизации, тем самым значительно ускорив обработку тикетов. Помню, меня даже хвалили за оперативность.

Помимо работы было много и всякого классного и веселого. Google организовывал эвенты: экскурсия по ферме, походы в бары и рестораны, музей Гиннеса, Гэльские игры. Ну и сама я себя старалась развлекать – как развлечениями в офисе (была в восторге от бассейна и барабанов!), так и прогулками по Дублину.

К Дублину у меня сложилось неоднозначное отношение. В основном из-за погоды. В июле – августе там было тепло и совсем немного дождей, но с сентября-октября начался какой-то ад 🙁 Все серое, темное, повсюду вода 🙁

Ну а сам город вроде ничего. Для постоянной жизни он мне показался скучным, но было, что посмотреть – например, мне очень понравился центр. Там просто хорошо и красиво 🙂

Host matching 2

Моей главной целью после первой стажировки стало получение оффера на вторую. К фул-тайму я тогда морально не было готова, поэтому не стала даже пытаться конвертиться.

Для returning interns сейчас просто отличные условия, если они хотят остаться на вторую стажировку. Основной критерий отбора – это отзывы ревьюеров. Если интерн был на обычной стажировке, то для перехода в host matching на следующий год достаточно положительных отзывов ревьюеров с прошедшей стажировки. Если интерн был на STEP-программе (стажировка для 1-2 курсов бакалавриата), могут попросить пройти одно интервью. Но могут и не попросить – тогда вообще все супер.

Моя первая стажировка прошла хорошо – комиссия направила меня сразу на host matching. Я хотела попробовать что-то новое, поэтому кардинально сменила локацию и направление – подалась на SWE в США. Также я решила ограничиться Bay area и Seattle/Kirkland, так как хотела в определенную часть штатов.

Первое собеседование у меня было с руководительницей из YouTube kids из MTV. Еще до разговора я поняла, что это проект моей мечты, а после нашей беседы только убедилась в этом. Дело в том, что YouTube – мой любимый продукт Google, а YouTube kids взаимодействует со многими частями большого YouTube. Это просто безумно интересно 🙂

Второе собеседование было с руководителем, который предлагал проект, связанный с SRE и Research. Тоже из MTV. Меня не очень зацепило, потому что хотелось попробовать SWE + я не люблю (возможно, пока) Research.

Сами собеседования были по стандартной схеме. Мы говорили о том, чем предстоит заниматься, и снова о предпочтениях.

Где-то через неделю после первого собеседования мне написали, что берут YouTube kids! Я согласилась и с удовольствием подписала оффер 🙂

Хоть у меня и не было больших сложностей с хост-матчингом, я бы рекомендовала подумать перед тем, как подаваться в штаты. Во-первых, поиск проекта в США сейчас ограничен 6-ю неделями. Во-вторых, у меня по некоторым причинам сложилось впечатление, что в США с нашего континента берут в основном более опытных кандидатов. Под “более опытными кандидатами” я подразумеваю тех, у кого есть предыдущие стажировки в Google или в других известных зарубежных компаниях.  А в этом году я от знакомых слышала, что даже у returning interns были проблемы с подачей в США. Как я понимаю, рекрутеры очень просят подаваться в Европу, чтобы потом был шанс сконвертиться в ту же команду, в которой стажировался. С США с фул-таймом все сложнее, потому что если у тебя нет права на работу, то придется играть в лотерею H1B. В связи с этим многие компании, включая Google, предпочитают не рассматривать таких кандидатов на фул-тайм в США. Как следствие, стажер США не сможет сконвертиться в свою команду.

Поэтому если хочется оффер на стажировку любой ценой, лучше начать с Европы. Либо делать dual processing (висеть в процессе и в США, и в EMEA), если разрешат.

Вторая стажировка

Моя вторая стажировка прошла еще лучше первой.

Работала я в основном над стадией генерации видео/каналов/плейлистов для домашнего экрана YouTube kids. Нужно было вносить изменения в алгоритм, добавлять всякие фильтрации и затем смотреть, как это все влияет на финальных кандидатов. Я работала в основном с C++ и параллельной библиотекой. Получилась Big Data во всей красе 🙂 Очень ответственно и интересно.

Еще я писала внутренние тулы для нашей команды контента на Python, и по-мелочи на Go.

По результатам эта стажировка показалась мне более успешной. По крайней мере, я начала замечать, что я расту как специалист. Я не помню, как это произошло, но мне стали приходить вполне логичные идеи по рабочему процессу, о которых я раньше не думала. Например:

  • решила, что буду вести гуглодок, куда буду записывать несрочные вопросы для обсуждения на митинге 1:1 => у нас всегда был план встречи; туда же я скидывала все связанные ссылки => было просто безумно удобно, сильно экономило время на митинге + структурировало информацию; и туда же мы с руководительницей что-то дописывали по ходу митинга => у меня всегда были заметки со встречи и можно было вернуться к ним в любой момент
  • когда узнала, что коллега из моей команды занимается смежной с моей задачей, организовала с ней митинг, обсудила вопросы, передала основную суть моей руководительнице, а также добавила коллегу к ревьюерам своей задачи
  • если были какие-то вопросы, которые явно надо было спрашивать не у руководительницы (“а почему вот эта команда использует вот этот клиент, а не вот этот”) – находила людей, задавала вопросы, ставила руководительницу в cc, чтобы она была в курсе дел
  • искала баланс между “do your homework” (пытаться найти ответ самому) и “не бояться просить помощи”
  • хорошо взаимодействовала со вторым ревьюером, чтобы он был в курсе дел и давал своевременно фидбек (добавляла его во все ключевые “пул-реквесты”, ставила митинги)
  • написала хороший final evaluation с картинками и ссылками => моим ревьерам было проще описывать результаты моей стажировки, ведь уже был готов полный список задач с подробностями

Закончилось все отлично 🙂 Много всего сделано, код пошел в production, и я была очень довольна собой.

Помимо работы снова были всякие развлечения – на этот раз еще больше. Google организовывал кучу мероприятий – как чисто для интернов, так и общие для всего офиса. Ну и сами мы с другими ребятами-интернами находили, чем заняться. Долина во многом “деревня” (отсутствует ощущения города), но для стажировки, мне кажется, это идеальное место. Чего стоит один офис Google Mountain View с кучей интересностей типа игровых комнат, боулинга, скалодрома (и т.д.). Я еще и успела несколько раз съездить в головной офис YouTube в San Bruno, чтобы пообщаться с коллегами. Также мы с ребятами съездили в Лос-Анджелес, оставшись в полном восторге от Universal Studios.

И погода, конечно, огонь. Чудесное лето 🙂

Hiring Committee

При конверсии в фул-таймеры в Google обычно рассматриваются две вещи: отзывы ревьюеров со стажировки и результаты двух интервью. Как я понимаю, отзывы гораздо важнее. Одно дело оценивать тебя в течение 45 минут интервью, другое – в течение 3-4-ех месяцев, когда ты у гуглеров прямо перед носом.

Где-то в середине стажировки у меня была встреча с рекрутером, где меня обрадовали, что так как я returning intern, меня могут освободить от интервью вовсе. Для этого отзывы со второй стажировки должны быть тоже однозначно позитивными. Я и до этого очень старалась, но дополнительный стимул меня прямо окрылил! До этого мне пару раз знакомые говорили, что такое бывает, но одно дело – слухи, другое – когда твой рекрутер тебе это говорит 🙂

На всякий случай я все-таки попроходила моков, но мои старания старания на стажировки все-таки не прошли даром – отзывы были отличными, и я успешно прошла hiring committee на SWE без интервью.

Host matching 3

Сейчас при конверсии в EMEA есть следующее правило – если идешь на Site Reliability Engineer, то сначала подписываешь оффер в какой-то город, а команду тебе уже ищут примерно за 3 месяца до начала работы. На Software Engineer правила несколько другие – нужно сначала найти команду и город, а потом уже делают оффер

В этом году довольно долго определялся headcount на SWE, поэтому между hiring committee и началом поиска команды у меня прошло больше 5-ти месяцев. Еще все немного осложнялось тем, что я по личным причинам подавалась только в Мюнхен. Это среднего размера офис, и, как следствие, там не так много мест.

После того, как headcount определился, со мной связались две команды из Chrome. Интервью были по стандартной схеме, но на этот раз помимо проектов меня интересовали также вопросы “а сколько будет on call”, “а как у вас митинги организованы”, “а сколько будет командировок”, “а в каких странах у вас другие части команды” и прочее, что на фул-тайме играет роль. Обе команды согласились меня взять, и я выбрала ту, что больше понравилась.

Потом был executive committee для окончательного подтверждения оффера – и FTE-оффер на руках 🙂

Меня еще ждет куча волнений, связанных с визовым процессом. Но это уже не так страшно по сравнению с многоступенчатым процессом найма в Google.
В заключение

Что могу сказать? Сейчас кажется, что не было ничего супер-сложного. Но на самом деле очень большой путь пройден и много сил вложено. И это того стоило!

Спасибо, что были со мной и дочитали до конца 🙂