Беларус (он пожелал остаться анонимным) в 2024 году не терял времени даром — активно проходил собеседования в компании FAANG. И получил не один оффер! Как это было, он рассказал изданию Devby.
Беларус собеседовался в Amazon, Google, Meta, Databricks, Waymo и несколько HFT-компаний (High Frequency Trading).
— Одно время я игнорил приглашения на собесы, а потом начал ходить сразу на все. Собеситься в одну компанию мне показалось глупо: можно не получить оффер и расстроиться. Или получить и потерять 10−15% из-за того, что нет контроффера. В результате я прошел 25−30 собесов в разные компании (разговоры с рекрутерами не в счет). Офферов было три, так что советы по успешному прохождению собесов лучше спрашивать у кого-то другого. Я расскажу просто о своих впечатлениях.
Техническая часть
В крупных IT-компаниях LeetCode-собеседования плюс-минус одинаковые: где-то предлагают запустить код, где-то нужно записать его в блокноте и убедить интервьюера, что он работает. Как правило, просят dry-run кода (и это идет в оценку), то есть выполнить его построчно. И тут можно потерять много времени, если не потренироваться заранее.
Мне кажется, алгоритмической подготовки студента первого-второго курса достаточно для прохождения этого этапа: каких-то сложных алгоритмов не спрашивают, темы заранее известны, их можно потренить на LeetCode. В случае глобального затупа интервьюер подскажет, и это не будет означать провал собеса. Я нарешал чуть больше 50 задач на LeetCode и, оглядываясь назад, понимаю, что стоило бы решить еще столько же, чтобы уменьшить дисперсию.
Главная сложность в том, что на собесе ты ограничен во времени. Meta, например, ожидает, что ты потратишь всего 15−20 минут на одну задачу вместе с прогоном кода. Google адекватнее: дают 40 минут на задачу аналогичной сложности. Если решить быстрее, интервьюер, скорее всего, предложит дополнительный вопрос или задачу за дополнительные баллы, которые могут компенсировать затуп на предыдущем собесе.
Я на работе пишу на C++, на нем же проходил собесы. Оказалось, это очень плохая идея: времени на написание кода требуется много, когнитивная нагрузка очень велика. Особенно больно было тогда, когда код требовалось еще и запускать (убедить интервьюеров в том, что плюсовый код работает, проще, чем написать его действительно рабочим).
Поэтому я посоветовал бы разработчикам, которые пишут на С++ (и еще, может быть, джавистам) перейти во время интервью на Python. Конечно, если такая опция вообще есть. Так, у меня были собесы в компаниях вне FAANG, где настаивали только на C++.
System design и Behavioral
Про System design ничего умного сказать не могу: в Google L3/L4 и в Waymo на L4 этого вида интервью нет, в Meta я до него не дошел, а в Amazon он довольно формальный, минут на 20. Я что-то задизайнил, и все.
К Behavioral-секции обычно рекомендуют подготовить истории в формате STAR, но мои интервьюеры сами задавали вопросы. Когда я рассказывал какую-то историю, то просто смотрел на реакцию и фидбек интервьюеров и старался корректировать подачу. То есть этакое A/B тестирование.
Как я понял, на Behavioral проверяют не столько софтскиллы кандидата (достаточно не быть маньяком), а скоуп, который у него был на работе. Условно: рассказываешь истории про покраску одной кнопки — оценят на джуна, отвечаешь за крупный проект под ключ — скорее на сеньора. Самый большой фокус на Behavioral как будто в Amazon. На каждом собесе 20 минут отведено на поведенческие вопросы.
Из неочевидного в составлении резюме: внешний хедхантер посоветовал мне добавлять в каждый буллет-пойнт технологию/язык, на которой/котором реализован проект. Я прислушался и буквально в каждую строчку на странице дописал С++, и это реально сработало: рекрутеры стали говорить: «You have a lot of C++» и откликов стало больше.
В какие компании собесился, что там заметил и какой итог
В Meta я подавался через рекомендацию. Список задач там известен (порядка 100), но требуется идеальное их решение за 15−20 минут. То есть проверяют скорее способность сидеть и монотонно решать для подготовки. Но при этом самые предсказуемые собесы — задачи известны и можно решить все заранее.
Я затупил на собесе + не получилось наладить коммуникацию с интервьюером (он из Индии, мне тяжело было понять акцент), в итоге не прошел скрининг. Вернее, мне предложили продолжить собеседование на уровень ниже (E5->E4), но я отказался. Это не лишало меня возможности снова попробоваться на E5 через полгода.
У Google я был в базе с четвертого курса (просто отправил туда резюме), и меня стали периодически приглашать на собесы. Компания как будто больше проверяет способность думать (мое впечатление). Задачи более рандомные (интервьюеры могут спрашивать что угодно в рамках алгоритмов и структур данных из списка), слитые задачи быстро удаляют.
Принял приглашение на единственный раз и получил оффер.
В Amazon на меня вышел нанимающий менеджер: созвонились, он рассказал про команду, мне в целом понравилось, поэтому назначили собес. Кажется, в этой компании все зависит от команды. У меня было довольно лайтово, по сложности из всех собесов они как будто внизу. Получил оффер. У моего знакомого в C3, наоборот, было очень сложно — так что тоже рандом.
В Databricks на меня вышел менеджер одного из их офисов. А я его подвел в итоге. Это был самый сложный в плане оценки собес (должно было быть восемь этапов).
Сама задача несложная, но код должен обязательно выполняться, также нужно придумать тесты. Я быстро запрогал, а потом минут 10−15 ловил различные сегфолты в коде, пока не закончилось время. На решение интервьюеры (их было двое) сказали «looks good to me», а потом я получил отказ с фидбэком, что код не запускается, это автоматически означает «no hire». В общем, они ожидают идеального решения.
В Waymo собес похож на гугловский, но код нужно запускать (задачи были больше на реализацию, чем алгоритмы). Задачи чуть интереснее давали (более open-ended). Получил оффер.
В Netflix я не пробовал: в Европе вроде нет вакансий. Microsoft не рассматривал. В Apple я получил отказ на этапе резюме.
Кризис подпортил офферы FAANG?
Кризис проявляется в том, что вакансии размещают в странах с низкими зарплатами. Наем переносят в Сербию, Польшу, Румынию, Индию и т. п. Раньше это могли быть Германия, Швейцария, Великобритания, Ирландия, Нидерланды. Там намного выше зарплаты, а кроме того, оттуда было бы проще перевестись в США через год работы.
С ходу в американский офис устроиться сложно, но через год работы можно попробовать перевестись по визе L1.
Кем надо быть, чтобы получить оффер от FAANG в кризис?
Собеседование — это рандом: варьируется как сложность задач, так и стиль поведения интервьюеров. Есть такие, которым интересен твой ход мысли, тогда собес больше похож на диалог, в ходе которого вы вместе решаете сложную задачку. А бывает, интервьюер просто дает задачу и смотрит, решишь или нет. Один мне так и сказал: «Не говори, а решай». Я решил — он мне поставил «hire».
Думаю, если бы сейчас мне дали еще раз их все перепройти, то, скорее всего, какие-то офферы я бы не получил, но вместо них получил бы другие. Увеличить шансы помогает практика решения задач (десятков аналогичных) и практика самих собеседований.
Думаю, что после прохождения фильтра резюме и практики LeetCode любому среднему разработчику реально получить оффер в Amazon, Meta или Google — гением для этого быть не нужно. Достаточно быть студентом / начинающим разработчиком. Да, LeetCode требует времени и мотивации, но тут у джунов есть преимущество. Когда натренируетесь, хорошо бы пройти стажировку в любой крупной продуктовой компании в Беларуси + GitHub с реальными проектами (это почему-то помогает пройти фильтр рекрутеров, хотя они все равно не могут оценить содержание). После этого можно претендовать на джуновские вакансии — L3 в Google и L4 в Amazon в Польше. После двух-трех лет хорошего опыта можно претендовать в FAANG на мидла.
Читайте также на devby.io:
«Сквозь дым проходит Илон Маск». Беларус уехал в США и работал с Apple и Tesla
Разработчик из Беларуси получил оффер от польской Google, но стал безработным. Не дали визу
«Такой релокейт не нужен». Куда и как предлагают переехать в 2024 году