Развеиваем мифы о собеседованиях в FAANG
Наверное, уже все слышали про процесс собеседования в FAANG (и другой BigTech). Leetcode задачи, системный дизайн, поведенческие вопросы, culture fit, и прочие баззворды регулярно обсуждаются на Хабре. Коллективный разум Хабра более или менее пришел к общему консенсусу: это бессмысленная процедура, которую проектировали некомпетентные люди.
Волею судеб за десять лет опыта в FAANG+ мне повезло обсудить тему найма с множеством высокоуровневых инженеров, менеджеров, директоров, а также членов комитетов, принимающих решения о найме, из нескольких FAANG компаний. Этой статьей я хочу попробовать донести их позицию до широкой аудитории.
Распространенное и одобряемое мнение.
Недавно на хабре опубликовали статью, призывающую искоренить так называемые Leetcode-собеседования. Почему-то принимающие решения о найме инженеры из FAANG не спешат принимать это предложение. Зачем же им нужны Leetcode-интервью? На эту тему есть множество мифов. Мои любимые версии:
Глупые олимпиадники нанимают таких же олимпиадников
Нужно завалить кандидата, чтобы предложить ему меньшую ЗП
Тех компании просто не умеют нанимать разработчиков и потому дают глупые задачки на «код, который уже есть в стандартной библиотеке»
И даже более адекватные варианты, вроде того, что в Гугле все пишут алгоритмы на куче два раза в неделю, тоже далеки от реальности: даже если и действительно пишут, смысл Leetcode-интервью не в этом.
Большинство людей не понимают, как нанимает FAANG. Да, мы все видим, что делает Google, но мы не знаем, почему он это делает. Сторонний наблюдатель видит Leetcode секции и думает, что в FAANG сотрудники постоянно сталкиваются с алгоритмическими задачами. Другой наблюдатель знает, что это не так, потому он предполагает, что процесс интервью спроектирован некомпетентными людьми, ведь он не тестирует рабочие навыки. Третий задумывается глубже и заключает, что решение искусственных (и бесполезных на практике) задач — это некий стресс-тест, проверяющий кандидата на послушность и лояльность. Другие люди, часто даже уже устроившись в FAANG, но так и не поняв, почему их взяли, говорят, что это просто «не очень секретное рукопожатие», которое надо просто выучить для демонстрации желания устроиться на работу именно туда.
Все эти мнения регулярно мелькают в статьях и комментариях на хабре. Но что же думают про Leetcode и другие секции люди, которые спроектировали и уже десятилетия поддерживают и улучшают этот процесс? Давайте разбираться.
Миф 1: процесс найма сделан «как получится, лишь бы посложнее», у FAANG так много денег, что им не важно, как нанимать.
Процесс найма сделан совершенно точно не «как получится». Очень опытные директора и инженеры, суммарно с тысячами человеко-лет опыта, сели вместе, четко определили задачи найма и тщательно спроектировали процесс, решающий именно эти задачи. А после еще и регулярно оценивают и корректируют этот процесс вот уже больше двух десятилетий.
Миф 2: процесс найма в FAANG плохо работает. Вот у меня был коллега из Гугла, и он был плохим разработчиком.
Во-первых, процесс найма в FAANG подвергается очень тщательному анализу, и работает очень хорошо — для FAANG.
Во-вторых, ваш коллега из Гугла действительно может быть плохим разработчиком, и при этом действительно подходить Гуглу. Об этом еще поговорим ниже.
А в-третьих, разумеется, иногда этот процесс ошибается, и эти ошибки часто очень хорошо видны. Но наличие шероховатостей не означает, что нет четких целей или нет четкого и рабочего плана их достижения. И да, бюджет на ошибки заложен в этот план.
Миф 3: в FAANG так много кандидатов, поэтому процесс собеседования приходится ухудшать в угоду масштабированию и юристам.
На эту тему недавно была статья от коллеги. Не поймите неправильно, в этой статье все описано верно. Все эти детали действительно имеют место быть и требуют решений, и текущий процесс действительно их более или менее решает. Вот только это не суть проблемы. Если бы текущий процесс найма не достигал поставленных целей, то его бы мигом переделали на достигающий, и делали бы максимально обьективным и масштабировали уже новый процесс.
Итак, чтобы понять, почему процесс найма выглядит так, как выглядит, в первую очередь надо понять целеполагание его авторов. Какие же цели?
На этот вопрос проще всего ответить очевидным ответом: цель процесса найма в FAANG нанять ровно тех людей, которых этот процесс нанимает. Иными словами, посмотрите, кто проходит, выделите некий общий профиль, и вы поймете, кого они ищут. Чтобы не останавливаться на таком пространном ответе, пройдем по нескольким понятным признакам.
Миф 4: FAANG нанимает олимпиадников, которые ничего не понимают в реальном мире.
От успешного кандидата требуется быстро разбираться в непонятных, запутанных ситуациях. Leetcode-задачи (обычно это easy и medium, бывают простые из hard) отлично справляются с проверкой этого пункта. Вам дают запутанную головоломку, которую надо «открыть». Вот только цель задачи не в проверке знаний алгоритмов. Алгоритмы — это приятный бонус, вишенка на торте. Цель именно в поиске человека, который быстро разбирается в непонятных ситуациях — очень важный для реального мира навык. System Design собеседования так же отлично проверяют это качество, так как кандидату необходимо быстро разобраться в неких бизнес-требованиях.
Миф 5: FAANG нанимает разработчиков.
Да, вы не ослышались. FAANG не ищет разработчиков. Многие считают, что если позиция называется «Software Engineer», то ищут программиста. Это просто-напросто не так.
От кандидата требуется уметь программировать — общаться с компьютером на его языке. Знаний конкретных языков, библиотек, фреймворков и прочего им не нужно. Быть профессиональным разработчиком совсем не обязательно. Leetcode-задачи отлично показывают, может ли кандидат объяснить компьютеру, что кандидат от этого компьютера хочет, а выше проверенный навык быстро разобраться в непонятной ситуации позволяет изучить любой конкретный API, от библиотеки, до языка программирования и до спеки на железку.
Миф 6: гиганская машина FAANG нанимает маленькие винтики.
Все ровно наоборот, винтики как раз отсеиваются на собеседовании. Для успешного прохода от кандидата требуется качество, которое в FAANG называют »Leadership». Все, наверное, слышали про Amazon Leadership Principles. На самом деле весь FAANG+ ценит эти качества, Амазон просто громче всех про это говорит.
Перевод на Русский язык этого слова как «лидерство» мне, как носителю Русского языка, кажется не отражающим сути дела. В Русском языке «лидерство» означает «лидерство над кем-то». В Русском языке не могут вообще все быть лидерами. В FAANG словаре же этим словом называют много чего. На мой вкус это слово проще всего раскрыть как «making shit happen» — способность делать дела, преодолевая трудности.
Иногда трудности заключаются в необходимости организовывать людей для решения сложных задач, но это уже очень продвинутый уровень. Самая первая трудность, с которой сталкивается инженер любого уровня — это банальное незнание, как решать конкретную задачу. Засучить рукава и разобраться — это тоже называется «Leadership». Как вы уже могли догадаться Leetcode задачи отлично подходят для проверки «базовой» версии этого качества, демонстрируя, как кандидат поведет себя, встретив незнакомую проблему. Но основной проверкой Leadership качеств, конечно, являются поведенческие интервью.
В этом месте многие подумают, что индустрия подготовки к Leetcode собеседованиям обнулила эту идею, так как задачи теперь всем знакомы. Не стоит делать выводы так быстро. Кандидат может сколько угодно раз решить задачу на литкоде, и даже выучить ее наизусть, от этого он не станет понимать, что же от него ожидает комитет, который принимает решение о найме.
Миф 7: FAANG ищет самых лучших инженеров.
FAANG, разумеется, хочет нанимать максимально хороших инженеров, это правда. Но это не главная цель. В первую очередь, FAANG ищет людей, которым будет комфортно в FAANG. Ни компании в целом, ни конкретным будущим коллегам не хочется, чтобы свеже-присоединившийся человек не любил свою работу. Никакая крутость не скомпенсирует искренний интерес. В этом суть так называемых «Culture fit» собеседований, но на самом деле, подходит ли кандидат по культуре, проверяют вообще все секции.
Например, всем известно, что Гугл все время закрывает проекты. Не только большие продукты, вроде Google+, но и вплоть до мельчайшего проекта внутри компании. Это не случайно. Закрытие проектов — это публично декларируемая ценность компании: «Легко открываем — легко закрываем». Каждый сам решает, нравится ли это ему или нет. Но независимо от того, согласны ли вы с Гуглом, он выбрал эту стратегию и вот уже 25 лет ей довольно успешно следует. Несогласные с этой культурой сотрудники будут каждый день плеваться от работы в Гугле, когда их проекты будут закрывать. Гугл же, публично декларируя свою культуру и ценности на каждом углу, буквально просит несогласных не приходить на собеседования. Но они все равно приходят, и компании нужно их отфильтровывать.
Миф 8: Надо сжать зубы и пройти этот дурацкий паплайн найма в FAANG, чтобы получить работу мечты. Тяжело в учении — легко в бою!
Это вообще не так. Весь процесс собеседований — проверка culture fit. Если вам отвратителен процесс найма в FAANG компанию, то и работать там вам не понравится.
Миф 9: Гугл успешный, значит хорошо нанимает, надо нанимать так же!
Понимая, какие качества ищут в кандидатах FAANG компании, видно, что все секции собеседований специально подобраны для проверки именно этих качеств. Так же не удивительно, что многие разработчики считают этот процесс никуда негодным. Конечно он никуда не годится, если задача — нанимать разработчиков. Если вашей компании нужны разработчики, пожалуйста, не копируйте Гугл. Это не будет работать.
На самом деле не миф 9: Гугл успешный, значит хорошо нанимает, надо нанимать так же!
Копируйте Гугл, но не так, как вы думаете — ставьте перед своей компанией четкие цели и проектируйте процесс найма в соответствии с этими целями, как делает Google и другие BigTech компании. Вдумчивый подход к найму — большая часть успеха.
Надеюсь, эта статья поможет развеять магию процесса найма в FAANG и понять, хотите ли вы вообще туда попасть, и если да, то какие качества нужно показать на собеседованиях. Независимо от того, нравится ли вам эта система или нет, полезно ее хотя бы понимать. А для руководителей, которые занимаются наймом, эта статья поможет описать, кого такой процесс спроектирован нанять, и понять, нужен ли он вам.
Эту и другие темы, связанных с наймом и карьерой в FAANG компаниях с точки зрения принимающих решения, я раскрываю более детально у себя в Telegram канале. В последних постах я более детально разбираю обязанности Software Engineer в FAANG, а так же обьясняю, почему Leetcode секции — тоже поведенческие.