Как я не попал в Google

0
1636
views

На DOU.UA часто обсуждают алгоритмы и подходы к переходу в крупные компании из Кремниевой долины. Для многих работать в FAANG — мечта. Недавно редакция сайта DOU опубликовала статью одного разработчика, который анонимно поделился своей историей прохождения собеседований в Google. Представляем вам перевод этой статьи.

Я хочу поделиться своей историей провала и рассказать о марафоне продолжительностью более полугода под девизом «Пройти собеседование в Google и получить офер с суммой, в которой будет больше пяти нулей».

Хочу получить офер Google и отказаться

Сейчас я работаю лидом большой команды, сочетая обязанности People и Project Management. Код не писал уже некоторое время и вовсе не искал новую работу. Рекрутеры время от времени пытались добавляться в друзья в LinkedIn или присылали корректные личные сообщения с описанием своих вакансий.

В январе я получил сообщение от сорсера из Google с предложением пообщаться. «Хмм, а почему бы нет? Ничего не теряю», — подумал я. А еще было бы круто получить офер и отказаться!

Не скажу, что искал работу, но от мысли «хочу офер от Google» глаза загорелись.

Во время первого звонка сорсер рассказал, что они ищут человека на должность SRM (Site Reliability Engineering Manager) с возможностью релокации в Дублин. Именно в дублинcких Silicon Docks расположен один из крупнейших хабов Google в Европе.

Во время разговора специалист описал позицию и спросил, готов ли я релоцироваться. После утвердительного ответа он пояснил дальнейшие шаги. Оплату затронули поверхностно, и конкретные цифры тогда не прозвучали.

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

В названии должности есть два словосочетания, которые нечасто используются на территории нашей айтишечки: Site Reliability Engineer (SRE) и Engineering Manager (EM).

SRE — это симбиоз DevOps-инженера и инженера поддержки в понимании Google. SRE не только Kubernetes крутит, но и обеспечивает работоспособность сервисов, и вообще включается на ранних этапах в разработку системы (или сервиса) для реализации нефункциональных требований. Об этом есть даже отдельный сайт и несколько книг.

EM — это менеджер, который достаточно технический, чтобы делать code review и фасилитировать команду к принятию технических решений. Значительной частью задач EM является People Management. EM — это не Project Manager.

Стоит также обратить внимание на описание вакансии на сайте Google. Она поверхностная, и многие из кандидатов могут сказать, что он (или она) точно подходит! Это сделано для того, чтобы сюда направилось как можно больше специалистов, а дальше уже пойдет тщательная проработка и отсеивание.

Итак, после такого формального разговора я получил письмо с описанием трех шагов к выполнению: Apply, Googlers, Scheduling.

Первый из них — Apply — достаточно необычный шаг для украинских реалий. Сорсер попросил самостоятельно податься на вакансию. То есть как будто я сам пришел в Google, хотя меня вроде бы нашли.

Второй — Googlers — тоже не популярен у нас: нужно обратиться к людям, которые работают в Google и могут дать обратную связь о вас. Поиск в собственной сети в LinkedIn показал десять человек, я отправил контакты трех.

Последний, третий шаг самый простой — предоставить несколько вариантов времени для прохождения интервью.

Кроме алгоритма из трех шагов, в письме были документы и ссылки для подготовки к первым двум собеседованиям: code review и management fundamentals.

Во время телефонного разговора с сорсером мы договорились, что техническим собеседованием будет code review на Python. Google предлагает готовиться при помощи их гайда по стилю программирования, вспомнить или выучить алгоритмы, а также потренироваться на TopCoder, Project Euler и careercup.com.

И еще дали ссылку на YouTube, как происходит собеседование (но обещали, что оно будет адаптировано к менеджерской позиции).

Для management fundamentals рекомендовали ресурс re:Work, статью HBR и саморефлексию с выпиской примеров и поведения в различных ситуациях.

Для саморефлексии предоставили ориентировочно 15 вопросов, в частности:

  • какими командами руководил,
  • сколько в них было людей,
  • как удавалось улучшать производительность команды,
  • подходы к Career Development инженеров,
  • как менеджерам оставаться связанными с технологиями.

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

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

Для подготовки я взял немногим больше месяца и договорился о собеседованиях на конец марта. Готовился по рекомендациям. Для code review перечитал книгу об алгоритмах и структурах данных и прошел 50 задачек на LeetCode. Для team management проработал ресурс re:Work, а результаты саморефлексии записал в блокнот.

Конечно, пересмотрел ресурсы для вдохновения о Дублине и Ирландии — инстаграмные локации, места для собственного хобби, а также стоимость квартир, проживания и, что очень важно, темпы вакцинации!

Что касается последнего, то ситуация была странной. Информация о прививках есть на официальном сайте. Вакцинация началась в январе 2021 и по состоянию на конец марта 13% населения (637 000) получили по меньшей мере одну дозу. Для сравнения: в Украине одну дозу вакцины в то же время получили 267 000 человек.

Забегая вперед, скажу, что в мае 2021-го информация о вакцинации в Ирландии перестала обновляться. Это случилось из-за кибератаки на информационные системы здравоохранения.

Казалось бы, в Ирландии крутое IT и такие системы должны быть суперзащищенными, но есть проблема: оплата работы в государственном секторе значительно ниже, чем в FAANG.

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

Собеседования в FAANG — это марафон или даже вторая работа

За несколько дней до интервью присылают email-чек. Мол, не забудьте, что скоро собеседование, посмотрите, как пользоваться Google Meet, и почитайте еще раз о компании.

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

Первая — реализация стека, мы анализировали эффективность и гибкость (а если нужно добавить новую операцию, эффективно ли будет работать?).

Вторая — обработка файла (код был плохо написан, и надо было в нем покопаться).

Разворачивать красно-черные деревья не нужно (хотя я к этому был готов!). Также не было знаменитых задач о теннисных мячиках.

Работа с кодом происходила онлайн через Google Virtual Interview. Это такая себе эмуляция работы на доске, но с подсветкой синтаксиса выбранного языка программирования (других фич IDE не предусмотрено).

Во время подготовки я понял, насколько соскучился по коду и алгоритмическим задачам.

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

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

После предоставления положительного ответа меня передали другому рекрутеру.

Уже во время звонка с ним я узнал, что меня рассматривают на первый уровень для SRM — L6. На уровень L5 Google не нанимает, а выращивает из собственных специалистов.

Для понимания уровней есть прекрасный сайт Levels.fyi, на котором можно посмотреть ориентировочные зарплаты различных специалистов. Так, L6 может получить офер с пятью нулями!

Следующий шаг — это еще три собеседования. Уже знакомое code review, тогда еще не известный мне non-abstract large scale design (NALSD) и leadership and Googleyness.

На этот раз для подготовки мне прислали новый и больший email. 25% письма занимали Tips for Mental Preparedness: не расстраивайся, фокусируйся на процессе, найм в Google — это взаимодействие (у нас тоже работают разные люди, у всех разный стиль и подход к собеседованию).

Для code review важно не только понимание языка программирования и основных библиотек, но и выбор структур данных, стиль, эффективность и идиоматичность кода.

Рекомендовали проработать ресурсы Hackerrank, Pramp и книгу Cracking the Coding Interview, а также книги по языку программирования. В моем случае — Fluent Python и Effective Python.

В отличие от management fundamentals, leadership-интервью предполагает ролевую игру и определение ваших действий как лидера в определенных ситуациях.

Например: «Нужно открыть новый офис в Африке» или «Вы становитесь CEO новой компании. Что будете делать, какие препятствия видите?».

К ним я готовился так, как и к предыдущим: опять LeetCode и чтение кода с ответами на задачи на GitHub, еще раз прошелся по заметкам собственной рефлексии, и, конечно, просмотрел видео на YouTube типа What Does A Google Engineering Manager Do?

А вот к NALSD нужно было готовиться с нуля. Когда впервые о нем услышал, не совсем понял, с какой стороны заходить. Помогли курсы по архитектуре, подготовка к System Design интервью (Pragmatic System Design и The Complete Design Interview Course) и общий курс по прохождению собеседования. Все это — на Udemy.

Самое удивительное — это потребность выучить на память цифры для back-of-the-envelope calculations. Например, прохождение пакета данных между дата-центрами в Нидерландах и Калифорнии и обратно занимает 150 мс. Но главный вопрос, который нужно задавать себе, — может ли мое решение масштабироваться в 10 раз?

Все три интервью были назначены на один день во второй половине мая. Отмечу, что процесс назначения собеседований затянулся на две недели. Причем я несколько раз писал в Google и спрашивал, не забыли ли они обо мне.

В доковидном мире второй этап был бы визитом в офис Google. Это был бы насыщенный день с маркерами у доски. В нынешних реалиях интервью происходят онлайн. Все собеседования были интересные, хотя и классические.

На code review анализировали код rate limiter (его корректность, эффективность и возможность тестирования) и даже немного поговорили о механических клавиатурах!

На leadership задавали вопросы в лоб: что делать CEO новой компании. Во время NALSD-интервью нужно было разработать систему централизованной обработки логов с распределенных локаций. Такие решения уже есть, но я с ними не сталкивался на практике… В течение собеседования мы нырнули в протоколы взаимодействия между серверами и рассмотрели различные варианты передачи логов. Когда пришли к сохранению данных, я уперся в SQL-решения, хотя и вспомнил о шардинге.

Все семь собеседований на Engineering Manager пройдены, но Google не для тебя. По крайней мере на этот раз

Photo by Quino Al on Unsplash

После очередных двух недель рекрутер назначил еще одну встречу. Он сообщил, что я справился с code review, а вот leadership и NALSD стоит пройти повторно. You did not quite hit the mark! Что ж, я взял еще один месяц на подготовку.

И перешел от просмотра видео к активному чтению различных курсов на Educative (Behavioral Interview, System Design Interview, Advanced System Design Interview) и материалов.

Курс Behavioral Interview предоставил еще больше вопросов для саморефлексии (всего 40-50 вопросов).

Для leadership-части я осознал, что нужно искать больше примеров на личном опыте. Google смотрит на него, а не на теорию. Поэтому я создал перечень типовых вопросов и для каждого придумал ответ («какая самая большая неудача и чему научился», «какие конфликты были и как решал» и т.п.). Ответы на вопросы я уже не записывал, но проговаривал вслух.

Непосредственно перед собеседованием я прошел имитацию System Design интервью с другом, который работает в американской компании. Это было полезно по нескольким причинам. Прежде всего это проверка себя на знание различных компонентов и декомпозиции задачи. Также определение слабых мест, например, погружение в детали и опять-таки базы данных! И терминология: Control и Data Plane я раньше не видел.

В конце июня уже с удовольствием прошел два собеседования. На NALSD нужно было разработать MMO, и здесь мы с интервьюером дошли до подсчета циклов процессора во время обработки данных.

Выдыхаю и впадаю в режим ожидания на очередные две недели. В середине июля в Google происходит hiring committee, и я получаю отрицательный ответ. В виде приятного бонуса — я прошел бы на уровень L5, но на него не берут снаружи. Также результат NALSD был значительно лучше. Я все еще прикольный менеджер и крутой инженер. На пятерочку!

Далее cooldown-период продолжительностью 12 месяцев, после которого можно попробовать еще раз. Рекрутер сказал, что есть люди, которые устроились на позицию EM с третьего раза.

Через некоторое время я получил форму обратной связи о прохождении собеседований. В форме были вопросы о взаимодействии с людьми в Google, мое впечатление о компании, а также общая оценка интервью. Большинство вопросов нужно было оценить по пятибалльной шкале.

Стоило оно того? Несомненно, да

Оглянемся назад. Первый контакт с рекрутером был в середине января, а финальный ответ «нет» я получил в середине июля. Марафон в шесть месяцев карантинной жизни.

В течение этого времени неизвестно сколько вечеров и выходных было выделено для обучения. Традиционные весенние праздники (8 марта и майские) прошли дома с книжкой и LeetCode. Дополнительно я взял на подготовку несколько дней отпуска.

В итоге: четыре курса на Udemy (1350 грн), три курса на Educative (35 USD), 60 задач на LeetCode, книга по алгоритмам на 900 страниц, изучен стиль Google для Python (4 пробела!).

Я не искал работу в Google, поэтому до начала этого марафона не совсем понимал детали процесса. Из позитивного — это возможность целенаправленной подготовки в собственном темпе. Во время этого я рефлексировал и осознал свои сильные и слабые стороны. Обратная связь помогает убедиться, что ничего не напутал. Самое главное — не впасть в уныние (а это сложно!), когда отказали. Расспросить о деталях и поблагодарить.

Также нужно быть готовым, что между собеседованиями и результатами есть двухнедельные паузы. Можно было бы сказать «nobody is perfect», но мы не знаем нагрузки на систему рекрутинга. Однако меньшим компаниям нужно этим пользоваться и быстро снимать «сливки» с рынка!

Во время подготовки я понял, куда двигаться дальше. Еще не решил, буду ли подаваться снова в Google, но работу Engineering Manager, когда сочетается управление командой и инженерные задачи, точно хочу попробовать! И для этого уже есть план действий 🙂

ОСТАВЬТЕ ОТВЕТ

Please enter your comment!
Please enter your name here