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

Java мок-интервью: схема БД, Kafka и транзакции

Кандидат проектирует БД интернет-магазина и отвечает о PostgreSQL, Kafka, Java-конкурентности и Hibernate.

Источник: ШОРТКАТ — менторская программа

Открыть на YouTube

Таймлайн

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

В live-интервью кандидат после рассказа о переходе из C и PHP проектирует базу данных интернет-магазина. Они вместе определяют таблицы users, products, prices, orders, orders_products и transactions, историю цен, внешние ключи и типы полей. После схемы интервьюер проверяет индексы, CREATE INDEX CONCURRENTLY, MVCC, VACUUM, WAL, уровни изоляции и SELECT FOR UPDATE. Далее кандидат отвечает о гарантиях Kafka, партициях и идемпотентности, volatile, CAS и virtual threads. Завершает техническую часть Hibernate: JDBC/JPA, @Transactional, N+1 и способы его устранения, а также Saga и readiness probe после деплоя.

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

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

  • Историю цены следует хранить отдельно от карточки товара с периодом действия записи.
  • Функция над колонкой в WHERE может помешать использованию обычного индекса.
  • At-least-once обработка Kafka требует дедупликации или идемпотентного обработчика.
  • volatile обеспечивает видимость, тогда как CAS и синхронизация решают атомарные изменения.
  • N+1 устраняют после наблюдения запросов через JOIN FETCH, EntityGraph или корректный запрос.

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

1:46:21
BackendSenior

Мок-интервью Java-разработчика: code review, SQL и Spring

Открытое мок-собеседование Java-разработчика: кандидат проводит code review и отвечает на вопросы по SQL и PostgreSQL, многопоточности, Kafka, распределённым транзакциям, Spring, Hibernate/JPA и JVM. В конце интервьюер даёт развёрнутый фидбэк по уровню кандидата.

46:07
BackendSenior

Java: техническое собеседование Senior-разработчика

Запись реального технического этапа на позицию Senior Java-разработчика в HeadHunter. После самопрезентации и обсуждения команды кандидат отвечает на вопросы по Java, Spring Boot, Hibernate, Kafka, Docker и Kubernetes; затем разбираются асинхронное взаимодействие, Outbox Pattern, многопоточность и live-coding-задача по реализации MyOptional.