В этой статье я хочу поговорить об этапах отбора в FAANG (он же MAANG) компании. Сразу оговорюсь, что к таким компаниям я отнесу не только компании, которые входят в аббревиатуру, но и все компании, которые проводят собеседования по такой же системе.  И так, как выглядит типичное собеседование в такие компании (в зависимости от компании/позиции набор секций может отличаться, я опишу наиболее часто встречающиеся). Первое, что происходит везде - созвон с рекрутером. Тут в целом все стандартно, задаете друг другу пару вопросов и дальше рекрутер минут 10 дает описание проектам, которое улетает у тебя из головы сразу как только ты покинешь звонок. Вторым этапом идет технический скрининг, который может провести рекрутер, тогда это будет сделано в пункте 1, либо отдельным звонком технический специалист. Дальше начинается самое интересное: общение по твоему языку и стеку, алгоритмическая секция, сис дизайн, behavioral (она же поведенческая) секция. На этих этапах остановимся поподробнее.  Вы только вдумайтесь, чтобы с нуля подготовиться к собеседованию (с нуля, это не значит, что ты решил "вайти в айти", а хочешь пройти собеседование в FAANG like компанию первый раз, либо после долгого перерыва) приходится как минимум год решать алгоритмические задачки с LeetCode, HackerRank или любого другого аналога. Это напоминает мне подготовку к экзамену. Просто подумайте, что успешное прохождение этой секции может сказать о кандидате? По мне так то, что он успешно может решать задачки с LeetCode, так что если для позиции важен такой навык, то это безусловно плюс. Потом начинается подготовка к сис. дизайну, на котором обычно просят спроектировать какую-нибудь популярную соц. сеть или что-то около того, поэтому логично будет заняться изучением и запоминанием этого процесса, например, с помощью всем известной книге Grokking the system design interview. Этот этап выглядит более полезным, чем предыдущий, но только лишь с первого взгляда. Во-первых нужно понимать, а действительно ли от кандидата будут требоваться навыки построения таких систем или он будет сидеть и фиксить пару багов за спринт? Даже если и нужно, опять же, далеко не всегда прохождение секции сис дизайна в таком виде даст понимание о навыках кандидата. Он может не иметь вообще никакого реального опыта проектирования сложных систем, но заучивание и получение навыка прохождения таких секций вполне достаточно для получение апрува. Третьим этапом идет поведенческая секция. Тут я даже не знаю, что сказать. Для тех, кто не знает, на этой секции обычно у тебя  спрашивают про разные ситуации, которые могут возникнуть в ходе работы (например, конфликты/споры и тд) и как ты их решал. Хм, что можно на такое ответить? Наверно, вспомню какую-нибудь ситуацию, где условный джун Вася, которого я менторил, создал пр, я его поревьювил, а у Васи возникли вопросы к моим комментам и вместо того, чтобы конструктивно поговорить с Васей, я ему сказал иди в лес и иди переделывай, ведь я синьор? Конечно нет. Я просто придумаю парочку историй с небольшими конфликтами и как мы с коллегами это все хорошо разрулили, сделали выводы и обещали больше так никогда не делать. Амазон даже сформировал принципы лидерства Leadership Principles, на которые нужно опираться отвечая на такие вопросы. В итоге на этой секции от кандидата можно узнать, насколько хорошо он придумывает конфликтные ситуации и выходы из них.  Затем неплохо бы пройти парочку собеседований в компании, у которых это занимает один этап, чтобы повспоминать основные вопросы по твоему стеку (да, много вещей просто забывается, т.к. ты ими не пользуешься в данный момент, но легко вспоминаются парочкой запросов в гугл, если вдруг они понадобятся). И так, вот ты прошел такой путь подготовки и дальше… правильно, можно начинать проходить мок интервью и только после этого уже можно аплаиться на реальные вакансии. Итого получаем, что подготовка к собеседованию может занять где-то 1.5-2г (безусловно есть и те, кто это делает гораздо быстрее и те, у кого уходит еще больше времени). Много это или мало и стоит ли того, каждый для себя решает сам, но у меня напрашивается такой вывод. Прохождение собеседования не имеет практически ничего общего с реальным опытом работы. Это такой же навык как и владение java/c++. И тогда возникает вопрос, а для чего все это вообще нужно, если таким количеством этапов отбора проверяется не технический уровень кандидата, а его умение проходить эти этапы? P.S. Наверняка найдутся те, кто спросит у меня, ну если ты критикуешь такой подход, наверное ты знаешь как правильно? На самом деле нет. Я еще не встречал хороший и объективный способ оценки кандидата и вряд ли он вообще существует. Нужно просто признаться, что мы не умеем проводить собеседования. Java Developer