Вернуться в видеотекуКоротко о видео
В демонстрационном собеседовании на позицию 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, подписки и многопоточная синхронизация.