Вернуться в видеотекуТестовое собеседование Java разработчика #25 - Алексей Пригода
Запись тестового собеседования Java-разработчика с разбором опыта кандидата, алгоритмической задачи и проектирования высоконагруженной видеоплатформы. В конце собеседники уточняют границы его роли и обсуждают дальнейшую подготовку.
- Направление
- Backend
- Формат
- Видео
- Грейд
- Middle
- Длительность
- 1 ч 14 мин
Коротко о видео
Это тестовое собеседование Java-разработчика Алексея Пригоды: он рассказывает о двух годах коммерческого опыта, внутреннем банковском сервисе метаданных, процессе разработки и используемом стеке. В алгоритмической части интервьюер направляет его к решению задачи о максимальной подстроке без повторяющихся символов через скользящее окно и HashMap с последними индексами символов. Затем они разбирают учебный системный дизайн видеоплатформы масштаба YouTube: нагрузки, хранилище, загрузку, метаданные, балансировку, CDN, кэширование и обработку видео.
Затронутые темы
Что взять на заметку
- Кандидат сообщает о двух годах коммерческого Java-опыта на одном внутреннем проекте банка; сервис агрегирует метаданные от поставщиков и отдаёт их пользователям для поиска, фильтрации, выгрузки и анализа.
- Описанный стек: Java 11, Spring Boot, Hibernate, Spring Security, JUnit, Docker; также упомянуты Jenkins, Oracle с миграцией на PostgreSQL и Kafka в части системы, за которую кандидат напрямую не отвечает.
- Процесс поставки, по словам кандидата: анализ требований, оценка в человеко-днях, разработка с обязательным покрытием тестами, статический анализ, code review, сборка и деплой Jenkins на dev-стенд, ручная проверка и последующие релизные проверки безопасности.
- Для задачи о подстроке нужен алгоритм двух указателей и HashMap «символ → последний индекс»; при повторе левую границу надо сдвигать на индекс предыдущего вхождения плюс один, только если это вхождение остаётся внутри текущего окна.
- В учебном расчёте видеосервиса из 50 млн ежедневных активных пользователей и пяти просмотров на пользователя получается 250 млн просмотров в день, то есть примерно 2 900–3 000 чтений в секунду; это параметры сценария, а не данные реального YouTube.
- Интервьюер отмечает, что вопрос по системному дизайну оказался шире реальной зоны ответственности кандидата, а кандидату следует отдельно подтянуть алгоритмические задачи.