TGViewer
Сергей Озеранский Сергей Озеранский @sergeiozeranskii · 2.34K subscribers
Post #60 3K
🧠 Идеальное интервью для кандидата или как я провожу техническое собеседование

За последние годы я провёл довольно много технических собеседований. И выработал для себя формат, который помогает максимально эффективно понять кандидата: как он думает, как решает задачи, какие паттерны знает и насколько он senior не по тайтлу, а по сути.

Вот из чего состоит моё интервью 👇
это не все, но это вектор.

1️⃣ Глубинный разбор опыта

Фокус на последние 1.5–2 года. Это наиболее актуальный и релевантный опыт. Я не просто спрашиваю: "С чем работал?" - мне важно:
- Какие проблемы решал и в каком контексте?
- Как принимал технические решения?
- Что предлагал, что внедрял, за что брал ответственность?

Если человек говорит, что работал с Kafka или с микросервисной архитектурой - я не спрашиваю про internals.
Я жду, что он знает, как её применять в реальных задачах. Знает такие паттерны как:
- Transaction Outbox
- Message Relay
- Message Deduplication
- At-Least-Once / Exactly-Once semantics
- И чем отличаются Kafka, SQS, RabbitMQ по задачам.

Потому что инструменты можно поменять. А инженерное мышление и знание устойчивых паттернов - остаётся.

Еще люблю спросить, почему выбрали микросервисную архитектуру? Вопрос со звездочкой 😜

2️⃣ Оптимизация и мышление через алгоритмы (но не те, что спрашивают в Яндекс)

Я даю кейс: есть проблема с производительностью. Что ты будешь делать?

Если человек сразу кидает 3 способа оптимизации - это минус. Значит, гадает.

🧩 Мне важен алгоритм мышления:
- Как он ставит гипотезы?
- Умеет ли строить pipeline поиска проблемы?
- Понимает ли, какие метрики смотреть, какие инструменты использовать?
- Понимает ли что нужно изменить в конкретных случаях и как анализировать результаты?

Я не требую знания названий всех техник, важно - чтобы умел думать как инженер, а не просто "помнить готовые ответы" и стрелять рандомными гипотезами, которые не подкреплены данными.

3️⃣ Чтение и анализ кода

Это важнейшая часть.
Я стараюсь не касаться в теоритической части интервью вопроса кода, так этот этап все прекрасно показывает. Я много раз сталкивался когда слышал верные красивые определения SOLID, но на практике было все грустно.

Я даю кусок кода. Один файл, единственный. Типичный кейс для code review.

И тут открывается самое интересное.

Что я смотрю?

✅ Понимает ли человек SOLID-принципы:
- Где SRP нарушен? Делает ли метод слишком много?
- Нарушен ли OCP - легко ли расширять код?
- Видит ли проблемы наследования / полиморфизма?

✅ Указывает ли на отсутствие тестов - ведь это единственный файл, и если не спросить про покрытие, то… ну, как бы 🤷‍♂️

✅ Обращает ли внимание на типы и эффективность:
- dict vs list на in
- Явная типизация
- Контракты функций и стабильность интерфейсов

✅ Видит ли уязвимости и недочёты:
- SQL-inj? Отсутствие экранирования?
- Потенциальные None и краши?
- Место, где забыли закрыть файл или соединение?
- Расширяемость и безопасность API?

✅ Умеет ли мыслить выше линтинга.

❌ Если кандидат тратит 15 минут из 30 на то, чтобы рассказать, где нужно пробел поставить и как переименовать переменную - сразу нет.

📌 Я ожидаю: заметил → предложил решение (линтер, форматтер, SAST) → пошёл дальше.
Хочу слышать не "назовём функцию по-другому", а:
- "Этот код не тестируем, потому что... Надо так..."
- "Нарушена инкапсуляция, потому что... Надо так..."
- "Вот тут возможен race condition, потому что... Надо так..."
- "Здесь не хватает валидации... Надо так..."
- "Этот вызов не проверяется на авторизацию... Надо так..."

Вот так и раскрывается опыт и уровень ИНЖЕНЕРА.

🟡 Итог

🎯 Идеальное интервью - это не экзамен. Это проверка инженерного мышления.

Если после интервью я слышу (а это бывает не редко):

"Спасибо, за собеседование, я много нового узнал"
то… скорее всего, это будет отказ. Но это не значит, что нужно благодарить за интервью 😉

Потому что я узнал о кандидате меньше, чем он от меня. А должно быть наоборот.

🛠 P.S. Уважаю кандидатов, которые умеют думать, спорить, аргументировать и признавать границы своей экспертизы.
Потому что даже если не подойдёт позиция сейчас - я таких точно запомню.
  • 👍 40
  • 🔥 19
  • ❤ 15
  • 🤔 2
More from @sergeiozeranskii
  1. Oct 17, 2026Последние недели постоянно приходилось выяснять в случае каких либо проблем: это у нас что…
  2. Oct 16, 2026Я пока не понимаю, шутка это или нет, но она летает? https://www.tesla.com/roadster
  3. Oct 15, 2026Продолжаем четверг! Если, что я совсем не против закрытых и/или коммерческих проектов от п…
  4. Oct 14, 2026Когда я работал с Yandex Cloud, рабочий IP почти никогда не получался с первой попытки: ад…
  5. Oct 14, 2026Думаю купить FIDO2-ключ. По ряду причин. Первая: фишинг. TOTP-коды и пуши отлично перехват…
  6. Oct 13, 2026Воу-воу! Куда-то я разогнался, а сегодня только вторник
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →