Вернуться в видеотекуТестовое собеседование Java разработчика #28 - Леонид Земенков
Тестовое интервью Java-разработчика: карьерный опыт кандидата, алгоритмическая задача на скользящее окно и проектирование масштабируемого web scraper для агрегирования объявлений.
- Направление
- Backend
- Формат
- Техническое собеседование
- Длительность
- 1 ч 18 мин
Коротко о видео
Тестовое собеседование Java-разработчика с Леонидом Земенковым: кандидат подробно описывает путь от самостоятельного обучения и работы в Сбербанке до Яндекс.Музыки, AliExpress Россия и текущего неназванного американского страхового стартапа. Он разбирает свои задачи по интеграциям, нормализации и обогащению данных, оптимизации сопоставления компаний, релизному процессу и дежурствам. Во второй части кандидат решает задачу о максимальной длине подстроки без повторов через скользящее окно и HashMap, затем проектирует систему сбора и сравнения объявлений с площадок; интервьюер в финале отмечает хорошее решение задачи и общую логику, но указывает на пробелы в инфраструктурной терминологии и DevOps-аспектах.
Затронутые темы
Что взять на заметку
- Опыт полезно рассказывать через конкретную ответственность и результат: кандидат описывает микросервис цен и остатков при декомпозиции монолита AliExpress, а также интерфейс управления множеством товарных фидов.
- Для задач entity matching стоит объяснять полный путь: нормализация названий и кодов, критерии дублей, проверка качества слияния и устранение узкого места; кандидат вынес варианты старых названий компаний в отдельную таблицу.
- При описании фичи важно показать цикл от исследования и схем до обсуждения в команде, декомпозиции Epic на независимые подзадачи и поэтапного включения новой обработки рядом со старой.
- Для задачи о подстроке без повторяющихся символов нужен sliding window и HashMap «символ → последний индекс»; левую границу следует сдвигать на max(left, lastIndex + 1), сохраняя максимум длины. Заявленная сложность — O(n) по времени и O(n) по памяти.
- На интервью по эксплуатации полезно уметь объяснить ownership разработчика: code review, автоматизированный деплой, алерты, ротацию дежурств, оценку критичности инцидента и rollback при неудачном релизе.
- В system design сначала отделяйте функциональные требования от расчётов нагрузки и ресурсов: в обсуждении оценены 300 млн объявлений в сутки и около 3,5 тыс. объявлений в секунду, но интервьюер отдельно уточняет различие этих категорий.
- Для агрегатора объявлений важны отдельные слои: адаптеры источников, сырое хранилище, унификация, сопоставление товаров между площадками, поисковое представление и отдельное объектное хранилище медиа.