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