О проекте
Мы разрабатываем профессиональную платформу интерактивного ТВ (IPTV) и визуальной коммуникации (Digital Signage), работающую в отелях, офисах, на кораблях и в различных публичных пространствах. Это не простое CRUD-приложение, а полноценный лаунчер замещающий системный - цена ошибки и вес правильного инженерного решения здесь выше, чем в обычном приложении.
Что делает задачу интересной:
- Широкий спектр задач. От низкоуровневых вещей (медиаплеер, декодирование, системный слой) до аккуратного, продуманного интерфейса. Хорошая возможность вырасти в инженера широкого профиля, а не остаться в роли "верстальщика экранов".
- Высокая степень влияния на продукт. Небольшая команда, прямой контакт с теми, кто принимает решения.
- Зрелая инженерная культура. Многомодульный проект, кодогенерация DTO из OpenAPI-спек бекенда, телеметрия в Prometheus, feature-flag / kill-switch для рискованных изменений, база знаний по парку, проверка гипотез A/B на реальных устройствах.
Обязанности
- Разработка и поддержка приложений на Android / Android TV / STB.
- Работа со всем вертикальным срезом: Compose-UI, медиаплеер, системный слой, обновления.
- Анализ, рефакторинг и развитие существующего кода.
- Участие во всём цикле - от проектирования до запуска и поддержки на парке устройств.
- Диагностика проблем на реальном железе: adb/logcat, телеметрия, воспроизведение и A/B-проверка гипотез.
- Взаимодействие с backend-разработчиками.
Требования
Язык и архитектура
- Уверенное знание Kotlin (+ базовый Java, нужен редко).
- SOLID, Clean Architecture, MVVM / MVI.
- Coroutines / Flow: устройство корутин, scope'ы, structured concurrency, холодные/горячие потоки, StateFlow / SharedFlow.
UI
- Коммерческий опыт с Jetpack Compose: state hoisting, side effects, навигация, тестирование, оптимизация рекомпозиций.
- AndroidX Navigation (Compose).
Данные и платформенные библиотеки
- Hilt - модули, скоупы, qualifier-ы, мультибиндинги.
- Room с миграциями (auto + ручные), DAO.
- Retrofit + OkHttp + Moshi; перехватчики, retry/backoff, поведение в нестабильных/закрытых сетях.
Медиаплеер
- Приветствуется опыт с Media3 / ExoPlayer.
- Понимание аппаратного видеодекодирования.
STB / embedded / системный уровень
- Приветствуется опыт разработки под Android TV / STB.
- Механизмы обновления: OTA, recovery update, A/B-партиции, обновление APK вне Play Store.
- Системный уровень AOSP.
- Свободная работа с adb и logcat
Инструменты и инженерная культура
- Многомодульный Gradle-проект, Gradle Version Catalogs.
- Git, работа с CI; feature-flag / kill-switch для рискованных изменений.
- Юнит-тесты (JUnit) и UI-тесты Compose.
- Базовая алгоритмическая подготовка.
- Самостоятельность в диагностике багов, не воспроизводимых на эмуляторе.
- Работа с AI-агентами и современными средствами автоматизации.
Стек технологий
- Kotlin
- Jetpack Compose, AndroidX Navigation (Compose)
- Coroutines + Flow
- Hilt · Room
- Retrofit + OkHttp + Moshi (+ SimpleXML точечно) · Coil
- Media3 (ExoPlayer)
- KSP
- Gradle 9.x + AGP 9.x, Version Catalogs
- OpenAPI codegen (DTO из спек бекенда)
- Телеметрия: Prometheus
- JUnit, Compose UI tests
Условия
- Оформление по ТК.
- Оплата компанией релевантного обучения для сотрудников.
- Возможности для роста по результатам работы.
- Оплата компанией обедов, доставляемых в офис.
- Обсуждаются варианты трудоустройства для релоцировавшихся специалистов.
- Программа ДМС для сотрудников после прохождения испытательного срока.