Как проходит техническое собеседование backend-разработчика
Скрининг, секция по языку, задача, вопросы по системе. Разбираем, что проверяет каждый этап, по каким признакам вас переводят на следующий и где чаще всего останавливают.
Собеседование на backend — это не одна встреча, а четыре-шесть, и весь процесс занимает от недели до месяца. Названия у них в каждой компании свои, но устроены они одинаково: сначала короткий отсеивающий разговор, потом от двух до пяти технических секций, потом финал с командой. Секции — ядро процесса, всё остальное их обслуживает. Ниже — что проверяет каждый этап, сколько он длится и почему их именно столько.
Сколько этапов и как они устроены
Число этапов у разных компаний разное, а структура за этим разбросом повторяется. Любой этап попадает в один из трёх типов.
Отсев. Один разговор с рекрутёром, десять-пятнадцать минут. Технического содержания в нём нет.
Технические секции. От двух до пяти встреч по часу-полтора, каждая с инженером. Это и есть собеседование в том смысле, в котором вы о нём думаете.
Финал. Разговор с будущим руководителем или командой. Технику здесь почти не спрашивают — обсуждают задачи, проект и то, сработаетесь ли вы.
Подготовка распределяется по ним неравномерно. Технические секции — от двух до пяти встреч по часу-полтора — занимают почти всё время процесса, и вкладываться стоит туда.
Список секций рекрутёр обычно называет на первом же звонке. Если не назвал — спросите: узнав состав, вы узнаёте программу подготовки.
Первые два разговора: рекрутёр и технический скрининг
Разговор с рекрутёром и технический скрининг часто путают, хотя это совершенно разные встречи.
Разговор с рекрутёром — десять-пятнадцать минут, и технических вопросов в нём нет. Здесь сверяют вилку, формат работы, сроки выхода и то, на какой грейд вы вообще претендуете по резюме. Технических знаний он не проверяет вовсе — и именно поэтому говорить про вилку и формат честнее сразу, а не в конце процесса: этот звонок для того и существует.
Технический скрининг — уже час с инженером, и устроен он не так, как остальные секции. Это быстрый обход широкого круга: базы данных, сети, операционные системы, безопасность, ваш язык — плюс короткая задача на живое кодирование в конце. Глубины здесь не ждут. Проверяют покрытие: нет ли области, где вы проваливаетесь совсем.
Отсюда практический вывод. К скринингу готовятся вширь, а не вглубь: лучше уверенно ответить на двадцать вопросов из разных областей, чем блестяще разобрать один и поплыть на соседнем.
Четыре типа технических секций
Названия различаются: где-то секция называется «Язык», где-то «Golang-скрининг», где-то просто «техническое интервью». Но роли повторяются, и типов ровно четыре.
Секция по языку и стеку — самая длинная, шестьдесят-девяносто минут. Здесь дают код на ревью и просят его изменить под задачу, спрашивают про поведение рантайма, конкурентность и примитивы языка, моделируют проблему и слушают, как вы будете её решать. Проверяют не знание синтаксиса, а то, работали ли вы с языком всерьёз.
Секция по алгоритмам — обычно час. Строки, списки, деревья, хеш-таблицы; поиск, обход, сортировка, динамическое программирование. Оценка сложности входит в состав секции наравне с самой задачей — её называют в описании явно, а не подразумевают.
Секция по архитектуре — тоже около часа. Вас просят формализовать расплывчатую задачу, спроектировать интерфейс системы, прикинуть нагрузку и необходимые мощности, описать модели и потоки данных. Формулировки звучат намеренно широко: спроектируйте сервис обмена фотографиями, спроектируйте чат, в котором стример общается с подписчиками.
Секция по опыту — разговор о ваших проектах: что делали, какие решения принимали, почему именно такие. Идёт вглубь одного-двух проектов, где у вас была самостоятельная роль, а не по списку из резюме.
Внутри секции по языку темы распределены неравномерно, и это распределение полезнее очередного списка вопросов. В Go почти треть вопросов приходится на конкурентность — каналы, горутины, примитивы синхронизации и гонки вместе. В Python пятую часть занимают асинхронность и GIL, а первая тема — функции, декораторы и генераторы. В Java распределение ровнее, но около пятой части приходится на фреймворк.
На разные грейды набор разный, и заранее известен. Спросите у рекрутёра список — и вы будете готовиться к трём конкретным встречам, а не к абстрактному «собеседованию». Как отвечать внутри секции, чтобы ответ засчитали, — отдельный разговор: про это есть разбор про сильный ответ.
Как секция устроена изнутри
Про то, как секция идёт изнутри, полезнее цифры, чем впечатления. В нашей выгрузке — 13 858 вопросов с 385 собеседований, и она даёт три вещи, которые сильно меняют подготовку.
Темп высокий. За одну встречу задают от двадцати пяти до пятидесяти вопросов. То есть на вопрос приходится минута-две, а не десять. Развёрнутый монолог здесь не помещается физически: нужен связный ответ на две минуты, из которого понятно, что вы понимаете предмет.
Около четверти разговора — не про технологии. Опыт, мотивация, обстоятельства, ожидания. Это не «разминка перед настоящими вопросами», это часть оценки, и она занимает заметную долю времени.
Кода намного меньше, чем принято думать. Задачи с живым кодированием — единицы процентов от всех вопросов, порядка одной-двух на встречу. Задача почти всегда есть, но она не занимает половину секции.
Последнее стоит перечитать, если вы готовитесь к собеседованию, решая задачи. Задачи нужны — но по объёму разговора их доля мала, а готовятся к ним чаще всего в ущерб всему остальному.
Грейд решает состав — и бывает причиной отказа
Число секций зависит не от компании, а от уровня, на который вы идёте. На junior и middle обычно две-три секции, на senior — четыре-пять. Дополнительные секции не «сложнее»: это другие области, чаще всего архитектура и опыт.
Отсюда неочевидное следствие. Отказ приходит не только за незнание. Распространённый сценарий выглядит так: все секции сданы, серьёзных провалов нет, но по совокупности вас оценили на грейд ниже искомого — а на этом грейде нужной позиции нет. Формально вы прошли, фактически получили отказ.
Это стоит понимать заранее по двум причинам. Во-первых, такой отказ не означает пробела в знаниях, и делать из него выводы про подготовку бессмысленно. Во-вторых, его можно предупредить: если вы претендуете на senior, а грейд для вас пограничный, разумнее обсудить это с рекрутёром на первом звонке, чем узнать через месяц.
Финалы, сроки и что переиспользуется
Финал — не всегда один. Секции проходят один раз, а результат показывают нескольким командам, и вы можете получить два-три финала подряд с разными руководителями. Технику там почти не спрашивают: обсуждают задачи, проект и распределение работы. Это скорее взаимный выбор, чем проверка.
Заодно это меняет арифметику. Пройдя секции, вы получаете не одну возможность, а несколько, и отказ одной команды не закрывает процесс.
Результат секции живёт дольше самого процесса. Крупные компании засчитывают пройденную секцию на срок до двух лет: вернувшись через год, вы проходите не всё заново, а только недостающее. Практически это значит, что неудачная попытка — не потерянное время, и повторный заход дешевле первого.
Со сроками стоит настроиться заранее. Компании стремятся уложить все секции в неделю и говорят об этом прямо. Но между секциями бывают паузы, и месяц от первого звонка до ответа — не исключение. Планируйте процесс исходя из месяца и ведите параллельно несколько компаний.
Готовьтесь не вслепую
Возьмите маршрут по своей роли и отрабатывайте ответы на вопросы с AI-разбором.