📍 Москва (м. Парк культуры)Белград (Сербия)Самостоятельный переезд
Специализация
Mobile (Android)
Карты и Навигатор ежедневно помогают миллионам пользователей по всему миру решать свои задачи. Найти ресторан или дорогу до места встречи с друзьями, запланировать поход в салон красоты, построить максимально эффективный маршрут на любом типе транспорта или просто узнать, что интересного есть в городе, — наши базовые сценарии, жизненно необходимые современному городскому жителю.
Мы не стоим на месте: проводим эксперименты, исследуем потребности пользователей, расширяем возможности существующих сценариев и создаём новые. За последнее время добавили поддержку AndroidAuto, новый виджет, аренду самокатов, заказ такси, доставку еды. Карты и Навигатор превратились в мощный геосуперапп.
Технологии/инструменты
Android SDK
- Kotlin, Gradle, Retrofit, OkHttp, Kotlin Coroutines/Flow, Glide, LeakCanary, Kotlin Multiplatform Mobile, RxJava 2, Ktor, Kinzhal, ktlint, AppMetrica, CameraX, Compose, SpeechKit, MapKit, Kotlin Serialization, Wire.
- Espresso & Allure для UI-тестов.
- Развитая модульность.
- Dagger 2 для DI.
- Redux (UDF).
Как устроена разработка
- Важная часть нашего подхода — ставка на мультиплатформенную разработку. Наши приложения на iOS и Android практически идентичны, а функционал настолько разнообразен и обширен, что поддерживать одновременно две реализации трудно и неэффективно. Несколько лет назад мы выбрали KotlinMultiplatform в качестве основной технологии для кроссплатформенной разработки и одними из первых начали использовать её в продакшен. KotlinMultiplatform не накладывает ограничений на использование платформенных SDK, мы пишем на нём только бизнес-логику, а UI и взаимодействие с операционной системой остаются платформенными, что позволяет использовать актуальный стек на Android и iOS. За эти годы мы прошли огромный путь, и сейчас общий код составляет значимую часть нашей кодовой базы. Благодаря этому команды Android и iOS тесно контактируют, обмениваются знаниями, а под новые большие проекты мы сразу собираем кроссплатформенные v-team, что упрощает контроль над процессами и совместные запуски.
- Наш проект разбит на модули, что улучшает архитектуру и позволяет разрабатывать новые сценарии в отдельных легковесных тестовых проектах. Внутри модулей используем архитектуру Redux с Unidirectional Data Flow.
- Большой проект невозможно развивать без вложений в инфраструктуру. 80% времени мы тратим на продуктовую разработку, 20% времени выделяем на развитие технологий, автоматизацию рутины и отдачу техдолга. CI/CD, автоматическая синхронизация ресурсов от редакторов и дизайнеров, автоматизации workflow задач, автоматизации релизного процесса, UI-тесты, A/B-эксперименты, мониторинги здоровья приложения и процессов — у нас есть всё необходимое для проекта такого уровня.
Какие сейчас есть вызовы
Прямо сейчас в разгаре большая стройка по UI-тестам. Причём мы и тут используем Kotlin Native для шаринга логики тестов между платформами.
Также мы в процессе перехода на релиз двух приложений — Карт и Навигатора — из одной кодовой базы со всеми сопутствующими проблемами. Впереди рывок по процессам: хотим релизиться в два раза чаще, перейти на еженедельный цикл.
Помимо этого:
- Активно внедряем Compose.
- Занимаемся оптимизацией сборки и синка проекта.
- Запланирован проект по оптимизации производительности приложения (время старта, энергопотребление) и пара крупных рефакторингов.
Главный продуктовый вызов — выход на международные рынки. Новые страны, новые локализации и региональные особенности. Также планируем перезапустить парковочный сценарий, улучшить навигацию по сложным развязкам, собирать больше UGC.
Мы ждем, что вы
- Разрабатывали мобильные приложения для Android и глубоко знаете SDK платформы.
- Умеете прорабатывать задачи от и до, имеете продуктовое мышление, стремитесь улучшать жизнь пользователей.
- Знаете современные принципы построения архитектуры мобильных приложений.
- Готовы совершенствовать процессы и инфраструктуру разработки.
Что по условиям и атмосфере
- Много внимания уделяем обмену знаниями: раз в месяц проводим общие «техновстречи» на всю разработку, на которых рассказываем про интересные исследования и достижения в разных технологических областях, еженедельно собираемся платформенными командами и обсуждаем насущные проблемы. По результатам спринта проводим продуктовые демо.
- Уважаем work-life balance, тимбилдинговые активности, неформальное общение, вечеринки, поддерживаем дружескую атмосферу.
- Приветствуем участие в школах мобильной разработки в качестве преподавателей, помогаем с выступлениями на конференциях.
- Есть бонусы к заработной плате.
Возможно, вы уже видели наши доклады и статьи