Компания "Яндекс"
Карты и Навигатор ежедневно помогают миллионам пользователей по всему миру решать свои задачи. Найти ресторан или дорогу до места встречи с друзьями, запланировать поход в салон красоты, построить максимально эффективный маршрут на любом типе транспорта или просто узнать, что интересного есть в городе, — наши базовые сценарии, жизненно необходимые современному городскому жителю.
Мы не стоим на месте: проводим эксперименты, исследуем потребности пользователей, расширяем возможности существующих сценариев и создаём новые. За последнее время добавили поддержку 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-приложений: https://www.youtube.com/watch?v=fnQkcF38GvU&t=12008s
Михаил Куренков рассказывает на Mobius 2020 про процессные особенности мультиплатформенной разработки: https://www.youtube.com/watch?v=m5H1KGsdqtw
Дмитрий Яковлев рассказывает на AppsLive 2020, как концептуально выглядит типичная фича на Kotlin Multiplatform: https://www.youtube.com/watch?v=o-2RLhSlosI
Денис Загаевский рассказывает на Mobius 2021 про наш DI: https://www.youtube.com/watch?v=COzmONYAY3U
Мы ждем, что вы:
Условия:
24 Марта
Разработчик сервиса агрегации LTE (General Components)
Москва
Компания "SberAutoTech" О команде: Софт автономного автомобиля - это большое число сложно взаимодействующих компонентов, ограниченных...
25 Марта
Консультант-Разработчик 1С: Зарплата и управление персоналом (ЗУП КОРП 3.1)
Москва
Компания "Алкогольный холдинг «Руст»" Мы ищем опытного разработчика 1С для поддержки и развития ключевой системы учета кадров и расчета зарплаты...
26 Марта
Python-разработчик (фитнес-клуб)
Москва
от 80 000 руб.
Компания "Поколение" Мы — современный фитнес-клуб, который активно растёт и внедряет цифровые технологии для своих клиентов и команды. Наша...
25 Марта
Москва
Компания "СБЕРКОРУС" СберТаргет - сервис для размещения рекламы в интернете без опыта и специальных знаний. Ориентирован на микро и малый...
24 Марта
Руководитель группы разработки (Team Lead) в Яндекс ID
Москва
Компания "Яндекс" Яндекс ID — это гораздо больше, чем форма ввода логина и пароля на сервисах. Мы разрабатываем множество экосистемных...
Вакансия размещена в отрасли