Этап 2: Hard Skills Время чтения: 14 мин Обновлено: Сентябрь 2026

Техническое интервью в банке: алгоритмы, кодинг и System Design

Все о секциях лайвкодинга, проектировании высоконагруженных банковских систем и типичных вопросах на собеседованиях

Введение и специфика этапа

Банковские IT-системы работают с миллионами транзакций, строгой финансовой согласованностью (ACID, distributed transactions) и нулевой толерантностью к потере данных. Поэтому технические собеседования в банках глубже и требовательнее классических web-студий: от вас ждут глубокого понимания структур данных, работы реляционных СУБД, очередей сообщений и принципов отказоустойчивости.

Этапы отбора и структура

Ниже представлена типовая последовательность оценки кандидатов на данном этапе:

Алгоритмическая секция (Live-coding)

35–45 минут

Решение 1–2 задач уровня LeetCode Medium на платформе (Яндекс Контест, HackerRank, CoderPad) с оценкой временной и пространственной сложности O(N).

Теория платформы и фреймворка

20–25 минут

Глубокие вопросы по языку: многопоточность, сборка мусора, устройство коллекций, транзакционность Spring/Django/GORM.

Базы данных и брокеры сообщений

15–20 минут

Индексы PostgreSQL (B-Tree, Hash, GiST), уровни изоляции транзакций, оптимизация сложных запросов, партиционирование Kafka, семантики доставки (at-least-once, exactly-once).

System Design (для Middle+ и Senior)

30–45 минут

Проектирование архитектуры компонента: платежный шлюз, сервис кешбэка, антифрод-система, расчет баланса в реальном времени.

Реальные вопросы с собеседований и разбор ответов

Вопросы собраны из сотен верифицированных отзывов кандидатов и действующих сотрудников:

«Как реализовать идемпотентность обработки платежей в микросервисной архитектуре?»
Зачем это спрашивают:

Критически важный вопрос для банковского бэкенда. Сетевые сбои приводят к повторной отправке запроса клиентом, и списание не должно произойти дважды.

Как отвечать (идеальная стратегия): Использование Idempotency Key (уникальный UUID запроса). При получении запроса проверяем в Redis или таблице операций с уникальным индексом. Если запрос в обработке — возвращаем 409/pending; если выполнен — отдаем сохраненный результат; если новый — фиксируем в транзакции.
Красный флаг (чего нельзя говорить): «Просто надеяться, что фронтенд не пошлет два запроса» или отсутствие понимания распределенных блокировок.
«Какие уровни изоляции транзакций вы знаете и какие аномалии они предотвращают?»
Зачем это спрашивают:

Проверка глубокого понимания реляционных СУБД (PostgreSQL/Oracle).

Как отвечать (идеальная стратегия): Read Uncommitted (грязное чтение), Read Committed (дефолт в Postgres, предотвращает dirty read), Repeatable Read (предотвращает неповторяющееся чтение, в Postgres также решает phantom reads через snapshot isolation), Serializable (предотвращает аномалии сериализации через SSI).
Красный флаг (чего нельзя говорить): Незнание разницы между Repeatable Read и Serializable, незнание MVCC в PostgreSQL.
«Как работает паттерн Saga и чем он отличается от двухфазного коммита (2PC)?»
Зачем это спрашивают:

Проектирование распределенных транзакций при отказе от тяжелых монолитов.

Как отвечать (идеальная стратегия): 2PC блокирует ресурсы и плохо масштабируется при сбоях сети. Saga делит бизнес-транзакцию на цепочку локальных транзакций с компенсирующими действиями при отказе. Бывает оркестрованная (центральный координатор) и хореографическая (на событиях Kafka).
Красный флаг (чего нельзя говорить): Предложение использовать XA/2PC на 10 независимых микросервисов с высокими нагрузками.
«Как организовать семантику Exactly-Once доставки сообщений в Apache Kafka?»
Зачем это спрашивают:

Финтех оперирует событиями аудита и списания средств.

Как отвечать (идеальная стратегия): Включает связку: Idempotent Producer (enable.idempotence=true, транзакционный продюсер с transactional.id), фиксация смещений (offsets) в рамках транзакции Kafka, чтение с isolation.level=read_committed.
Красный флаг (чего нельзя говорить): Утверждение, что Kafka "из коробки" всегда гарантирует Exactly-Once без дополнительной конфигурации.

Топ ошибок, ведущих к мгновенному отказу

  • Написание неработающего кода без проверки граничных случаев (пустой массив, null, переполнение int)
  • Молчаливое написание кода без рассуждения вслух на live-coding секции
  • Игнорирование асимптотической сложности O(N) и предложение квадратичных O(N²) решений
  • Неумение объяснить, как устроен GC (сборщик мусора) и работа памяти в выбранном языке
  • Споры с интервьюером при указании на ошибку в логике алгоритма

Пошаговый чеклист подготовки

1 Прорешайте топ-50 задач LeetCode (разделы: Arrays, Hash Table, Two Pointers, Trees, Dynamic Programming)
2 Потренируйтесь кодить без IDE с автодополнением в простом текстовом редакторе
3 Повторите архитектурные паттерны: Saga, Outbox Pattern, CQRS, Circuit Breaker, Rate Limiting
4 Изучите структуру хранения данных B-Tree и Explain Analyze в PostgreSQL
5 Рассмотрите карьерные треки в банках (/career-paths/it) для понимания требований к грейдам

Что говорят сотрудники о найме

«Мы не ищем олимпиадников, которые помнят алгоритм Дейкстры наизусть. Нам важно видеть, как кандидат декомпозирует задачу, обрабатывает ошибки и думает о производительности под нагрузкой.»

— Lead Backend Engineer (Сбербанк)

«Техсобеседование длилось 1 час 20 минут. Была 1 алгоритмическая задача на скобки и хэш-таблицы, затем 40 минут плотного диалога по Spring Boot, Kafka и оптимизации индексов.»

— Middle Java Developer, прошел в финтех (ВТБ)

Вопросы и ответы по теме

В большинстве банков (Т-Банк, Сбер, Альфа) разрешено быстро заглянуть в официальную документацию синтаксиса, предварительно предупредив интервьюера. Искать готовое решение задачи категорически запрещено.

Главное — не молчать. Проговорите интервьюеру свои мысли, опишите наивное решение «в лоб», объясните, где возникает сложность. Интервьюеры почти всегда дают наводящую подсказку, чтобы проверить обучаемость.

В Сбере и ВТБ обычно 1 расширенное техническое интервью. В Т-Банке классический процесс включает 2–3 секции (алгоритмы, платформа, system design для Senior).
Добавить отзыв