Вернуться в видеотекуТестовое собеседование Java разработчика #26 - Давид Костандян
Запись тестового Java-интервью: опыт кандидата, алгоритмическая задача и системный дизайн Twitter-подобного сервиса. В конце обсуждаются масштабирование, безопасность и Spring Boot.
- Направление
- Backend
- Формат
- Видео
- Грейд
- Middle
- Длительность
- 1 ч 4 мин
Коротко о видео
Это тестовое собеседование с Давидом Костандяном, backend Java-разработчиком из Еревана с заявленным опытом около трёх лет. Сначала он описывает опыт поддержки интернет-магазина на SAP Hybris и текущий безымянный продукт, который агрегирует сведения о людях для банков, затем — работу микросервисной команды, релизы, тесты и стек Java 17/Spring Boot/Kafka. Во второй половине кандидат решает задачу на разворот слов в строке и проходит системный дизайн аналога Twitter: требования, RPS, объём хранилища, файловое хранилище, кеширование, масштабирование, Docker, OAuth и JWT.
Затронутые темы
Что взять на заметку
- Для рассказа об опыте полезно чётко разделять прошлый проект на SAP Hybris и текущий банковский data-продукт, не раскрывая безымянную компанию.
- Нужно уметь объяснить жизненный цикл задачи: устное уточнение, постановка, разработка, коммит в GitLab, code review, проверка на тестовом окружении и поэтапный релиз в production.
- В задаче на разворот слов важно отдельно обработать ведущие, хвостовые и повторяющиеся пробелы; интервьюер указывает, что разделение только по одному пробелу может сохранить лишние пустые элементы и не пройти тесты.
- Стоит уверенно обосновывать сложность алгоритма через размер входной строки: в обсуждённом варианте получаются линейные время и дополнительная память.
- Для system design недостаточно назвать число пользователей: сначала нужно договориться о доле активных авторов, действиях читателей, частоте операций, размере медиа и о том, что именно считается запросом на чтение.
- Следует различать throughput на запись и чтение, сетевую пропускную способность и постоянный объём хранения: чтения сами по себе не равны объёму данных, сохраняемых за день.
- Для middle Java-интервью здесь проверяются практические основы: unit и integration-тесты, Java 8/17, Spring Boot, Kafka, кеширование, горизонтальное масштабирование, балансировка, OAuth и структура JWT.