Про наши команды
Приложение Туту.ру
Мы хотим сделать мобильное приложение Туту самым крутым тревел-приложением, которое позволит нашим клиентам не только покупать билеты, но и организовывать свои поездки и получать для этого всю необходимую информацию и поддержку.

Постоянно добавляем в наше приложение новые возможности, которых нет у наших конкурентов, например, рекомендательные сервисы, которые помогают находить лучшие места в поезде или предлагают более выгодные варианты на другие даты и виды транспорта. Уже добавляем в приложение отели, а в планах еще — приключения и экскурсии, классный вдохновляющий контент и многое другое.

Приложением пользуются больше 10 миллионов человек по всей России и миру.

Мы ищем iOS-разработчика, который поможет нам расширить функционал для пользователей, сделать наше приложение еще удобнее.
ЖД
Мы помогаем людям путешествовать на поездах удобнее и проще, развиваем лидирующий сервис онлайн-продаж Ж/Д билетов. У продукта 400 тысяч посетителей в сутки, рост показателей идет со скоростью стартапа, несмотря на 15 лет существования.

Мы ищем iOS и Android разработчиков, которые наверстают функционал в мобильном приложении по сравнению с веб версией
Авиация
Мы команда Авиации. В туту мы отвечаем за продажу авиа билетов. Сейчас мы отправляем в полёт несколько тысяч людей в день. Мы стараемся не просто продать билет, а сделать все путешествие максимально понятным и удобным. Например, мы показываем вероятность отлёта рейса вовремя (это меняет конверсию), первые когда-то начали показывать, включён ли багаж в стоимости билета и так далее.

Мы ищем iOS и Android разработчиков, которые наверстает отставание функционала в мобильном приложении по сравнению с веб-версией.

TutuID
Мы в TutuID разрабатываем сервисы и интерфейсы для идентификации и аутентификации посетителей Туту.ру, а также ведём работу над созданием нового личного кабинета. У нас сложные технические задачи и высокие требования к надежности, производительности и безопасности. Одна из ключевых задач команды - улучшение пользовательского опыта за счёт создания удобных инструментов для упрощения и автоматизации постпродажного обслуживания клиентов.

TutuID и новый личный кабинет - важнейшие элементы постпродажного обслуживания наших клиентов, которые позволят повысить лояльность и возвращаемость, а также снизят нагрузку на контакт-центр. Возвращать или обменивать билеты, управлять личными данными и бонусными баллами, получать поддержку в Контакт-центре - всё это будет максимально просто благодаря нашим решениям.

Мы ищем iOS - разработчика в команду.

Основная задача команды Mobile Core - упрощать жизнь коллегам-разработчикам из продуктовых команд. Мы формируем и внедряем общие правила архитектуры и код-стайла, разрабатываем инструменты автоматизации, настраиваем CI/CD и ускоряем сборки, собираем метрики процесса разработки и помогаем коллегам работать над продуктовыми задачами эффективнее.

Мы ищем коллегу на роль iOS Techlead, который будет определять стек технологий для конкретных проектов и задач, займётся внедрением новых подходов к разработке, внедрением и развитием инженерных практик, будет развивать технические навыки членов команды и решать технически сложные задачи.

Mobile core team
Наша задачи
Контроль за состоянием и развитие кодовой базы приложения:
— Проектирование новых сервисов, разработка общих компонентов и солюшенов, тех. развитие и улучшение продукта;
— Написание UI, Snapshot и Unit тестов (у нас разработчики отвечают за качество продукта);
— Развитие общих компонентов в рамках решения текущих продуктовых задач (из двух вариантов: реализовать в конечном приложении или обобщить – выбирать второе).
Работа над продуктом:
— Работа над новыми гипотезами и фичами для клиентов (мы проводим A/B-тесты и принимаем решения, опираясь на продуктовую аналитику);
—Поддержка текущих фич, работа с входящими задачами от поддержки (фикс багов, закрытие клиентских проблем)
Развитие технических навыков коллег:
— Активное участие на встречах: iOS-гильдии / Android - гильдии

— Приносить новости/интересности на гильдию и рассказывать о проблемах и решениях сложных проектов, в которых принимал участие.
Стек
iOS
Используем RxSwift, в обозримом будущем – переезд на Combine.

Одна из самых важных библиотек – ComposableArchitecture, это реактивная стейт-машина уровня модуля. Нам нравится ее правильная архитектура, рассчитанная на очень быстрые доработки и развитие приложения. В стандартном мобильном приложении источник правды в районе базы данных или in-memory базы. А тут он выше, а база — бекап для состояния.

Верстаем в коде. Кстати, мы уже готовы к SwiftUI, так как довольно давно живем на Data Driven View. Поднимаем минимальную версию iOS до 13.

Github Actions для CI/CD. Мы посчитали по деньгам и решили, что уйдем в облако, так выгоднее.

Серьезно относимся к качеству нашего кода, фичи без тестов не проходят ревью. Помимо unit-тестов мы используем UI и snapshot тесты, а с Data Driven подходом это делать особенно приятно.

Ещё из инструментов есть SwiftLint - для линта, SwiftGen - генерит ресурсы. Figma понятно, зачем. Закопали Sketch и Zeplin.
Android
Kotlin — все переезжают с Java на него, мы тоже. Кстати, недавно в нашем основном репозитории мы перевалили за 50% кода на Kotlin. Java не бежим выпиливать, но каждый раз, когда сильно меняем модуль, переписываем его на новом стеке.

В качестве основного подхода к архитектуре взяли Android Clean Architecture.

Data-driven View — подход отделения слоя view от всего остального. Идея простая, как дрова: единственный метод — render, и это позволяет распараллелиться разработчикам.

Dagger2 — абсолютный дефолт стека.

В легаси есть RxJava1, а используется RxJava2. В новых модулях вовсю пробуем корутины. Захолдировали Realm, Room – наш фаворит.

Пишем Unit и UI-тесты. SnaphotTesting — внедряем, думаем, пробуем.

Для CI/CD используем облачный Github Actions, облака дешевле людей.

Figma (переехали со Sketch, в одном месте редактируешь и смотришь макеты), а Zeplin закопали.

Как вы работаете?
Аджайл
Как организован процесс работы:
• Обычные Agile-активности;
• Утренние стендапы;
• Каждые две недели демо с результатами спринта, ретро и планирование;
• Большие задачи обязательно прорабатываем заранее, иногда вместе с другими разработчиками и экспертами.

Некоторым может показаться, что у нас многовато встреч, но наш опыт показывает, что хорошо налаженные, регулярные коммуникации помогают решить множество проблем превентивно и сокращают время на разработку.
Адаптация
В первый же день готовы все доступы к рабочим средам, инфраструктуре и инструментам, Джире и Конфлуэнсу, корпоративному мессенджеру (хотя обычно все используют телеграм).


В конфе у нас всё очень подробно от того, как правильно готовить ДМС до конкретных инструкций по всем вопросам.
Какие есть вакансии в мобильной команде?
Мобильная разработка
Core team
Приложение Туту.ру
Команда ЖД
Команда ЖД