Сейчас мы ищем Go-разработчиков сразу в три команды. Смело откликайся, если тебе интересна хотя бы одна из них, и напиши в сопроводительном письме, какое направление нравится больше.
Лучшую для тебя команду обсудим и выберем на первом собеседовании :)
- Prices — backend-команда, которая знает о ценах на авиабилеты почти всё. Мы строим платформу для сценариев, где нужно быстро показать билет или цену без запроса к партнёрам в real time: в календаре цен, подборках и горячих билетах, поиске по соседним датам, истории изменения стоимости и других продуктовых фичах.
Если сильно упростить, Prices — это билетные кэши и инфраструктура вокруг них. Здесь много работы с highload, большими объёмами данных, аналитическими запросами и разными моделями хранения. Именно мы решаем, что положить в ClickHouse, а что — в KeyValue, как быстрее отдавать данные, дешевле их хранить и помочь продуктовым командам запускать новые сценарии без необходимости каждый раз заново разбираться во всей платформе.
- OTA Search — команда нового поиска для Aviasales OTA. В обычном метапоиске мы получаем от партнёров готовые билеты, а OTA может собрать предложение самостоятельно: например, объединить сегменты Москва — Стамбул и Стамбул — Пхукет в один маршрут Москва — Пхукет.
Один пользовательский запрос может породить несколько поисков и собрать до 100 тысяч вариантов. Нужно быстро скомбинировать сегменты, отфильтровать лишнее, проскорить и отранжировать результаты, добавить нужные услуги и не положить API поставщиков лишними запросами. Новый Search уже в A/B-тесте: его основное ядро переписано со старого .NET-монолита, но продукт и архитектура ещё молодые, поэтому впереди много решений вокруг алгоритмов, кэширования, real-time-обработки и поискового пайплайна.
- Passenger Experience – сопровождает пользователя после покупки билета: напоминает, когда пора в аэропорт, показывает терминал, стойки регистрации и выход на посадку, предупреждает о задержках и отменах и помогает добраться до багажной карусели после прилёта.
Мы получаем статусы рейсов от внешнего поставщика, но не показываем их как есть: валидируем данные, дополняем их информацией из заказа и применяем собственные бизнес-правила. Сейчас развиваем статусы в реальном времени, онлайн-регистрацию, офлайн-доступ к поездкам, информацию об аэропортах, интерактивные карты и гайды по пересадкам. Большую часть продуктовой логики переносим на backend, чтобы выпускать изменения без ожидания релизов мобильных приложений.
Чем предстоит заниматься
- разрабатывать и поддерживать Go-сервисы в одном из трёх направлений;
- брать задачу целиком в пределах своего scope: разобраться в проблеме, провести research, спроектировать решение, реализовать его и довести до продакшена;
- работать с внешними и внутренними API, кэшами, очередями и данными — следить, чтобы всё быстро отвечало, не терялось и выдерживало нагрузку;
- искать узкие места, улучшать производительность и надёжность сервисов, разбираться с алертами и не бояться заглянуть в инфраструктуру;
- общаться с продуктовыми, платформенными и клиентскими командами, договариваться об интеграциях и помогать друг другу запускать фичи;
- заниматься техдолгом и улучшать архитектуру там, где это действительно помогает продукту, а не просто делает код красивее;
- приносить на ретро мемы.
Мы ждём от вас
- уверенное владение Go и опыт разработки backend-сервисов в продуктовых IT-компаниях от четырех лет;
- самостоятельность на уровне не ниже крепкого middle: умение взять ограниченную часть продукта или сервиса, спроектировать её и довести до работающего результата;
- понимание архитектуры внутри сервиса: как разделить ответственность компонентов, организовать интеграции и учесть corner cases;
- хорошее понимание OPS-части — deployment, базовых сущностей Kubernetes, Linux, мониторинга и troubleshooting;
- опыт работы хотя бы с частью нашего технического контекста: Kafka, базами данных, кэшированием, highload или внешними API;
- готовность задавать вопросы и отвечать за качество результата;
- способность быстро разбираться в незнакомом стеке и продуктовом контексте.
Что мы предлагаем
- в любой точке мира: не привязываемся к локации, платим в долларах, любим путешествовать;
- без бюрократии: удобные процессы здорового человека, горизонтальные и открытые коммуникации, быстрое обсуждение идей и принятие решений;
- компенсируем: ДМС, психотерапию или иностранные языки, занятия спортом и больничный;
- на райском острове: можно работать на Пхукете с видом на океан.