Модуль: Behavioral · Уровень: Senior

TL;DR#

  • Типичная воронка: рекрутерский скрининг → техническое (coding) → system design → behavioral/leadership → team fit / hiring manager → оффер.
  • На senior оценивают не «знаешь ли синтаксис», а глубину, trade-off-мышление, влияние на команду и продукт.
  • System design и behavioral на senior+ часто весят больше, чем алгоритмическая секция.
  • Вопросы кандидата работодателю — это часть оценки: senior проверяет компанию так же, как компания проверяет его.
  • Переговоры об оффере — нормальная и ожидаемая часть; не называй цифру первым, опирайся на рынок и весь компенсационный пакет.
  • Red flags бывают с обеих сторон — умей их читать.

Теория / Подход#

Общая структура воронки#

Конкретика зависит от компании, но скелет почти всегда такой:

  1. Рекрутерский скрининг (30 мин). Не технический по сути. Проверяют: адекватность, мотивацию, базовое соответствие (стек, уровень, грейд), вилку, локацию/таймзону, сроки. Здесь же первый разговор о деньгах — отвечать аккуратно (см. ниже).
  2. Техническое интервью / coding (60-90 мин). Для Go: live coding (часто конкуренция, каналы, контекст, обработка ошибок), либо разбор take-home, либо алгоритмы. На senior меньше про «решить задачку», больше про чистоту, тестируемость, обработку edge cases, и про то, как ты рассуждаешь вслух.
  3. System design (60 мин). Ядро senior-интервью. Спроектировать систему (rate limiter, лента, платежи, очередь). Оценивают сбор требований, прикидку нагрузки, выбор хранилищ, trade-off’ы, отказоустойчивость, эволюцию системы.
  4. Behavioral / leadership (45-60 мин). Конфликты, менторство, провалы, влияние, принятие решений. Часто ведёт hiring manager. STAR-формат.
  5. Team fit / hiring manager / bar raiser. Совпадение с командой, ценностями, ожиданиями по роли. В части компаний (Amazon-style) есть отдельный «bar raiser», независимый интервьюер.
  6. Оффер и переговоры.

Для senior нередко добавляют архитектурный раунд или дискуссию по реальному коду/инциденту.

Что оценивают по этапам (и как себя вести)#

Coding. Не молчи. Проговаривай: уточняю требования → набрасываю подход → говорю про сложность → пишу → тестирую edge cases. Senior-сигнал: ты сам называешь, что протестировал бы, и где код упадёт. На Go покажи идиоматичность (ошибки как значения, context, отсутствие лишних goroutine-утечек), а не «как на Java».

System design. Структура важнее, чем «правильный ответ» (его нет):

  1. Functional & non-functional requirements (явно спроси про RPS, объём данных, latency, consistency).
  2. Прикинь масштаб «на салфетке» (QPS, storage).
  3. API / data model.
  4. High-level diagram.
  5. Deep dive в 1-2 узких места по просьбе интервьюера.
  6. Bottlenecks, failure modes, эволюция. Senior-сигнал: ты сам поднимаешь trade-off’ы (CAP, consistency vs availability, стоимость) и говоришь «зависит от…».

Behavioral. STAR, акцент на «Action» и измеримый «Result». Истории заранее заготовь: конфликт, провал, менторство, сложное техрешение, влияние за пределами своей задачи, дедлайн. (См. файлы senior-questions.md, leadership-mentoring.md, conflicts.md.)

Team fit. Здесь оценивают и тебя, и совпадение ожиданий. Будь собой — мискаст вреден обеим сторонам.

Вопросы кандидата работодателю#

На senior это обязательная часть. Отсутствие вопросов читается как незаинтересованность. Хорошие вопросы одновременно дают тебе данные и показывают зрелость.

По инженерной культуре:

  • Как выглядит путь фичи от идеи до прода? Как часто релизите?
  • Как устроены code review и принятие архитектурных решений (есть ли RFC/ADR)?
  • Какой процент времени уходит на техдолг vs новые фичи?
  • Как выглядит on-call и как вы обращаетесь с инцидентами (есть ли blameless postmortem)?
  • Покрытие тестами / CI/CD — как реально, а не на бумаге?

По роли и росту:

  • Как выглядит успех в этой роли через 6/12 месяцев?
  • Как устроен карьерный рост от senior дальше (staff/lead track)?
  • Кто принимает технические решения и где здесь моя зона влияния?

По команде и людям:

  • Почему открыта эта позиция (рост / замена)?
  • Какая текучка в команде за последний год?
  • Как принимаются продуктовые решения, насколько инженеры в этом участвуют?

Менеджеру отдельно:

  • Какой у тебя стиль управления? Как часто 1:1?
  • Что для тебя «хороший senior»?

Переговоры об оффере#

Ключевые правила:

  1. Не называй цифру первым, если можешь. На вопрос «какие ожидания?» лучше: «Хочу понять весь объём роли и пакет, ориентируюсь на рынок для senior, открыт обсудить конкретику после оффера». Если давят — называй обоснованный диапазон с опорой на рынок.
  2. Смотри пакет целиком, а не только оклад: бонус, акции/опционы (и вестинг), подписной бонус, пересмотры зарплаты, отпуск, удалёнка, обучение, переработки/on-call оплата.
  3. Торгуйся вежливо и с обоснованием. «Спасибо за оффер, я очень заинтересован. По рынку и моему опыту я ориентировался на X, можем ли мы приблизиться к этой цифре?» Молчание после контр-предложения — нормально.
  4. Конкурирующий оффер — сильнейший рычаг, но не блефуй с фейковыми офферами (часто просят пруф, и репутация рынка узкая).
  5. Получи оффер письменно до увольнения с текущего места. Не увольняйся по устному обещанию.
  6. Не принимай в момент звонка. «Спасибо, дайте мне день-два обдумать» — нормально и ожидаемо.

Red flags#

Со стороны компании (тебе насторожиться):

  • Хаотичный процесс: переносы, тишина неделями, разные интервьюеры задают одно и то же.
  • Грубость, высокомерие интервьюера, перебивания.
  • Не могут внятно описать роль, ожидания, как выглядит успех.
  • «Мы как семья», романтизация переработок, «нужно гореть».
  • Высокая текучка / уклончивые ответы про неё.
  • Нет процессов: ни тестов, ни ревью, ни постмортемов, «героизм» как норма.
  • Давление принять оффер немедленно, exploding offer без времени на раздумье.
  • Лоуболл-оффер сильно ниже рынка + нежелание обсуждать.

Со стороны кандидата (что компания считает red flag у тебя):

  • Обвинение прошлых работодателей/коллег, токсичность.
  • «У меня не было конфликтов / провалов» — отсутствие рефлексии.
  • Не может объяснить почему выбрал решение, только что сделал.
  • Нет вопросов к компании.
  • Завышенный грейд без подтверждения (claims без примеров влияния).
  • Не слушает интервьюера, не уточняет требования, кодит/проектирует молча.
  • Нечестность в резюме/опыте.

Антипаттерны#

  • Молчаливое решение на coding/design — интервьюер оценивает ход мысли, а не только финал.
  • Сразу кодить в system design, не собрав требования и не прикинув масштаб.
  • Заученные STAR-истории без конкретики и цифр, одинаковые на все вопросы.
  • Назвать зарплатную цифру первым в скрининге, занизив себя.
  • Нет вопросов работодателю — читается как безразличие.
  • Принять оффер в момент звонка или уволиться до письменного оффера.
  • Игнорировать red flags компании из-за страха «а вдруг другого не будет».
  • Хейт прошлых мест — мгновенный минус в behavioral.
  • Спорить с интервьюером ради правоты вместо совместного рассуждения.

Вопросы на собеседовании#

В: Какие у вас зарплатные ожидания? (в скрининге) О: Не подставляйся первым. «Хочу сначала понять роль и весь пакет; ориентируюсь на рыночный уровень для senior. Готов назвать диапазон — он составляет X-Y на основе рынка и моего опыта.» Знай рынок заранее.

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

В: Спроектируй систему X. (system design) О: Не кидайся в схему. Сначала requirements (functional + non-functional, явно спроси числа), потом масштаб на салфетке, API, high-level дизайн, deep dive по запросу, потом bottlenecks и failure modes. Сам поднимай trade-off’ы.

В: Есть ли у тебя вопросы к нам? О: Обязательно да, 3-5 заготовленных. Смешай культуру (релизы, ревью, техдолг, on-call), рост (успех через 6 мес, путь после senior) и команду (почему открыта позиция, текучка). Это и оценка тебя, и сбор данных для решения.

В: У нас есть для тебя оффер на сумму Z. (переговоры) О: Поблагодари, вырази интерес, не принимай мгновенно. «Очень заинтересован. Можно мне день-два? И хотел бы обсудить — по рынку я ориентировался выше, можем ли сблизиться?» Смотри весь пакет, проси письменно.

В: Расскажи о самом сложном техническом решении и почему ты его принял. О: STAR с фокусом на trade-off’ы и альтернативы, которые ты рассмотрел и отверг, и почему. Senior-сигнал — что ты думал об обратимости, стоимости и эволюции, а не только «сделал и работает».

В: Что для тебя важно в следующей работе? (team fit) О: Будь честным — мискаст плохо для всех. Назови 2-3 реальных приоритета (масштаб задач, инженерная культура, рост в staff, баланс). Свяжи с тем, что узнал о компании на интервью.

В: Опиши конфликт в команде и как ты его разрешил. О: См. conflicts.md — STAR, общая цель, критерии/данные, «я»-действия, измеримый итог, и урок. Без обвинений других.

На что копают на senior+#

  • Глубина vs ширина: на middle хватает «знаю как сделать», на senior проверяют «почему так, какие альтернативы, какой trade-off».
  • Влияние за пределами своего кода: менторил ли, поднимал ли стандарты, влиял ли на архитектуру и продукт.
  • Trade-off-мышление: ответ «зависит от…» с явными критериями ценнее категоричного «надо так».
  • Зрелость в переговорах и вопросах: senior относится к интервью как к двустороннему процессу, оценивает компанию, не боится торговаться и читать red flags.
  • Коммуникация под давлением: как ведёшь себя, когда не знаешь ответа (честно: «не знаю, рассуждал бы так…») — это сильный сигнал, в отличие от блефа.
  • Согласованность сигналов: совпадает ли уровень в резюме с тем, что ты реально показываешь в design/behavioral. Расхождение — главный фильтр на senior+.