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

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

Мок-техническое собеседование начинающего Java backend-разработчика без коммерческого опыта. После самопрезентации и обсуждения пет-проектов интервьюер разбирает Java Collections, String и исключения, базы данных и индексы, проводит код-ревью Spring Boot и задачу по системному дизайну сервиса уведомлений. В финале обсуждаются OAuth 2.0, Docker, Git, Future/CompletableFuture и даются рекомендации по подготовке.

Источник: Eugene Suleimanov

Открыть на YouTube

Таймлайн

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

Русскоязычная запись независимого мок-интервью с Глебом — первокурсником, изучающим Java и пробовавшим Keycloak, API Gateway и Kafka в пет-проектах. Интервьюер подробно проверяет понимание HashMap, HashSet, String, исключений, денормализации и индексов, затем разбирает код Spring Boot и проектирование сервиса уведомлений с Kafka, transactional outbox, ретраями и статусами доставки. Отдельные блоки посвящены OAuth 2.0 и Keycloak, Docker, внутреннему устройству Git, Future и CompletableFuture. В финале кандидат получает положительную оценку для уровня Intern и рекомендации укрепить фундаментальные знания.

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

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

  • Для ключей HashMap согласованно переопределяйте equals() и hashCode(): разные hashCode всё равно могут попасть в один бакет после вычисления индекса.
  • Не перехватывайте Throwable без крайней необходимости: Error часто означает состояние, из которого приложение не может безопасно восстановиться; ловите более конкретные исключения.
  • Индексы БД выбирают по реальным шаблонам фильтрации и порядку колонок, учитывая стоимость их поддержки при записи.
  • В Spring зависимости удобнее и безопаснее внедрять через конструктор, а входные данные валидировать на границе API.
  • Пароли следует хранить как адаптивные односторонние хеши, например BCrypt или Argon2, и проверять через PasswordEncoder, а не шифровать обратимым способом.
  • Для асинхронной отправки уведомлений отделяйте факт принятия запроса от факта доставки и используйте transactional outbox, ретраи и DLQ.
  • CompletableFuture помогает композиции асинхронных этапов, но вызов get() всё равно может заблокировать поток.

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

46:07
BackendSenior

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

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

2:09:10
BackendJunior

Техническое интервью Java-разработчика: Java Core, Spring и инфраструктура

Длинное техническое интервью с Java-разработчиком охватывает язык, коллекции и многопоточность, Spring, базы данных и инструменты доставки. Интервьюер уточняет ответы кандидата и возвращает разговор к точным определениям.