- PVSM.RU - https://www.pvsm.ru -

Как я получил 4 оффера в FAANG в Европе или из Воронежа в Лондон

Как я получил 4 оффера в FAANG в Европе или из Воронежа в Лондон - 1

Очередная история успеха после череды неудач. Расскажу, чего мне стоило получить офферы от Facebook, Google, Amazon, JP Morgan в Европе, как я готовился, сколько собесов зафейлил перед тем, как удача повернулась ко мне правильной стороной.

TL;DR. Послал сотни резюме. Прорешал около 100 задач на Leetcode. Прочел книжку по архитектуре (не той, которая про дома, а той, которая system design). Прошел 9 интервью. Получил 4 оффера. Принял 1. Жил, пока что, не очень долго, но, вполне себе, счастливо в Лондоне.

Задняя земля

Ой, нет. Я ж не гугл транслейт. Я могу нормально перевести background на русский. Пусть будет "Немного об авторе". Звучит вполне литературно, что скажете?

Изначально я написал эту статью на своем умеренно ломанном английском в своем персональном блоге [1]. Там все-таки свой домен. Надо ж типа свой персональный бренд развивать, да? Говорят, потом на собесах помогает. Да и, вообще, лайки всем нравятся. А чтобы лайков много было, надо бы их в одном месте собирать.

Ху из я? Меня зовут Андрей. Всем привет! Мне без пары лет 30, и я из Воронежа. Немногим более 6 лет професcионального опыта. На момент начала собесов было чуть меньше 6, но я хитро писал в резюме ~6. Люблю ~, оставляет много пространства для маневра. Худо-бедно получил специалитет на факультете компьютерных наук в ВГУ (это почти как МГУ, только леший знает где, и не МГУ). Первые 4 года провел в аутсорсах. Потом 2 года удаленно работал на Hazelcast и Bricks (американские стартапы). Написал парочку небольших либ на GitHub [2]. Иногда рассказываю что-нибудь эдакое на конференциях [3]. Веду бложек [4]. Получаю магистратуру онлайн в Georgia Tech [5]. Пытаюсь, так сказать, восполнить пробелы своего беззаботного студенчества в ВГУ. Если вдруг кому-то сильно интересно, то можете почекать мое CV вот тут [6].

Жил я в Воронеже, не тужил. Код на машине крутится, лавеха мутится. Правда, все мне хотелось земли заморские посмотреть. Ну, и во всяких FAANG'ах поработать, по возможности. Год назад мои чаяния оформились во вполне конкретный план. Я провел небольшое исследование на тему того, куда же все-таки переезжать. Назвал его по-желтушнее и собрал плюсов на хабре [7]. После, взял небольшой перерыв, покатался на сноуборде, прочистил мозги [8], и принялся за дело.

Вы лучше смотрите перевод той статейки на английский в моем бложике [9]. Мне так в бложек траффик пойдет, а я люблю на количество просмотров медитировать.

Рассылка резюме

Время: Январь — Февраль 2021.

Время рассылать резюмехи. Первым порывом было податься в известные мне компании. Точнее так, в известные МНЕ компании. Чем больше я перебирал их мена в голове, тем больше мне становилось понятно, что, во-первых, моя память — не шибко надежное хранилище с потерей данных, во-вторых, даже если бы я ничего и не забыл, мои знания точно не блистают полнотой. В итоге я выписал список компаний, которые вспомнил на листик. В этот листик добавил разные интересные имена из статей найденных в гугле. Про какие-то компании услышал из видосов Gergely Orosz [10]. Список, однако, вышел скудноватым. Гулять, так гулять! Я прошелся по всем компаниям из S&P 500 [11] и около сотни самых больших из NASDAQ [12], и выписал интересные названия еще и оттуда. Теперь список вышел на славу.

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

  1. Я успел поработать в компаниях среднего размера и в маленьких стартапах. Попросту интересно, как оно там в больших корпорациях. Запишем как "любопытство".
  2. Хотелось бы верить, что FAANG в резюмехе заставляет ее сверкать так, что половина HRов слепнет, а вторая бежит к тебе с офферами всех денег мира.
  3. Еще хотелось бы надеяться, что все эти круги ада на собесах помогают компаниям собирать действительно скилловых людей. Люблю работать с крутыми чуваками. Мотивирует. В общем, я из тех, кто лучше будет худшим среди лучших, нежели наоборот.
  4. У больших компаний обычно хорошо отлажен процесс перевоза инженерных (и не только) тушек.
  5. Моей жене скоро получать магистратуру по архитектуре. Стоит такая штука как самолет. FAANG платит как два самолета. Математика сходится.

Непрошенный совет #1. Если вы хотите ехать в США, то собеседоваться надо около ноября. В январе вы уже опоздали. Подавляющее большинство кандидатов переезжают по визе H1B. Она выдается только в полнолуние в четверг вискосного года. Ладно, ладно. Выдается она раз в год к концу марта. Значит вам должны сделать оффер до конца фераля (а лучше раньше), чтобы успеть собрать и подать документы.

Как я получил 4 оффера в FAANG в Европе или из Воронежа в Лондон - 2

Из каждого утюга, где говорят про собесы в большие компании, говорят про рефералы. Об этом пишут в бесконечном количестве блогов и постов на Reddit. Как всем известно, если что-то написано в интернете, то это не может быть не правдой. Не долго думая, я проворошил всю свою сеть коннкетов на LinkedIn, и дополнил это спамом незнакомым инженерам из FAANG в Twitter. Как мне сказал один из них, в том же Google он указывает уровень знакомства с тем, кого рекомендует. Как и следовало догадаться, рефералы на анонимусов ценятся примерно никак. С другой стороны, безмерно крутой и уважаемый мной Gergely Orosz сказал мне, что на них все-таки смотрят в первую очередь. Я бы рекомендовал попросить рефералов у хотя бы как-то знакомых людей, и не заниматься ковровой бомбардировкой незнакомых ни в чем не повинных людей. Лично мне это пользы не принесло. Помимо рефералов я подавался на сайтах компаний.

Прошла первая неделя февраля. Я разослал, наверное, 300-400 резюме. И… ничего. Зияющая пустота в моем почтовом ящике. Какие-то компании прекратили перевозить из-за COVID, какие-то меня просто игнорили. Высшие космические силы, мое паучье чутье, и, в конце концов, глас разума подсказали мне, что мне нужно либо набраться терпения, либо менять стратегию. С терпением у меня всегда было плохо, с самого детства, так что оставалось только менять стратегию. Более того, новая стратегия никак бы не помешала насладиться плодами прошлых усилий, правильно?

Кто-то там умный предположительно сказал, что хороший вопрос содержит половину ответа. Осталось придумать хороший вопрос. Попробуем вместе? "Как бы мне наняться в классную большую компанию?" Не. Фигня какая-то. "Как сделать свое резюме более заметным?" Вроде, лучше. "Как сделать так, чтобы рекрутеры замечали мое резюме чаще?" В яблочко! Ключевое слово тут рекрутеры. Если они — те люди, которые производят первичный отсев, то им-то и надо писать. Этим я, собственно, и занялся. Открыл LinkedIn, вбил recruiter в строку поиска, и начал фильтровать по компаниям. Фильтровать и спамить с рассказом о том, какой я хороший.

Через странички с вакансиями на сайтах самих компаний я получил интервью с Booking в Нидерландах, JP Morgan в Великобритании, Amazon в Германии, Microsoft в США. Спам в личку рекрутерам принес Uber в Нидерландах и Databricks в Нидерландах. Рассылка почти сработала с Microsoft, но рекрутер оказался в Польше, а в Польшу мне не хотелось.

Facebook дался мне нелегко. Я написал Michel Weststrate в Twitter. Он сделал immer [13] и mobx [14]. Я когда-то что-то даже коммитил в immer, тогда-то мы и познакомились. Он оказался безумно славным парнем и не пожалел для меня реферала в Facebook. Порекомендовал меня он на позицию фронта в Лондон. Через пару дней меня режектнули без объяснения причин. Печально. Погрустил я, впал в депрессию, подсел на тяжелые наркотики, и сейчас пишу вам из клиники в деревне Усть-Урюпино. К счастью, все было не так. Отказы — это нормально. Я решил, что не теряю абсолютно ничего, если обращусь к другому рефералу — Ensar Basri Kahveci [15]. С ним я вместе работал в Hazelcast, но в разных командах. В этот раз я скинул ему список вакансий, на которые надо было менять подать. Список более широкий и внушительный: и фронт, и фуллстек, и еще что-то, но не помню уже что. Basri тоже оказался наикрутейшим чуваком и закинул меня на них все. Прошло пару дней. Я все продолжал спамить рекрутеров в LinkedIn. Одно из моих сообщений пришлось на парня из Лондона, который нанимал в Facebook. И он ответил! Написал, что видит реферал в системе, и мы договорились о звонке.

Реферал в Lyft я получил от крутейшего Andrioid разработчика, Denis Nekludov [16], с которым мы вместе учились в ВГУ много лет назад.
Мой последний реферал с определенной задержкой пришел от Alex Salo [17], бога математики, с которым мне тоже довелось учиться в ВГУ (а ВГУ-то неплох!). У меня не было способа оперативной связи с Алексом. К тому моменту, когда он прочел мое сообщение, и как человек добрейшей души и большущего сердца дал мне реферал, я уже подался в Google сам. А у Google такая политика, что можно подаваться не более чем на 3 вакансии в месяц. В итоге, его реферал почти что месяц дожидался пока у меня этот счетчик сбросится. К счастью, дело выгорело, и в марте я вышел на связь с Google в Германии и Швейцарии.

Непрошенный совет #2. В больших корпорациях правая рука не знает, что делает левая. Подавайтесь на разные позиции. Даже если они в одном городе, есть все шансы, что в разное время на ваше резюме посмотрят разные люди, которые могут принять другое решение. Шансы на то, что подобное произойдет при подаче в разных регоинах стремятся к 1. Золотое правило — чем больше подадитесь, тем лучше.

Как я получил 4 оффера в FAANG в Европе или из Воронежа в Лондон - 3

Конечный список компаний, в которые я собеседовался выглядел так: Booking, JP Morgan, Amazon (дважды!), Microsoft, Lyft, Databricks, Uber, Google, Facebook.

Подготовка

Большинство, если не все большие компании, будут судить вас по 4 критериям:

  1. Специализированные (доменные) навыки. Например, React для фронта или базы данных для бека.
  2. Алгоритмы и структуры данных.
  3. Системный дизайн. В России это чаще всего принято называть архитектурой.
  4. Soft skills / cultural fit. Точного литературного перевода у меня в голове не нашлось. Соррян. Пусть будет "Навыки общения и взаимодействия с людьми и в команде". В общем, будут проверять, что вы не токсичная какаха с завышенным ЧСВ.

Доменные навыки

Многие компании из списка про них даже не вспомнит. Особенно, если вы подаетесь на абстрактного software engineer в вакууме. Будет встречаться чаще, если позиция более конкретная. Например, если вы подаетесь на фронта или в конкретную команду (что редкость для тех же Facebook и Google). У меня спрашивали вопросы по этой теме, когда я собеседовался на фуллстека в Uber и Booking, и на фронта в JP Morgan. К этому разделу я не готовился никак, рассчитывая, что вывезу все на опыте работы в индустрии. Так и получилось.

Алгоритмы и структуры данных

Leetcode [18]. Много литкода.

Непрошенный совет #3. Я бы советовал брать для интервью тот язык, которым вы владеете лучше всего. Даже если у него в стандартной библиотеке нет всех нужных вам структур данных. Я лучше всего знаю TypeScript/JavaScript. Как многие могут знать, у нас нету того же хипа. Ни на одном интервью это не было проблемой. Я трижды сталкивался с необходимостью решить задачку с помощью хипа, и трижды мы с интервьюером просто представляли, что у меня есть библиотека с воображаемым API. В худшем случае, вас попросят этот хип реализовать, что очень очень маловеротяно. Просто попрактикуйтесь пару раз дома, и проблем на интервью не должно будет возникнуть даже при худшем раскладе.

Как я получил 4 оффера в FAANG в Европе или из Воронежа в Лондон - 4

Если вы уже порядком подзабыли большинство алгоритмов и структур данных, я бы рекомендовал начать с легкой подборки задач на Leetcode [19]. Не надо решать их все. Авторы подборок услужливо отмечают рекомендуемые. Вот их и прорешайте в каждой секции. Далее можно переключаться на подборку средней сложности [20], действуя по тому же алгоритму. После того как вы прорешаете рекомендуемые задачки из каждой секции, у вас должно быть понимание, какие секции вызывают наибольшие сложности. Эти секции стоит пройти полностью. Сразу после стоит выходить на свое первое скрининговое интервью, его еще называют телефонным.

Непрошенный совет #4. Это норм сидеть часами над одной задачкой и думать, что вы тупой. У меня все так и было. Спустя пару недель стало лучше. Еще через пару недель еще лучше. Надо просто набрать критическую массу знаний. Для себя я установил строгое расписание. Каждый день я старался решать задачки по 2 часа. В один день я фокусировался только на одной секции. Литкод делит задания на 6 категорий. Таким образом за неделю я проходил через все категории. С новой неделей цикл начинался заново. Такой подход позволил мне более-менее равномерно прогрессировать по всем категориям.

Как я получил 4 оффера в FAANG в Европе или из Воронежа в Лондон - 5

После того как вы пройдете через первые скрининговые интервью в нескольких компаниях, у вас определится список компаний, где вы не облажались. Я бы рекомендовал с каждой из них бронировать полноценное собеседование, состоящее из нескольких интервью за 1-2 дня, через 3-4 недели после вашего скрининга. По возможности, поставьте интервью как можно ближе друг к другу, чтобы услышать офферы примерно в одно и то же время. Идеальный вариант — это взять неделю отпуска на текущей работе, и пройти через условные 5 компаний за одну неделю.

После скрининга стоит перейти к подборкам задачек с фокусом на определенные компании. Они будут платными на литкоде, но это будут не космические деньги. Во многом подборки пересекаются. Более того, вы вряд ли успеете пройти их все и для всех компаний за 3-4 недели. Я бы рекомендовал выбрать 2 наиболее интересные вам компании. В одну неделю прорешивать подборку для одной компании, в другую неделю подборку другой компании. И так далее. В неделю "А" я решал задачи для Facebook, в неделю "Б" задачи для Google.

Системный дизайн

Что ж это за зверь такой? Обычно, в рамках одного абзаца вам опишут систему, и что она должна делать. Вы же должны будете уточнить требования, масштаб, и набросать черновик ее реализации. Представьте себе это как работу с бизнесом. Условный Василий Вротымгерб дал манагеру бюджет в 10 лямов и сказал, что хочет чтобы сделали приложение для его дочки. Она котиков любит смотреть. Манагер вообще не технический, но зато с MBA, то бишь умеет деньги считать. Он 5 лямов положил в карман и пришел к крупной студии. Курпная студия положила 4 ляма в карман и пришла к вам. У вас ребенок как раз в школу собирается. Вы хотите ему частную школу оплатить и брекеты поставить. Вам нужен этот лям. Вам надо за 45 минут интервью (на самом деле около 35, вам же еще представиться надо и small talk поддержать) понять, чего от вас хотят, рассказать примерно, как делать будете, и убедить студию, что вы классный-распрекрасный субподрядчик, который точно бабло не сольет.

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

В подготовке мне больше всего помогла книга "System Design Interview – An insider's guide" от Alex Xu [21]. Она кратко и по делу обозревает различные популярные задачи из реального мира. В своей профессиональной деятельности мне иногда выпадает удовольствие порисовать диаграммки и подумать об архитектуре, так что это был единственный мой ресурс для подготовки к системному дизайну. Я хотел больше времени уделить алгоритмам. Если вы хотите чуть больше энергии вложить в системный дизайн, можете подсмотреть список ресурсов у Gergely Orosz в его блоге [22]

Алярма! Вы могли заметить, что ссылка на книжку [21] с кучей каркозябликов в конце. Она аффиллированная. Это значит, что если вы купите книжку по моей ссылке, Амазон мне отсыпет копеечку. Если вы хотите сказать мне спасибо за статью, то я попрошу вас так и сделать. Вы получите классную книжку, а я себе очередной фигни куплю бесполезной :). Если вы принципиально не любите аффиллированные ссылки, то вам "чистая" ссылка [23].

Soft skills / cultural fit

Это была самая простая часть для меня. Я пробежался через курс "Rock the behavioral interview" на Leetcode [24] и выписал несколько историй из своей практики в гугл док. Обязательно делайте заметки с ответами на вопросы! Не пытайтесь изобразить себя всезнающим и непогрешимым всея программирования. Все знают, что это ложь. Я знаю, что я лажал, и лажал очень крупно. Ошибался, осознавал что-то, учился, и исправлял свои ошибки.

Внимание! Если же вы вправду думаете, что за свою карьеру никогда не ошибались, то, возможно, вам стоит всерьез спросить у своих знакомых не являетесь ли вы токсичной какахой с завышенным ЧСВ.

Немножко отсебятины

Я начал рассылать резюме в конце января. Мое последнее интервью было в середине апреля, как я и планировал. Это дало мне 10 недель на подготовку. Первые 2 недели я тратил на литкод 2 часа в день в рабочие дни, 4 часа по субботам, брал выходной в воскресенье. Примерно в это время произошло мое первое скрининговое интервью. После него я продолжил литкодить, но уже без выходных. По воскресеньям я фокусировался на категории задач, которая получалась хуже всего. Спустя 2 недели, я начал читать по одной главе "System Design Interview – An insider's guide" каждый рабочий день в дополнение к литкодингу. Как только книга закончилась, я продолжил заниматься литкодом в обычном режиме. Мне пришлось заняться жесткой расстановкой приоритетов и многим пожертвовать. У меня была полноценная работа. Я учился магистратуре. На эти 10 недель я завязал со спортом и жил у компа. Жил на сахаре и кофеине. Набрал около 4 кило. Всей душой полюбил to-do списки. Я думаю, что больше всего мне помогло то, что я начинал день с самого главного — подготовки. После нее я уже занимался задачами из to-do листа в порядке приоритета.

Интервью

Непрошенный совет #5. Если вы уже давненько не проходили интервью, то скорее всего пару первых собесов вы завалите. Постарайтесь поставить первыми интервью в компании, куда вы хотите меньше всего. Еще лучше, назначьте первыми интервью с парой компаний, куда вы вряд ли пойдете. Просто для практики. Да, это не очень красиво, но вам шашечки или ехать?

Как я получил 4 оффера в FAANG в Европе или из Воронежа в Лондон - 6

Далее я расскажу про свой опыт интервью в разных копаниях.

Lyft

Я добрался до звонка с рекрутером лишь в конце февраля. Помните "Непрошенный совет #1"? Это было слишком поздно, чтобы провести все раунды интервью, сделать оффер и подготовить документы. Конец истории.

Офферы: 0 / 9.

Microsoft

Я прошел скрининговое интервью. Там у меня немножко спросили про опыт работы и попросили решить среднюю задачку с литкода. Через неделю молчания мне пришел емейл с отказом из-за визы. Оказывается, они думали, что у меня есть разрешение на работу в США. Наверное, я забыл где-то поставить галочку, что мне нужно спонсировать визу. Не удивлен. В Micrisoft я заслал около 40-50 резюме. Легко мог где-то что-то забыть. Прости меня, Microsoft!

Офферы: 0 / 9.

Databaricks

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

Офферы: 0 / 9.

Booking

У меня было 2 интервью на доменные знания. Еще одно интервью было разбито на 2 части. Сначала я решил легкий литкод. Далее мы перешли к системному дизайну. В тот момент я работал над offline-first приложением с многопользовательским режимом. Как мне бы хотелось верить, именно это когнитивное искажение заставило меня заоверинженирить мой дизайн. Не важно почему, важно, что налажал. Рекрутер мне предложил попробоваться в другую команду, где системный дизайн не та важен. С другой командой у меня было только интервью с менеджером, где мне задавали поведенческие вопросы и спрашивали про опыт. В итоге, мне отказали с вердиктом "недостаток интереса к доменной области команды".

Офферы: 0 / 9.

Uber

После быстрого созвона с рекрутером меня ждало скриниговое интервью, но, на удивление, не на алгоритмы, а на доменные знания. В тот момент Uber нанимал мидлов и синьоров. Это интервью должно было определить мой потенциальный уровень. Рекрутер мне сообщил, что дальше меня будут рассматривать на мидла. Мое ЧСВ пострадало, но я, конечно же, решил не сдаваться и продолжать. Далее у меня было два литкод-интервью средней сложности, классический системный дизайн, и поведенческое интервью с менеджером. Результаты были противоречивые. Мне сказали, что я хорошо прошел поведенческое интервью и классно себя показал на систменом дизайне. Кодинг же оставлял желать лучшего. Они решили, что мне будет скучно на позиции мидла из-за моего хорошего системнго дизайна, но позицию сеньки она предложить готовы не были из-за кодинга.

Офферы: 0 / 9.

JP Morgan

Это была единственная компания, которая не проводила скрининговое техническое интервью. Меня сразу закинули на полноценный набор интервью (прозвучало корявенько, но я хз как перевести full interview loop). Со мной провели 2 доменных интервью, где мы поговорили за React и JS. Системного дизайна не было. После было интервью с менеджером за опыт и мои командные навыки. Им очень понравилось, что я и сам был своего рода инвестором и менеджил свой портфель. То что я доменеджил его до минусов я упоминать, конечно же, не стал. Как результат, мне предложили синьорскую позицию в Лондоне!

Непрошенный совет #6. Если у вас есть хобби/внерабочая деятельность по профилю компании, то обязательно расскажите об этом! Сюрприз-сюрприз, компаниям такое нравится.

Как я получил 4 оффера в FAANG в Европе или из Воронежа в Лондон - 7

Офферы: 1 / 9.

Amazon

История с Amazon в очередной раз подтверждает "Непрошенный совет #2". Корпорации масштаба FAANG не функционируют как единый организм. Скорее, как множество небольших условно независимых команд. Вам могут отказать в одном регионе, в одной команде, но с радостью принять в другую.

Мое первое интервью было с Amazon в Мюнхене. Они прислали онлайн-тест для скрининга. Там была лишь парочка простых литкодов. Немногим после, у меня был скриниговый созвон. На нем меня 70% времени пытали поведенческими вопросами, 30% времени я решал средний литкод. Как мне показалось, все прошло хорошо, но через несколько дней мне пришел отказ.

Будьте готовы, Amazon спрашивает поведенческие вопросы на каждом интервью.

Непрошенный совет #7. Рассказывать одну и ту же историю разным интервьюерам в ответ на поведенческие вопросы — это ОК. Как правило, хорошая история раскрывает вас сразу с нескольких сторон.

Как я получил 4 оффера в FAANG в Европе или из Воронежа в Лондон - 8

К счастью, это был не конец приключения. Я не переставал подаваться на вакансии Amazon. Спустя неделю мне позвонили из Amazon в Кэмбридже. Они либо не знали про мое фиаско в Мюнхене, либо им было просто наплевать. Так или иначе я получил свой онлайн тест с содержимым похожим на то, что было в Мюнхене. Парой дней позже я уже был на скрининговом звонке с одним из инженеров. Как обычно, было поведенческое интервью, а сразу за ним два средних литкода. Я нашел оптимальное решение для одного и субоптимальное для второго. Им все понравилось, и меня позвали собеседоваться дальше.

Через месяц подготовки я прошел через 4 интервью. 2 алгоритмических с поведенческими вопросами и средними литкодами, один системный дизайн, и один кодинг, который я бы назвал дизайн приложения/сервиса. Мне вбросили набор бизнес требований, я их уточнил, и написал класс, который реализовал нужный функционал. В итоге, им очень понравился мой кодинг, но не совсем устроил мой системный дизайн. Эх, если бы только парень из Uber мог им позвонить и поделиться своими впечатлениями о моем системном дизайне. Как бы то ни было, в Кэмбридж я не прошел, но и это был не конец. Команда в Кэмбридже занималась по-большей части бэкэндом. Они решили, что хоть мой системный дизайн и не достаточно хорош для них, я могу себя хорошо показать на роли фронта в… тадам, Германии! Привет, Мюнхен! Ты по мне скучал?

Меня забросили на очередной набор интервью. В этот раз, один средний литкод и один системный дизайн. Теперь им все понравилось, и мне сделали оффер. Оффер на мидла. Это же все еще считается за оффер, да?

Непрошенный совет #8. Рвите жопу, но доказывайте рекрутеру, что вас надо собеседовать на сеньку еще до начала собесов. Можете упомянуть, что в других компаниях вы собеседуетесь на синьора. У меня сложилось впечатление, что рекрутер изначально прикидывает на какой трек вас закинуть, мидловый или синьорный. В последствии, может быть очень сложно или невозможно это изменить.

Как я получил 4 оффера в FAANG в Европе или из Воронежа в Лондон - 9

Офферы: 2 / 9.

Google

Это был стандартный для FAANG набор. Сначала скрининг со средним литкодом. Через две недели полный набор: 3 алгоритмических интервью, 1 системный дизайн, 1 поведенческое интервью. Каждое алгоритмическое интервью состояло из легкого литкода и среднего литкода следом. Поведенческое интервью и системный дизайн были вполне каноническими. Спустя неделю ко мне вернулись с позитивным фидбеком и аппрувом комитета. Да, в Google перед тем как сделать оффер вас должен заапрувить какой-то секретный комитет. Потом вам должны найти команду. И лишь после этого последует оффер. В течение недели у меня был созвон с 2 разными командами. Обе захотели меня к себе. Мне сделали оффер на L4. Снова мидл! Помните "Непрошенный совет #8"? Хотел бы я это знать до начала своих интервью.

Офферы: 3 / 9.

Facebook

На первый взгляд, это был еще один стандартный набор интервью для FAANG, но, как говорится, есть нюанс. На тот момент Facebook не нанимал E4 (мидлов), а брал только E5 (сенек) и выше. Пан или пропал. Первый тех скрининг с двумя литкодами: легким и средним, прошел волнительно, но хорошо. Затем в течение месяцев я готовился. Настал день Х. Точнее дни X и Y. Facebook услужливо разрешил разделить интервью на два дня. В первый день, было два алгоритмических интервью. Так же как и не скрининге каждое из них состояло из легкого литкода и среднего литкода. Руки дрожали, спина обливалась потом. Первое интервью я прошел без проблем, а вот второе жестко завалил. Во втором интервью на среднем литкоде я впал в ступор и не выдал ничего. Даже плохого решения не выдал. Только промямлил что-то в конце о том, как бы я сделал. Во второй день у меня был системный дизайн и поведенческое интервью. Поведенческое интервью было стандартным, а систем дизайн был больше сфокусирован на API и схеме БД. Их я прошел без видимых проблем. Спустя несколько дней, когда я уже начал подбирать курсы немецкого для того, чтобы ехать в Мюнхен с Google, мне на мое удивление пришел не отказ, а приглашение на еще одно алгоритмическое интервью. Рекрутер сказал, что на меня был отличный фидбек по системному дизайну и поведенческому интервью, а мнения интервьюеров по алгоритмической части разделились. Это был мой шанс. Я снова погрузился в литкод и совсем не заметил как пролетело несколько дней до дополнительного интервью. Снова легкий литкод и средний. И… Я лажаю на легком литкоде. Неправильно оцениваю big O своего решения. Причем я обнаружил я это только постфактум. Написал свое решение. Интервьюер мне ничего не сказал про big O, но решил, что у меня баг. Я прошел вслух с ним несколько тест кейсов, бага не нашел. Решили двинуться дальше, чтобы успеть прорешать второе задание. Его я прошел с большим волнением, но без каких-либо проблем. Нашел оптимальное решение, правильно оценил big O, накодил его.

Мысль о баге все не давала мне покоя. Под конец интервью я спросил можно ли мне скопировать свое решение первой задачи для дебага дома, и мне не отказали. Я составил полноценный набор тестов на одной из онлайн платформ и не обнаружил бага. Зато допер, что налажал с big O. Мне, кровь из носу, надо было показать интервьюеру, что я просто волновался, что бага нет, что я умею счиать big O. Facebook не разглашает email интервьюеров, но я мог увидеть его имя и фамилию. К счастью, парень активно контрибьютил в опен сорс. Я взял его email и commit message и написал на него простыню с ссылкой на свой набор тестов и с подсчетом правильного big O. Я не знаю прочел ли он его, я так и не получил ответа. Главное, что я сделал все, что мог! Через несколько дней мне позвонил рекрутер и ошарашил меня тем, что Facebook хочет видеть меня в своих рядах и приглашает меня на синьорную позицию в Лондон!

Офферы: 4 / 9.

Заключение

После интервью с 9 большими и известными компаниями, я получил 4 оффера. Спустя неделю торгов (здесь [25] вы можете найти хороший гайд о том, как их вести) и сомнений, я с огромным облегчением и радостью принял оффер от Facebook. Мне бы хотелось двух вещей:

  1. Чтобы моя история помогла кому-то осознать, что не надо быть стоумовым Нобелевским лауреатом, чтобы получить оффер в FAANG, находясь в любой точке планеты, хоть в том же Воронеже.
  2. Чтобы это было только начало :)

Давайте оставаться на связи! К сожалению, мой энергетический ресурс ограничен, так что я не все свои статьи буду переводить на русский и выкладывать на Хабр. Лучше добавляйтесь в Twitter [26] и LinkedIn [27]! Подписывайтесь на новостную рассылку [28] или RSS [29] моего блога [28]. Пишите на email [30] с любыми вопросами.

Автор: Андрей Гончаров

Источник [31]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/kar-era-v-it-industrii/367635

Ссылки в тексте:

[1] эту статью на своем умеренно ломанном английском в своем персональном блоге: https://blog.goncharov.page/how-i-got-multiple-faang-offers-in-europe

[2] GitHub: https://github.com/aigoncharov

[3] рассказываю что-нибудь эдакое на конференциях: https://github.com/aigoncharov/talks

[4] бложек: https://blog.goncharov.page

[5] магистратуру онлайн в Georgia Tech: https://omscs.gatech.edu/

[6] тут: https://docs.google.com/document/d/1RPYnsaEfPMjty0PuX15qI_BG1eO-IJIdPejH67cdi64/

[7] собрал плюсов на хабре: https://habr.com/ru/post/510610/

[8] мозги: http://www.braintools.ru

[9] перевод той статейки на английский в моем бложике: https://blog.goncharov.page/immigration-with-numbers

[10] видосов Gergely Orosz: https://www.youtube.com/user/mrgergelyorosz

[11] S&P 500: https://www.slickcharts.com/sp500

[12] NASDAQ: https://www.nasdaq.com/market-activity/stocks/screener

[13] immer: https://github.com/immerjs/immer

[14] mobx: https://www.mobxjs.com/README.html

[15] Ensar Basri Kahveci: https://twitter.com/metanet

[16] Denis Nekludov: https://www.linkedin.com/in/nekdenis

[17] Alex Salo: https://www.linkedin.com/in/alexsalo/

[18] Leetcode: https://leetcode.com/

[19] легкой подборки задач на Leetcode: https://leetcode.com/explore/featured/card/top-interview-questions-easy/

[20] подборку средней сложности: https://leetcode.com/explore/interview/card/top-interview-questions-medium/

[21] "System Design Interview – An insider's guide" от Alex Xu: https://amzn.to/2YkXVXc

[22] Gergely Orosz в его блоге: https://blog.pragmaticengineer.com/preparing-for-the-systems-design-and-coding-interviews/#systems-design-interviews

[23] "чистая" ссылка: https://www.amazon.co.uk/gp/product/B08CMF2CQF

[24] "Rock the behavioral interview" на Leetcode: https://leetcode.com/explore/interview/card/leapai/

[25] здесь: https://haseebq.com/my-ten-rules-for-negotiating-a-job-offer/

[26] Twitter: https://twitter.com/ai_goncharov

[27] LinkedIn: https://www.linkedin.com/in/aigoncharov/

[28] новостную рассылку: https://blog.goncharov.page/

[29] RSS: https://blog.goncharov.page/rss.xml

[30] email: mailto:andrey@goncharov.page

[31] Источник: https://habr.com/ru/post/576390/?utm_source=habrahabr&utm_medium=rss&utm_campaign=576390