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

Собеседование Middle Android разработчика

Разбор учебного собеседования Middle Android-разработчика: от опыта кандидата и Android-теории до проектирования потокобезопасного объединения одинаковых асинхронных запросов. Интервьюер комментирует ожидаемую глубину ответов и предлагает направление решения задачи.

Источник: Android Broadcast. Все об Андроид разработке

Открыть на YouTube

Таймлайн

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

В демонстрационном собеседовании на позицию Middle Android-разработчика кандидат Кирилл рассказывает о работе в Яндексе, ответственности за мобильную часть продукта и карьерных целях. Никита Куликов последовательно проверяет опыт с релизными сбоями, Android-фреймворком, паттернами проектирования, Compose, лямбдами, коллекциями Kotlin и RxJava. В практической части обсуждают реализацию CommandExecutor, который должен объединять одинаковые параллельные запросы и раздавать результат всем ожидающим обработчикам; в финале интервьюер даёт обратную связь о технических пробелах и подходе к задаче.

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

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

  • Для Middle-позиции важно уметь объяснить не только свой код, но и границы ответственности за компонент: релизы, эксперименты, распределение задач и взаимодействие с другими командами.
  • Разбирая баг, который проявляется только в release-сборке, стоит говорить о тестировании release candidate, CI/CD-процессе, чтении stack trace и декомпиляции итогового APK, а не только о локальном исправлении поля JSON-модели.
  • Нужно уметь применять, а не лишь называть Factory/Builder, Single Responsibility Principle, Android Activity/Context и lifecycle; на интервью полезно сразу уточнять термин, если он понят двусмысленно.
  • Для Compose LazyColumn следует понимать роль стабильных key, уметь исследовать реальные примеры деградации производительности и проверять улучшения метриками времени отрисовки, отзывчивости и FPS.
  • В задаче на дедупликацию запросов естественная модель — потокобезопасное соответствие URL списку ожидающих callback/подписчиков: одинаковый запрос запускается один раз, разные URL не блокируют друг друга, а после ответа подписчики оповещаются и запись очищается.
  • При использовании RxJava важно явно определить Scheduler внутри компонента для I/O-операции, не блокировать общий поток обычным lock и понимать, что именно делают Single, подписки и многопоточная синхронизация.

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

1 ч 49 мин
MobileJunior

Собеседование в прямом эфире. Junior Android разработчик

Запись смоделированного Junior Android-собеседования с подробным техническим разбором ответов кандидата и последующей сессией вопросов аудитории о входе в профессию. Основной акцент — на практическом владении Android и умении рассуждать, а не только воспроизводить определения.