Как я собеседовалась в Google

Lena Volzhina
9 min readJun 28, 2020

--

Введение

В 2019 году я собеседовалась в Google. Меня часто просят рассказать подробности, как это было, так что я решила наконец-то поднять заметки и записать эту историю :)

TL;DR:

  • сначала было одно собеседование на код, оно проходило по скайпу
  • после этого я поехала на онсайт в Мюнхен, там было ещё пять собеседований, в основном технических, но не только
  • на технических интервью задачки интересные и не хардово-алгоритмические, много разговоров
  • кроме чисто технических интервью было ещё одно на googleyness & leadership (самое странное в моём опыте!)
  • затем на этапе мэтча с командами оказалось очень мало задач с машинным обучением, я окончательно потеряла мотивацию и отказалась продолжать
  • от первого контакта до разговоров с командами прошло 8 месяцев (затягивала в основном я)

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

Первый контакт

В январе 2019 года мне пришло уведомление от LinkedIn с темой “Google is calling”. В нём рекрутёр писала, что её привлекло в моём профиле: “Yandex is doing really cool things and your university, Saint Petersburg State University is one we always keep an eye on”. Кажется, в тот момент кроме этой информации в моём профиле не было указано ничего, так что я немного сомневаюсь в искренности этого мотива. Особенно учитывая, что за пару месяцев до этого я была в мюнхенском офисе Google в гостях, а на входе нужно было заполнить анкету для бейджа… Кто знает :)

Мы созвонились с рекрутёром, обсудили формат собеседований (фильтр по скайпу, поездка для онсайта, мэтчинг с командами), поговорили про возможные позиции. На этом созвоне я озвучила, что заинтересована именно в задачах машинного обучения, а не просто в разработке. Но она сказала, что в Google всех берут на позицию Software Engineer, а задачи обсуждаются с конкретными командами.

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

Собеседование-фильтр

У меня не было цели попасть в Google, так что много я не готовилась: прочла рекомендации от HR, освежила в памяти своё резюме, решила несколько задач на leetcode. Непосредственно перед собеседованием заставил понервничать студенческий аккаунт на blackboard, который почему-то не давал мне залогиниться в корпоративный hangouts, но к счастью я делала это не в последний момент и успела его побороть.

Как выглядело само собеседование.

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

Тайминг и содержание. На весь разговор отведён час, из него на задачи ровно 45 минут. До задач был небольшой small talk, знакомство, никаких значимых вопросов. После задач остаётся ещё около 10 минут на мои вопросы.

Задачи было две:

  • Первая была совсем простая, я быстро написала код, устно протестировала на примерах, обсудили крайние случаи и алгоритмическую сложность, на всё про всё минут 10
  • Вторая была сформулирована скорее как фича в продукте, которую естественно было бы реализовать средствами анализа данных. Обсудили идеи по реализации, откуда взять датасет для обучения, какое API предоставлять. Дальше нужно было написать код структуры данных для этой фичи, я не поняла задачу и написала сразу и реализацию обучения. Потом было ещё немного кода, обсуждение расширения задачи, и время закончилось.

Вопросы от меня к собеседующему. Я не подготовила вопросы заранее (зря!), а в моменте была уже уставшей, так что мы поболтали немного про форматы собеседований, про баланс между кодингом и разговорами, и закончили.

Фидбек. Собеседующий не говорит фидбек сразу, его позже сообщает рекрутёр. Но в моём случае были довольно заметные оговорки типа “у вас будут такие и сякие собеседования”, так что я была почти уверена в положительном результате фильтра.

Через 4 дня рекрутёр написала, что фидбек положительный, и предложила созвониться, чтобы обсудить дальнейшие шаги.

Подготовка к онсайту

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

Я знала, что у меня будет два типа интервью: во-первых, стандартные технические, и во-вторых, загадочное интервью на googleyness & leadership.

Я выделила три основных направления подготовки:

  • Технические вопросы. Тут всё просто: я планировала нарешать N задач на leetcode с фильтром по компании и потренироваться описывать своё решение в нужном формате (идея, границы применимости, код, тесты, оценка асимптотик по времени и памяти).
  • Софт-скилловые вопросы. Я решила проштудировать Cracking the Coding Interview, подготовить рассказы про разные части своего CV и другой опыт (выступления, организация Django Girls, участие в сообществах). Также я хотела найти хоть какие-то подсказки, что может происходить на googleyness & leadership интервью.
  • Английский язык. Я сочла оптимальным просто найти себе репетитора, с которым пройтись по всем типам разговоров, которые мне предстоят, и вспомнить нужную лексику.

Мне очень повезло с репетитором. Я рассчитывала, что смогу пару встреч потренироваться рассказывать о себе, успокоиться, что всё нормально, и расслабиться. Но получила намного больше: оказывается, Анастасия готовила многих учеников к сложным собеседованиям (правда, не техническим) и хорошо представляла, какие вопросы могут задавать зарубежные компании, и какие ответы могут вызвать у них беспокойство.

В итоге во время созвонов мы обсудили множество вопросов, о которых я бы и не подумала: “Почему именно я нужна компании?”, “Расскажи про пример сложностей в коммуникации с коллегами”, разные модельные ситуации. Кроме этого Анастасия всерьёз взялась за техническую сторону, нашла набор вопросов про структуры данных и алгоритмы и поправляла меня не только в формулировках ответов, но и в их сути. Наши занятия помогли мне справиться с волнением не только насчёт языка, но и насчёт не-технических вопросов.

Кроме этого я прочла и проработала Cracking the Coding Interview и нарешала пару десятков задач на leetcode. Именно техническим задачам я посвятила совсем мало времени, потому что не было цели обязательно пройти собеседования, а скилл решения задач (в отличие от самопрезентации) был не особенно интересен.

Онсайт

Я ехала в Мюнхен на четыре дня. Субботу и воскресенье я проводила в городе сама по себе, а потом в понедельник и вторник у меня было по два-три собеседования в день. Обычно их все проводят за один день, но я понимала, что это будет слишком утомительно, и попросила разбить на два дня. Многие мои знакомые проходили все собеседования за один день, считая это единственно возможным вариантом, но оказалось, что Google тут готов пойти навстречу.

Благодаря разнесённым на два дня интервью и свободным выходным я успела встретиться с друзьями, погулять по городу и даже съездить к Альпам.

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

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

В интервью на system design мне описали продукт, рассказали, какая от него ожидается функциональность, и попросили описать его в терминах структур данных и операций над ними. Я сначала стала копать в сторону SQL-таблиц и распределенной системы, но позже оказалось, что речь шла просто о работе с данными в памяти одной машинки. Я набросала компоненты системы, ответила на уточняющие вопросы и была свободна.

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

Началось оно с признания интервьюера, что это интервью ни на что не влияет. Как оказалось, Google сравнительно недавно стал проводить эти интервью в дополнение к техническим. Пока что они не использовали его результаты для решения о найме, но исследовали корреляцию с успешностью работы сотрудника. Когда станет понятно, как именно это интервью может предсказать перформанс, его результаты станут учитываться. То есть это буквально исследование на людях, как именно нужно проводить не-техническое интервью и как интерпретировать его результаты. Меня эта история восхитила и обрадовала, приятно видеть data-driven подход даже в найме.

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

Ни на одном интервью мне не дали сразу фидбек, объясняя это явным запретом. Итоги мне позже должна была в обобщенном виде сообщить рекрутер. Но у меня было впечатление, что я всё прошла нормально, и оно подтвердилось. Я попросила рассказать подробности отзывов, и рекрутёр озвучила ключевые фразы из фидбека. Было очень интересно послушать, на что интервьюеры обращали внимание, и я хвалю себя, что задала этот вопрос.

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

К слову, четверо из пятерых собеседующих были русскоговорящими. Кто-то переехал в Мюхнен, когда Google закрывал офисы в России, кто-то сразу туда устраивался работать. Два интервью из пяти у меня прошли на русском, три на английском, при том что я была вполне готова говорить только по-английски и ни о чём не просила. Я так и не поняла, было ли это законно — мнения разнятся, в том числе среди собеседующих. Но я рассказала об этом рекрутёру, негативной реакции не получила и расслабилась.

Поиск команды

Когда рекрутёр сообщила, что я успешно прошла технические собеседования, начался этап подбора команды. Он оказался очень странно организован: несмотря на мой явный запрос, что я хочу работать именно над задачами машинного обучения, созвоны мне организовывали в основном с командами типа “мы раскладываем данные, чтобы потом другая команда на них что-то обучала”. Это было совсем не похоже на то, чем я хочу заниматься.

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

Заключение

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

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

Забавно, что недавно, почти ровно через год после онсайт-интервью мне снова написали из Google, интересуясь, не хочу ли я рассмотреть их новые вакансии. Наверное, у них, как и у меня, была настроена напоминалка :)

--

--