- Страна
- Россия
- Зарплата
- до 1 400 ₽
Откликайтесь
на вакансии с ИИ

Android-разработчик (мессенджер / social messaging)
Интересный проект с глубокой технической экспертизой в области графики и криптографии. Однако отсутствие названия компании и работа на классическом View-стеке (без Compose) могут быть минусом для тех, кто стремится к современным UI-фреймворкам.
Сложность вакансии
Высокая сложность обусловлена глубокими требованиями к работе с графикой (Canvas, шейдеры, AGSL), сложной обработкой жестов и спецификой протокола Matrix с E2EE. Требуется экспертное владение классическим View-стеком без использования Compose.
Анализ зарплаты
Предлагаемый рейт до 1400 (вероятно, в час или за смену, в зависимости от условий контракта) соответствует рыночному уровню для Senior Android-разработчиков с узкой специализацией в РФ и СНГ. При пересчете на полный месяц это составляет конкурентоспособную сумму для опытного специалиста.
Сопроводительное письмо
Составьте идеальное письмо к вакансии с ИИ-агентом

Откликнитесь уже сейчас
Присоединяйтесь к разработке инновационного мессенджера на базе Matrix и реализуйте сложные UI-эффекты на Android!
Описание вакансии
Android-разработчик (мессенджер / social messaging)
Собес - Старт = ASAP
Рейт: до 1400 (с учетом НДС)
Локация/гражданство: без ограничений
Часовой пояс:работа по мск
О проекте
Разработка мессенджера в составе социальной платформы. Личные и групповые переписки - на протоколе Matrix (форк Element), каналы вынесены отдельно, апдейты доставляются через событийную модель Element. Сейчас в фокусе - приведение UI к новым макетам на основе дизайн-системы iOS-Telegram, с прицелом на визуальный паритет Android и iOS.
Чем предстоит заниматься
- Развитие Android-клиента: личные чаты, группы, каналы
- Приведение UI к макетам, паритет с iOS-версией
- Кастомные эффекты: liquid glass, blur (imla), Drawable/Canvas-рендеринг
- Отладка touch-сценариев, анимаций списков, edge-to-edge вёрстки
- Работа с Matrix SDK: sync, timeline, теги комнат, E2EE
Общие требования
- Знакомство с Matrix: sync, timeline, room_tags
- Базовое понимание E2EE: Megolm, key backup, восстановление ключей, device verification
Требования (Android)
- Kotlin + Coroutines/Flow: StateFlow/stateIn и контекст их выполнения, structured concurrency, гигиена CancellationException
- Классический View-стек без Compose: XML + ConstraintLayout, ViewBinding
- RecyclerView: DiffUtil, ItemAnimator (в т.ч. конфликты с ручными анимациями), layout animations, viewholder-паттерны
- Touch-пайплайн: onInterceptTouchEvent, slop, NestedScroll, оверскролл-жесты
- Drawable и шейдеры (RadialGradient, аппроксимации блюра), Canvas, ViewOutlineProvider/clip
- AGSL / RenderNode / RenderEffect (API 33+): опыт с liquid glass / backdrop-blur, отладка рекурсии RenderNode и конфликтов hardware-layer
- Edge-to-edge и инсеты: WindowInsetsCompat
- Hilt, Glide, Timber
- Многомодульный Gradle, кастомные Gradle-чеки (например, линт на хардкод-цвета)
adb/uiautomator для самопроверки
Будет плюсом
- matrix-android-sdk2: Realm-стор, sync-воркеры
- KMP + SQLDelight (readmodel для каналов)
- FCM/UnifiedPush
- Espresso/UI Automator
Откликнуться на запрос: Откликнуться По вопросам партнерского сотрудничества: Откликнуться
Создайте идеальное резюме с помощью ИИ-агента

Навыки
- Kotlin
- Gradle
- XML
- Android SDK
- Hilt
- Kotlin Coroutines
- Kotlin Flow
- Canvas
- ViewBinding
- SQLDelight
- KMP
- Matrix
- ConstraintLayout
- Glide
- E2EE
- RecyclerView
- AGSL
Возможные вопросы на собеседовании
Проект требует глубокого понимания работы со списками и кастомными анимациями.
Как вы будете решать проблему конфликта между ItemAnimator в RecyclerView и ручными анимациями элементов при обновлении данных через DiffUtil?
В вакансии указано требование по работе с кастомными жестами и оверскроллом.
Опишите механизм работы NestedScroll в Android. В каких случаях необходимо переопределять onInterceptTouchEvent, а когда достаточно работы с NestedScrollingChild?
Проект использует протокол Matrix и сквозное шифрование.
Расскажите о жизненном цикле ключей в протоколе Megolm. Как происходит процесс восстановления ключей (key backup) и верификации устройства?
Требуется работа с современными графическими API.
В чем заключаются основные сложности при использовании RenderNode и RenderEffect для реализации backdrop-blur, и как вы будете отлаживать конфликты с hardware-layer?
Важна чистота кода и понимание корутин.
Что такое 'гигиена CancellationException' в Kotlin Coroutines и почему важно правильно обрабатывать это исключение внутри блоков try-catch?
Похожие вакансии
Senior iOS-разработчик
Ведущий мобильный разработчик (Kotlin Multiplatform)
Senior Flutter разработчик
Senior Android Developer
Middle/Middle+ Android-разработчик
Middle+/Senior Flutter разработчик
1000+ офферов получено
Устали искать работу? Мы найдём её за вас
Quick Offer улучшит ваше резюме, подберёт лучшие вакансии и откликнется за вас. Результат — в 3 раза больше приглашений на собеседования и никакой рутины!