Android-разработчик (Kotlin, Compose)
По договоренности
Кто нам нужен:
Разработчик Android-приложений на Kotlin. Проекты сложнее обычных CRUD-клиентов: работа с внешним железом по проводу/радио, фоновые сервисы, бинарные протоколы, шифрование, голос/аудио, карты, кастомные UI.
Ищем человека, который понимает Android как платформу, а не только умеет верстать экраны.
Обязанности:
- Писать и развивать Android-приложения на Kotlin + Jetpack Compose.
- Работать с внешними устройствами по Bluetooth (BLE), USB-Serial, UART.
- Реализовывать сетевые слои поверх собственных бинарных протоколов (protobuf, WebSocket, MQTT).
- Писать долгоживущие foreground-сервисы, которые корректно живут под политиками современных Android.
- Интегрировать аудио-пайплайны (запись/воспроизведение, кодеки).
- Работать с картами, QR-кодами, голосовым вводом.
- Поддерживать несколько вариантов сборки (build flavors) из одной кодовой базы.
- Писать unit- и инструментальные тесты.
1. Обязательно:
- Kotlin – 3+ года практики на проде. Не “после Java на курсах”.
- Jetpack Compose – реальный опыт, а не один туториал. Понимание state, recomposition, navigation.
- Архитектура Android-приложений – MVVM или MVI, разделение слоёв, Repository-паттерн.
- DI – Hilt или Dagger.
- Coroutines / Flow – понимание scope’ов, отмены, hot/cold потоков.
- Room или другая ORM поверх SQLite, миграции.
- Сервисы Android – foreground service, ограничения background execution на новых API, Doze, App Standby.
- Bluetooth (BLE) – хотя бы минимальный опыт сканирования и обмена данными.
- Сериализация – Protobuf, JSON (Moshi/kotlinx.serialization). Понимание, когда что выбирать.
- Многомодульная сборка / Gradle – умение читать build-скрипты, разбираться с зависимостями и конфликтами.
- Git – ветки, мержи, ребейзы, разрешение конфликтов.
- Английский – технический, на чтение.
- 2. Желательно:
- Опыт с USB Serial / UART на Android.
- WebSocket и MQTT на проде.
- Криптография на клиенте – AES, ChaCha, key derivation, KeyStore.
- Аудио: AudioRecord/AudioTrack, обработка PCM, кодеки (Opus, AAC).
- Карты: OSMDroid, MapLibre, Google Maps, оффлайн-тайлы.
- QR-коды: ZXing, ML Kit.
- Голосовое распознавание: Vosk, on-device speech recognition.
- Multi-flavor builds: F-Droid + Google Play, разные signing-конфиги.
- Detekt / lint и привычка к чистому коду.
-
3. Будет плюсом:
- Опыт с kотлин Multiplatform или хотя бы понимание, как KMP устроен.
- Опыт публикации в F-Droid (без Firebase и проприетарных зависимостей).
- Опыт публикации в Google Play – testing tracks, internal testing, постепенный роллаут.
- Понимание Android NDK / JNI – если попадётся проект с нативными библиотеками.
- Опыт с embedded-стороной: понимание, что на другом конце UART/BLE сидит МК с ограниченной памятью, и почему туда нельзя слать JSON по 50 КБ.
- Реверс/анализ чужих APK и протоколов – иногда полезно.
- Локализация на много языков, работа с Crowdin или аналогом.
Текущий стек:
Kotlin, Jetpack Compose, Material 3, Hilt, Room, Coroutines/Flow, Protobuf 4.x, MQTT (Paho), WebSocket, OSMDroid, ZXing, Vosk, USB Serial, BLE, foreground service, F-Droid + Google flavors.
JDK 17, Compile SDK 35, Min SDK 21.
Стек может меняться – ищем не “знатока этих библиотек”, а человека, который быстро въезжает в новый код.
Что мы оцениваем:
Способность читать чужой большой Kotlin-код.
Понимание lifecycle Android: Activity, Fragment, Service, ViewModel, Compose.
Аккуратность с многопоточностью: race conditions, отмена корутин, утечки scope’ов.
Дисциплина в коммитах: маленькие осмысленные коммиты, чистая история.
Самостоятельность в отладке – гипотезы и проверки, а не “не работает, помогите”.
Умение сказать “не знаю” вместо размытых ответов.
Условия:
-
Оформление по ТК РФ, полный соц. пакет.
-
Испытательный срок до трех месяцев.
-
Пятидневная рабочая неделя с 9-00 до 18-00 (оговаривается при собеседовании)
-
Дружный молодой коллектив.
-
Комфортный офис.
Опубликована 20 часов назад
Похожие вакансии
- Полный день
- Опыт от 3 лет
- Курск
- Полный день
- Опыт от 3 лет
- Курск
- Полный день
- Опыт от 3 лет
- Курск
- Полный день
- Опыт от 3 лет
- Курск
- Полный день
- Опыт от 3 лет
- Курск