Поведенческое интервью проверяет не харизму и не «культурный фит» в рекламном смысле. Проверяет, как вы действуете, когда тикет неясный, релиз уже в проде, вы не согласны с решением или сами ошиблись. Код на этом этапе почти не пишут. Смотрят, можно ли вас поставить в команду без постоянного присмотра и без яда в ретро.
Лучший рабочий инструмент здесь — STAR без произнесения названия метода вслух: ситуация, задача на вас, ваши действия, результат и одна фраза урока. Чем выше грейд, тем больше веса у этого этапа — это видно по senior-слотам. Базовый набор HR-вопросов — в вопросах на собеседовании. Самопрезентация — отдельный блок: рассказать о себе, не вшивая туда конфликт и вилку.
Коротко:
- Готовьте 6–8 историй из последних двух-трёх лет, не 80 заученных формулировок.
- В действии говорите «я», не прячьтесь за «мы», и не геройствуйте в одиночку вопреки фактам.
- Результат — число, срок, снятый риск или честный провал плюс что изменили.
- Одна история закрывает несколько вопросов, если меняете акцент.
- Абстракции «в целом я за коммуникацию» на этом этапе равны пустому ответу.
Что интервьюер пытается предсказать
Будете ли вы эскалировать вовремя или молчать три дня. Умеете ли спорить с решением без театра. Берёте ли ошибку на себя или ищете козла. Помогаете ли смежным ролям или кидаете через забор. На junior смотрят зачатки этого на проектах и практике. На middle — регулярность. На senior — влияние на процесс, не только личный тикет. Смотреть, какого объёма слот, удобно по senior-вакансиям и по описанию дежурств в обычных backend-ролях.
Вопросы рифмуются: «сложная задача», «конфликт», «дедлайн», «ошибка», «не согласились» часто закрываются двумя-тремя сюжетами. Поэтому сначала банк историй, потом натягивание на формулировку, не наоборот.
STAR, который звучит как речь, а не как слайд
- Situation. Два предложения: продукт, что сломалось или было неясно, ограничение по времени. Не история компании с 2018 года.
- Task. Что было на вас. Граница: чего вы не могли решить (провайдер, чужой сервис, решение бизнеса).
- Action. Два-три шага, которые делали вы. Имена ролей, с кем согласовали. Без списка из десяти «ещё я».
- Result. Измеримый итог или честный минус. «Стало лучше» без якоря — слабый конец.
- Урок. Одна фраза. Вторая уже нравоучение.
На скрининге хватает сжатого STAR на 45–60 секунд. На менеджерском можно полторы минуты, глубже в действие. Если на второй минуте вы всё ещё описываете оргструктуру — вы уже не про себя.
Банк из восьми сюжетов
Выпишите на одну страницу. Для каждого: контекст, ваша роль, два шага, итог, урок. Типы, которые закрывают большую часть вопросов:
- Фича или сервис до продакшена со сопротивлением или неясной постановкой.
- Инцидент или горящий баг.
- Ошибка, которую допустили вы, и как закрывали.
- Несогласие с техническим или процессным решением.
- Жёсткий дедлайн и что вырезали, чтобы успеть.
- Работа со смежной ролью: поддержка, QA, продукт, соседняя команда.
- Узкое место, которое вы сами замедляли — заготовка на слабую сторону.
- Кусок, которым гордитесь — заготовка на сильную, с фактом, не с прилагательным.
Junior без длинного штата берёт проекты, практику, волонтёрство, очередь в поддержке. Принцип тот же, что в письме без опыта: артефакт важнее должности. Не заполняйте банк вузом, если есть хоть один сделанный кусок работы.
На каждую карточку добавьте одну строку «куда копать дальше»: индекс, ключ идемпотентности, тикет, ссылка на постмортем. Интервьюер почти всегда задаст один уточняющий вопрос. Если за карточкой пусто, STAR звучит как заученный абзац и лопается на follow-up. Не выдумывайте проценты улучшения, которых не мерили: «очередь разобрали за двое суток» сильнее «оптимизировали на 47%».
Пример 1. Инцидент: релиз и очередь ретраев
Вопрос: «расскажите про сложную ситуацию в проде».
Ситуация: провайдер доставки начал отвечать с задержкой, сверки разъехались, в кабинете поддержки платежи висели в статусе «неизвестно», очередь ретраев за сутки выросла до нескольких тысяч.
Задача на мне была не починить провайдера, а не допустить двойных списаний и вернуть статус, который поддержка может сказать клиенту, за пару дней, пока бизнес не отключил метод.
Что сделал: остановил слепой ретрай по этому провайдеру, спорные операции увёл в ручной карман с идемпотентным ключом. Вместе с QA закрыли смоук на повторное списание. В код провайдера не лезли.
Результат: двойных списаний не было, очередь за двое суток ушла ниже обычного SLA, ночные пинги поддержки прекратились. Урок: при внешнем сбое сначала безопасный стоп и ясный статус, потом красивая интеграция.
Этот сюжет натягивается и на «как вы работаете в инциденте», и частично на «сотрудничество с QA». Не ругает провайдера как главного злодея и не спасает компанию в одиночку. Похожий английский каркас — в интервью на английском.
Пример 2. Конфликт: не согласились с «давайте зашьём костыль в прод»
Вопрос: «был ли конфликт в команде / не соглашались с решением».
Ситуация: перед релизом фичи скидок продукт просил отдать расчёт на клиент, «так быстрее, бэкенд не успевает». Скидка уже крутилась в админке, риск — разные суммы в корзине и на оплате.
Задача на мне как на backend: не пропустить расхождение, которое поддержка потом не разберёт, и при этом не сорвать дату, которую уже озвучили клиентам.
Что сделал: не спорил «в принципе клиент плохой». Собрал два примера, где округление на клиенте уже разъехалось бы с нашими правилами, показал на встрече. Предложил компромисс: на дату отдаём упрощённое правило на бэке, без трёх краевых типов скидок, их выносим на следующую неделю. Зафиксировали в тикете, что клиент только отображает, не считает.
Результат: релиз в срок с урезанным набором, расхождений на оплате не было. Два типа скидок ушли спринтом позже. Урок: спор без примера и без урезанного плана звучит как упрямство; спор с примером и датой — как инженерия.
Интервьюер слышит, что вы умеете не проигрывать дату и не сдавать инвариант. Нет яда в адрес продакта. Нет «я настоял и все поняли, что я прав».