Туту — сервис путешествий, где можно купить билеты на поезда, самолёты и автобусы, посмотреть расписание пригородных поездов, найти туристические путёвки, забронировать отели и экскурсии, почитать отзывы на вагоны и самолёты, посмотреть, где там розетки и пеленальные столики, увидеть фото и пропасть на полжизни.
В команде ж/д мы делаем лидирующий сервис онлайн-продаж билетов на поезда, помогаем людям путешествовать на поездах удобнее и проще.
Наш продукт появился на заре онлайн-сервисов, с тех пор мы активно развиваемся. У продукта 400 тысяч посетителей в сутки, рост показателей идёт со скоростью стартапа, несмотря на 15 лет существования. У нас можно не только посмотреть расписание и купить билеты, но и узнать больше о поездах из отзывов наших покупателей, получить подсказки и рекомендации самых удобных мест, автоматически выкупить билеты, когда они появляются в продаже, и решить множество других задач.
Кого мы ищем
Сейчас в команду нам нужен разработчик уровня Middle. Вам предстоит разрабатывать новые фичи, дорабатывать существующие, следить за работоспособностью сервисов, иногда создавать новые и прорабатывать архитектуру их взаимодействия.
Немного про стек
- Монолит: PHP 7.2 (заморожен, планируем полноценно перейти на Go к 2028 году), MariaDB, MongoDB, Memcached.
- Сервисы: Go, Next.js, MongoDB, Redis.
- Очереди: RabbitMQ, Kafka.
Основные задачи
- Поддержка существующей инфраструктуры и разработка новых продуктовых задач.
- Переезд на микросервисную архитектуру для ускорения работы и упрощения поддержки сервиса.
- Оптимизация производительности создаваемых решений в соответствии с внутренними требованиями. Применение и улучшение DevOps-инструментов.
- Интеграции с внутренними и внешними партнёрами.
- Повышение конверсии и снижение процента отказа на этапе оформления билетов за счёт развития существующего и добавления нового функционала.
- Покрытие кода тестами (юнит, интеграционные, e2e) в соответствии с внутренними требованиями.
- Активное участие в решении проблем работы сервиса, реакция на инциденты.
От вас нужно
- Опыт коммерческой разработки веб-приложений на PHP от 2 лет.
- Опыт работы с монолитными и сервисными архитектурами.
- Опыт работы с MongoDB, MySQL.
- Опыт проектирования архитектуры приложения, взаимодействия сервисов и описания интерфейсов (REST OpenAPI, gRPC ProtoBuf).
- Понимание CI/CD, Docker, Kubernetes.
- Опыт написания автотестов.
- Опыт разработки и/или знание Go будет плюсом.
Про команду и рабочие процессы
- Работать предстоит в одной из 3 кросс-функциональных команд направления ж/д.
- Состав направления ж/д: Product Owner; Techlead; 2 — Scrum master; 8 — Backend; 3 — Frontend; 2 — iOS; 2 — Android; 4 — QA (автоматизаторы), а также подключаемые роли продуктового, системного аналитика и дизайнера.
- В основе наших процессов Scrum. Мы применяем 2-недельные спринты и стандартный набор обязательных событий: sprint planning, DSM, sprint review, retro.
- Монолит релизится 2 раза в неделю. Сервисы релизятся регулярно, без сборки релизов.
- Ревью проходит внутри команды ж/д, между всеми backend-разработчиками. Требуется как минимум 2 апрува, для слияния кода в мастер-ветку.
- Ответственность за качество продукта лежит на всей команде. Разработчики пишут код и покрывают его тестами по пирамиде тестирования. Стараемся больше писать юнит-тестов, чем интеграционных и e2e. QA-инженер обучает команду практикам тестирования, помогает составлять тест-кейсы, подключается к проверке выпускаемых задач, пишет интеграционные и e2e-тесты в случае необходимости, участвует в развитии подходов обеспечения качества в ж/д и компании в целом.
График работы
- Промежуточный гибридный вариант. Есть возможность работать из дома, сейчас нет требования посещать офис.
- Раз в квартал всей командой собираемся в офлайне, пообщаться в неформальной обстановке, послушать про результаты квартала и обсудить цели на следующий.