Матрица компетенций: Android

Hard skills

Skill Passport — Android
Kotlin и базовая модель языкаОбосновывает модель домена через sealed hierarchy, generic или composition для конкретного сценария. Диагностирует ошибку владения состоянием/мутабельной коллекцией в многопоточном коде и объясняет, почему решение сохраняет инварианты, а не только «перестаёт падать».
UI: Jetpack Compose и ViewsОбосновывает выбор Compose, View или смешанного подхода для экрана/проекта с учётом скорости миграции, производительности и доступности. Диагностирует лишние recomposition или проблему layout через инструменты Android Studio и устраняет причину с измеримым эффектом.
Android-компоненты и жизненный циклПроектирует поведение при cold start, deep link, process death и возврате из background для сложного пользовательского пути. Обосновывает границу между сохранением UI-state, локальными данными и повторной загрузкой с сервера, явно называя риск устаревших или потерянных данных.
Сеть и работа с API (Android)Обосновывает стратегию клиента для конкретного API: retry, кэширование, timeout, версионирование и обработка частичных данных. Сравнивает REST и альтернативный подход по размеру payload, сложности клиента и кэшированию; проектирует диагностику сетевых ошибок без записи секретов в логи.
Хранение данных и offline-поведениеОбосновывает offline-first/online-first стратегию, включая конфликт локальных и серверных изменений. Проектирует миграцию Room или безопасную инвалидацию кеша, явно сравнивая актуальность данных, задержку и стоимость хранения/синхронизации.
Конкурентность: coroutines и FlowОбосновывает границы диспетчеров и общего состояния для конкретной фичи; диагностирует race condition, утечку coroutine или повторный сбор Flow после изменения lifecycle. Сравнивает `shareIn`/`stateIn`, последовательную и параллельную загрузку по поведению и стоимости ресурсов.
Архитектура, зависимости и тестированиеОбосновывает выбор архитектурного подхода и границ модулей под размер продукта, не создавая слои без функции. Проектирует пирамиду тестов для фичи, диагностирует flaky UI-тест по причине синхронизации, данных или состояния, а не увеличивает ожидание вслепую.
Сборка, релиз, производительность и наблюдаемостьОбосновывает rollout и мониторинг релиза: какие crash-free, ANR, startup и продуктовые метрики отслеживать, при каком сигнале остановить распространение. Анализирует ANR/crash или регрессию производительности до конкретного потока/устройства и выбирает hotfix, feature flag или откат с учётом воздействия на пользователей.
Общее
Язык и основыЭксперт в Kotlin/Java, многопоточности, JNI, архитектурных паттернах (MVVM, Clean)
DevOpsУправление релизами, распределение секретов, настройка Firebase App Distribution
Базы данных и сетьАрхитектура офлайн‑синхронизации, шифрование, реализация IPC/AIDL
Качество и Безопасность
ТестированиеСтроит тестовую архитектуру, внедряет TDD/BDD, проводит code review
Архитектура и Проектирование
АрхитектураРазрабатывает архитектуру приложения, масштабируемые модули, внедряет модульность

Soft skills

Общее
Бизнес и коммуникацииОбщается с клиентами, трансформирует бизнес‑требования в технические решения
ЛидерствоРуководит техническими решениями, делится экспертизой
Skill Passport — Автономность и глубина
Автономность и масштаб задачОписывает случай самостоятельного ведения задачи масштаба, выходящего за рамки одной фичи — например, сам декомпозировал крупную задачу на подзадачи (для себя или для команды), отвечал за результат на уровне модуля/сервиса/продукта, а не отдельного тикета. Явно называет, какие решения принимал сам, а не получал в готовом виде сверху.
Глубина технических решенийЯвно называет trade-off выбранного решения — не только почему выбрал, но и что теряется по сравнению с отклонёнными вариантами, и в каком случае выбрал бы иначе. Может честно указать на ограничение собственного решения, а не подавать его как безальтернативно правильное.

Типовые задачи

Практические задачи для собеседования — доступны после регистрации

Зарегистрироваться