[Карьера в IT] Собеседование в корпорацию: чего ждать и к чему готовиться на интервью в ЯFAANG

В прошлой статье нашей серии «Карьера в IT» рассказывали, как попасть в небольшой стартап и зачем вообще это нужно. Теперь пришло время замахнуться на рыбку покрупнее и поговорить о собеседованиях в корпорации и компании уровня FAANG, в том числе российские. Расскажем, какие у таких компаний есть особенности, какие приятные плюсы есть у подобных собеседований, чего в общих чертах ждать на интервью и как разобраться в вилках зарплат. Как всегда, с примерами из практики.

Какие компании относятся к ЯFAANG и в чем их особенности

ЯFAANG — это Яндекс, Facebook, Apple, Amazon, Netflix, Google. Еще к этой категории можно отнести Microsoft, VK, Uber и некоторые другие компании. У нас в боте getmatch таких вакансий немало.

У подобных компаний есть несколько ключевых особенностей.

Масштабы найма. Входящий поток намного больше, чем количество людей, которых привлекают рекрутеры. Многие приходят сюда просто так, даже без открытых вакансий, в надежде попасть в крупную компанию. Рекрутеры из-за этого более расслабленные и не так доброжелательны к каждому кандидату. Здесь действительно «за забором еще 100 человек ждут».

Сотни отделов и команд. Если в одной команде вам не понравилась культура или атмосфера, не обязательно все бросать. Можно легко курсировать между отделами и заниматься разными вещами.

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

Комплекс «лучших умов». Кажется, что в корпорациях работают какие-то гении. На самом деле там те же люди — есть суперкрутые, а есть и вполне обычные. Такие же, как все вокруг, и точно такие же, как вы (крутые гении). Это важно держать в голове, когда проходишь собеседование.

Какие плюсы есть у собеседований в корпорации

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

Не нужно досконально знать какой-нибудь фреймворк или технологию. Не обязательно разбираться в Android или .Net — важно понимать общие принципы программирования. Стоит отметить, что чем выше уровень, на который вы собеседуетесь, тем больше ожиданий по опыту работы в той или иной специфичной технологии и области (например, в масштабировании графовых баз данных).

Собеседования в десятках городов мира. Если вы устраиваетесь, например, в США, и интервью очное — не обязательно лететь в США. Вполне возможно, что собеседование получится пройти в другой стране, где у вас уже есть виза, или просто в более близкой и удобно расположенной (как минимум так было до пандемии 2020-го года).

Структура интервью и общая подготовка

Сначала будет 5 минут рассказа о себе. Отработайте так, чтобы это у вас от зубов отскакивало, причем и на английском тоже. Со всеми взлетами, падениями и опытом. А потом начнутся тесты. Если вы думаете, что это легко, прямо сейчас запишите на диктофон с таймером пять предложений о своих навыках и покажите это вашему другу.

Вопросы по платформе

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

Задачи

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

А что же делать с самой задачей? Алгоритм прост:

  1. Рассуждайте вслух, высказывайте все мысли, даже глупые и безумные. Не надо молча смотреть в условия, в крайнем случае скажите «Мне надо подумать минуты три».

  2. Задавайте вопросы во время всего решения. «Мы сейчас покроем тестами, или вы хотите, чтобы мы потом это сделали?». Уточняйте любые моменты, это сыграет вам только на руку.

  3. Первым делом предлагайте в лоб самое медленное, неэффективное и простое решение. Озвучьте его и начните улучшать.

  4. Озвучьте, что неплохо будет написать тесты. Если они простые, можно даже сразу их написать: проверить крайние случаи, на отрицательные значения, на пустую строку и т. д.

  5. Озвучьте асимптотическую возможность каждого решения.

  6. Постоянно говорите о недостатках и возможных улучшениях. Что-то в духе «Тут у нас необработанный крайний случай, сейчас нет времени им заняться, но это можно исправить».

Разберем алгоритм на простом примере. Есть такая задачка:

Решение можно сразу посмотреть на leetcode. Теперь пройдемся по алгоритму решения:

  1. Предлагаем в лоб вариант с перебором — просто брутфорс всех пар чисел.

  2. Проверяем кейсы работы с нейронами и отрицательными числами.

  3. Говорим о недостатках — метод, очевидно, очень сложный, и решить можно лучше.

Пока вы будете все это проговаривать, у вас в голове сформируется следующее решение, и вы сможете его предложить. Например, вариант с hashmap, когда вы в качестве ключа используете разницу между целевым значением и одним из элементов. Тогда вы можете решить эту задачу либо в 2 прохода, засунув все эти числа сначала в map, либо вообще в 1 проход.

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

Вайтбординг

Казалось бы — какая доска, сейчас же все пишут в компьютерах? Но в крупных компаниях есть миллионы досок, на которых удобно демонстрировать свои заметки. Если в комнате с интервью есть доска — обязательно ей воспользуйтесь: пишите там код, рисуйте схемы, отражайте ход своих мыслей. Можно прямо на доске набросать псевдокод и сказать: «По алгоритму уже все понятно, сейчас на компьютере допишем и явно будет работать».

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

С ростом популярности удаленных собеседований вайтбординг никуда не пропал. Наоборот, навыки быстрого рисования схемок и документирования в Google Draw, Jamboard и других paint-образных инструментах стали более критичны.

Обед

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

Интервьюеры обычно сами ведут обед и ждут, что кандидат будет за ними следовать. Если присутствуют другие люди, особенно известные, важно вести себя тактично — больше спрашивать и слушать, чем говорить о себе. Людям это всегда нравится.

Проектирование систем

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

Здесь советы следующие:

  • Обязательно задавайте много уточняющих вопросов.

  • Начните с того, что вам ближе — клиентской или серверной стороны.

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

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

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

  • Обязательно визуализируйте все на доске: пишите рассуждения, рисуйте схемы.

  • Обозначьте систему мониторинга, аналитики и логирования.

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

Ваши вопросы компании

Дальше настает ваш через задавать вопросы.

Не стоит спрашивать:

  • Ну че, как вам тут работается?

  • Еда и правда бесплатная?

  • А на самоездящих машинах дают покататься?

  • А у вашего конкурента уже есть дроны?

  • Отпуски и правда безлимитные?

Что стоит спрашивать:

  • Самый большой вызов для вашей команды?

  • Какие сейчас приоритеты у команды?

  • Как устроено взаимодействие внутри команды/между командами?

  • На каких языках/фреймворках идет разработка?

  • Как построен процесс разработки?

  • Как построено общение между менеджментом и инженерами?

Как разобраться в уровнях разработчиков

И последний момент, важный для трудоустройства в корпорацию, особенно в зарубежную. В России и в стартапах принято обозначать специалистов просто джунами, мидлами и сеньорами. А вот в корпорациях появляются какие-то L, с которыми все не совсем понятно.

Общая схема уровней в FAANG примерно такая:

На базе уровней Google посмотрим, что это примерно значит: 

  • L1 — почти не существует, в крайнем случае это стажер.

  • L2 — это интерн, который еще учится в своем институте или проходит практику после выпуска и не имеет никакого продакшн-опыта.

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

  • L4 — мидл, делает мелкие фичи сам, больше работает под руководством, но уже способен показывать самоотдачу и требует гораздо меньше надзора.

  • L5 — сеньор, который делает все сам на всю команду. Занимается развитием уровней пониже.

  • L6 — стафф-инженер, который руководит командами и внедрением фич на уровне отделов.

  • Дальше все уже шире и зависит от компании и ситуации.

В основном релокейт происходит на позиции от L4 до L6 в лучшем случае. Даже если вы десятки лет были тимлидом в России, выше, чем на L6, переехать удастся вряд ли (рады будем опровержению в комментариях, если вам удалось).

Подробнее про грейды в FAANG мы уже разбирали в одной статье. Там прописаны примерные соответствия уровней и ожидаемые требования.


Лучшие вакансии — в нашем телеграм-боте! Не обязательно откликаться на вакансии, не обязательно искать себе работу — можно использовать бот как инструмент, чтобы следить за рынком: насколько ваша вакансия соответствует рынку. Вот здесь чувак узнал, например, что его питерская зарплата была на 60% (!!!) меньше, чем он мог бы зарабатывать.