Ostrovok.ru — travel-tech компания, создающая платформы онлайн-бронирования отелей, авиабилетов и других услуг как для индивидуальных путешественников, так и для корпоративных клиентов и тревел-агентств.
Наши бренды: Ostrovok.ru, B2B.Ostrovok.ru, Ostrovok.ru Командировки. Мы развиваем проекты как в России, так и за рубежом.
Команда Air развивает систему бронирования авиабилетов, которой пользуется треть наших b2b клиентов: турагентств и компаний с командировками.
Мы ищем тимлида, который сможет наладить процессы, достроить команду и провести её через рефакторинг в светлое будущее.
Что за команда
У нас уже есть 2 бэкендера, которые вышли три месяца назад. Кроме них в команде: продакт, 2 проджекта, 3 специалиста техподдержки, лид-QA и ещё три тестировщика, фронтендер и дизайнер, которого подключаем при необходимости.
В таком составе работаем над задачами и пытаемся построить прозрачные легковесные процессы: чтобы поменьше встреч — и побольше возможностей подумать, что-то закодить или спроектировать и поставить ценность.
Что за продукт
Систему бронирований в компании пилят уже 4 года. Мы работаем с турагентствами и компаниями, которые сами организуют компандировки — в России и за рубежом. Продукт поддерживает воронку бронирования от поиска билета до успешной оплаты бронирования. После чего мы реагируем на события из внешней системы: отмены, изменения данных, продажа дополнительных услуг.
На сегодня в системе 6 сервисов: админка, логгер, кора с бизнес-логикой, сервис работы с поставщиками, сервис для синхронизации данных и сервис для работы с данными партнёров. Мы не очень довольны текущим состоянием системы: по сути это распределённый монолит с растёкшейся бизнес-логикой. Поддерживать, релизить и чинить инциденты сложно, делать фичи — долго.
Поэтому мы настроены почти целиком её переписать.
В процессе рефакторинга хотим собрать систему в один сервис со стройной модульной структурой внутри — чтобы в моменте было легче поддерживать и развивать. Направление бизнесово генерит много выручки, но работает в лёгкий минус. Хочется сначала поправить юнит-экономику, чтобы уже активно привлекать новых клиентов или выходить на b2c. Сейчас нагрузка невысокая, потому что пользуются только бизнесовые клиенты — всего 5 запросов в секунду в пике. При этом закладываем, что в будущем должно быть несложно снова выделять отдельные сервисы и, например, масштабировать под нагрузкой.
В планах до конца года — добить проекты, в которые уже ввязались, и которые в неготовом состоянии жгут деньги впустую: доинтегрировать пару поставщиков и автоматизировать возврат купленных билетов. Параллельно подступаемся к рефакторингу: доделываем сервис-шаблон, чтобы в нём сразу была интеграция с Testrail, стройный CI с автотестами, логи и телеметрия. Так же попробуем успеть переписать логику поиска билетов.
Какой стэк
Все сервисы кроме админки написаны на Golang’е. Базы: Postgres — для данных, Redis — для кэшей и других временных данных, Kafka — для сообщений. Протокол API — REST. Один сервис использует gRPC, но и в нём планируем перейти на REST. Кор-сервис с бизнеслогикой покрыт интеграционными тестами, в остальном таким похвастаться не могу.
Админка написана на Python и Django. Она тоже покрыта тестами, но прямо сейчас они сломаны — разобраться с этим ещё предстоит. Мы планируем от неё тоже отказаться — всю работу с данными перенести в кор-сервис и предоставлять API для фронтовой админке на react-admin или чём-то похожем.
Так же у нас настроен пайплайн в Gitlab CI: собираем проекты в Docker-контейнеры и деплоим Ansible-скриптами на выделенные виртуалки. Ошибки логгируем в Sentry. Остальные логи смотрим в Kibana и Jaeger.
Идеальный кандидат на эту позицию:
Если видете пересечение с собой — пожалуйста, откликнитесь на вакансию, и наши заботливые рекрутеры проведут вас через процесс интервью:
Выглядит объёмно, но вообще можно успеть за 2-3 недели. После каждого этапа обменяемся обратной связью.