Вернуться в видеотеку

Гриша Скобелев, Саша Бармин: Публичное собеседование Senior Software Engineer

Публичное учебное интервью по Java для Senior-уровня с разбором архитектуры, JVM, многопоточности и задач на рассуждение. В финале участники обсуждают процесс найма, system design и вопросы кандидата к работодателю.

Источник: { между скобок }

Открыть на YouTube

Таймлайн

Коротко о видео

Это публичное мок-собеседование на Senior Java-разработчика: Гриша Скобелев интервьюирует Сашу Бармина, который рассказывает о своём опыте проектирования банковского бэкенда в AWS с мульти-региональной репликацией. Техническая часть охватывает SOLID, TDD, Spring, профилирование JVM, выбор GC, надёжную доставку сообщений через Kafka и внешние вызовы из транзакций. В live-coding-секции разбирают исключения, Java Memory Model, синхронизацию, concurrent-коллекции и проектирование парсера строк; затем участники обсуждают вопросы кандидата, system design и устройство интервью.

Затронутые темы

Что взять на заметку

  • Начинать рассказ о проекте стоит с бизнес-контекста и ограничений: кандидат связал свой опыт банковского онбординга с вымышленным международным сервисом ветеринарных клиник.
  • Для надёжной отправки событий участники предлагают transactional outbox/inbox, выбор семантики доставки и дедупликацию сообщений на стороне consumer.
  • Удалённый HTTP-вызов внутри транзакции создаёт неоднозначные состояния при сетевых сбоях; в обсуждении предлагают хранить запросы для повторов, применять backoff, буферизацию и отслеживать состояние обработки.
  • Dependency Inversion Principle отделяют от Dependency Injection: первый задаёт зависимость от абстракций, а второй является способом предоставления зависимостей через IoC-контейнер Spring.
  • Для общего счётчика недостаточно полагаться на порядок запуска потоков: нужно обеспечить happens-before, например через Thread.join; для атомарных операций подходят Atomic-типы или синхронизация.
  • В задаче с парсером сначала следует уточнить требования к дубликатам ключей, порядку элементов и необходимости возвращать исходную строку: от этого зависит выбор HashMap, LinkedHashMap и стратегии хранения.
  • Кандидату полезно спрашивать о реальной инженерной культуре, переработках, критериях роста, бюджете на повышение и взаимодействии между командами, а не ограничиваться декларациями об Agile и performance review.

Рекомендуем посмотреть

2 ч 15 мин
BackendSenior

Собеседование senior backend-разработчика / Node.js | Хекслет

Длинное учебное интервью о проектировании backend-систем и инженерных компромиссах. Основные темы — шина сообщений в финтехе, Node.js-стек, тестирование, инфраструктура, производительность и культура разработки.

2 ч
Backend

Техническое собеседование Java Developer | Топ вопросы Java | Подготовка к интервью

Разбор живого технического интервью Java-разработчика с ответами кандидата, уточнениями ведущего и планом подготовки. Охватываются Java Core, многопоточность, SQL, транзакции, Spring Boot и поведение на собеседовании.