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

Тестовое собеседование Java разработчика #25 - Алексей Пригода

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

Источник: Eugene Suleimanov

Открыть на YouTube

Таймлайн

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

Это тестовое собеседование 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.
  • Интервьюер отмечает, что вопрос по системному дизайну оказался шире реальной зоны ответственности кандидата, а кандидату следует отдельно подтянуть алгоритмические задачи.

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

50 мин
BackendSenior

Тестовое собеседование Java разработчика #19 - Михаил Гончаренко

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

1 ч 47 мин
BackendSenior

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

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