АПИСЕРВИС

Android-разработчик (Kotlin, Compose)

Не указана
  • Курск
  • От 3 до 6 лет

Кто нам нужен:

Разработчик 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 (оговаривается при собеседовании)

  • Дружный молодой коллектив.

  • Комфортный офис.