Backend developer в travel-highload

Требования

Бэкенд, Средний (Middle)PHPGolang

Местоположение и тип занятости

МоскваПолный рабочий день

Компания

Крупнейший сервис поиска, бронирования и покупки авиабилетов и ж/д билетов

Описание вакансии

Условия работы

Есть у нас приложение с покупкой билетов и всем таким с 3,3 миллионами установок на iOS и оценкой 4,9. Аналогичное есть и для Android. Благодаря ему мы входим в 30 крупнейших сервисов путешествий мира. 

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

Состав команды: 

2 ios разработчика, 2 android разработчика + общие роли: TL, PO, продуктовый аналитик и дизайнер.

В чем подвох?

  • Платим в рынке, 2-3 дня в неделю в офисе, техподход современный, инфраструктура сделана головой и всё такое, но есть подвох. 
  • Менять мир вы будете не больше 70% времени, потому что минимум 30% задач каждого спринта относятся к поддержке приложения и рефакторингу, а не запиливанию чего-то нового. 
  • Рефакторинг делается по принципу «когда тебе нужно что-то от монолита, перепиши это в микросервис», и таким образом мы почти добили монолит за пару лет. Но ключевое слово — «почти».

Наш стек:

  • Legacy — монолит на php 7.1, которого остаётся всё меньше, но с его остатками ещё жить и жить.
  • Все новое — микросервисы на golang.Базы — mysql, elasticsearch.Эксплуатация – ELK-стэк, Grafana + Prometheus.

Что нужно делать?

  • Приложение меняется от просто продажи билетов в сервисы для путешественников. Сейчас у нас не так много функционала про помощь в поездке, но будет больше. 
  • Всё это — отдельные небольшие фичи, которые делают разные команды.
  • По большому счёту, это либо новые Mobile-first сервисы, либо надстройки над существующими продуктовыми сервисами, которые делают ещё несколько десятков команд в компании.

Ждем от вас: 

  • Понимания микросервисов и умения проектировать API.
  • Хорошего знания PHP.
  • Опыта работы с golang или желания начать с ним работать (на нём как минимум стоит делать хайлоад-задачи, а они иногда будут; как максимум — все новые микросервисы).
  • Опыта работы с реляционными СУБД.
  • Готовности не привязываться к конкретной части системы. Сделали -> двигаемся дальше.

Типовой рабочий день:

  • В 10:20 стендап на 10 минут: разбираем кто что делает.  
  • Далее ревью или код. По задачам постоянно синкаемся в чате или созваниваемся в zoom.
  • Перед началом спринта PBR, в начале — планирование где бьем задачки. В конце спринта командное и общее ретро. 
  • ПО ставит задачи в общем виде. Мы прорабатываем и конкретезируем задачу на PBR.Если доработали релиз в монолите, то выкладка несколько раз в неделю. Если микросервисы, то самостоятельные релизы в k8s (OKD).
  • Обязательное ревью от бэкендера из другой фич-команды + если это внешняя система, то мейнтейнера. Соответственно, вы часто ревьюите его код перекрёстно.
  • Unit и интеграционные тесты.Взаимодействия будут с другими бэкендерами (чаще всего кросс-ревью), с командами продуктов (нужно будет делать надстройки над их продуктами, то есть на практике договариваться про API при том, что они его по умолчанию делают, но стоит обсуждать, как именно они его делают), общаться с бизнес-платформой — там команда, отвечающая за большие и сложные домены типа оплаты. 
  • Рядом есть две сильные внутренние команды, которые помогают с инструментами эксплуатации и занимаются разработкой PaaS на основе OKD.

Бонусы

  1. Мы развиваем команду и осознанно инвестируем в это деньги и время — конференции, профессиональная литература, обмен опытом внутри компании;
  2. У нас удобный офис со всем необходимым рядом с м. Нагатинская, с хорошей библиотекой и собственной кухней, где всегда есть чай-кофе, фрукты-овощи, конфеты-печенья-йогурты и другие вкусности в свободном доступе;
  3. Мы платим премии за прочитанные книги по профессиональной тематике;
  4. Помогаем с переездом кандидатам (оплата билетов до Москвы сотруднику и ближайшим членам его семьи, стоимость аренды квартиры в Москве за один месяц).

Дополнительные инструкции

Структура собеседования:

  1. Общение с HR-менеджером;
  2. Встреча с техническими специалистами
    На ней вы сможете понять, достаточно ли профессиональна наша команда и комфортно ли вам с ней будет. Мы, в свою очередь, проверим ваши профессиональные знания и навыки);
  3. Разговор с руководителем отдела и Product Owner
    Вы сможете поговорить о всех тонкостях работы в продуктовых командах.