Туту.ру — онлайн-сервис для путешествий, которым ежемесячно пользуются миллионы людей и большая IT-компания (100+ разработчиков).
У них есть кластер Clickhouse в качестве data lake на десятки Тб, большая инфраструктура аналитики, некоторое количество легаси и куча других странных игрушек. Всё это (кроме легаси) надо развивать.
Туризм сейчас на пике после пандемии, продукты быстро растут, и у них появилась куча запросов от команд, которые next-next-done не сделаешь. Поскольку они откладывают в бэклог всё несрочное, без вас потихоньку начинают копиться технические риски, что у нормальных людей происходить не должно.
Чем предстоит заниматься
- Поддерживать инфраструктуру платформы аналитики для приложения с 3 миллионами инсталлов и сайта с миллионом хостов в день.
- Развивать эту инфраструктуру и участвовать в архитектурном планировании.
- Поддерживать и развивать кластер Clickhouse. Большая часть сложных запросов команд сейчас именно про него. Подробнее про этот кластер есть вот тут на Хабре.
- Делать часть инфраструктурных задач (поддержка хранилищ, Docker-хостов и так далее).
- Полный бэклог могут показать на собеседовании.
Задачи
Первые три крупные задачи на испытательный срок, предположительно, такие:
- Стабилизация работы Clickhouse и подготовка к новой нагрузке. Целевое состояние — домик работает, пользователи не кричат, что что-то тормозит в недельных отчётах, мониторинг настроен, известные нам на момент постановки задачи ошибки не всплывают.
- Реализовать интеграцию с AD для Clickhouse. 5 минут на добавление пользователя без участия команды силами дежурного админа.
- Обновить Metabase и наладить сборку необходимых драйверов (Exasol и Clickhouse).
Дальнейшие задачи будут касаться повышения качества данных, доставляемых до аналитики, снижение порогов входа для новых аналитиков, помощь командам в том, чтобы они могли быстрее принимать решения на основе используемых данных.
То есть нужно будет настраивать Clickhouse, Exasol и др. хранилища и разбираться в механизмах их работы, писать автоматизацию для управления конфигурациями серверов (Ansible + Terraform), вводить и выводить из эксплуатации сервера, в перспективе взять на себя роль SRE для поддержки и безотказной работе некоторых сервисов в production под нагрузкой более 400 RPS, делать мониторинг, поддерживать пользователей: их сейчас около 100 человек, из которых 25 запрашивают что-то чаще, чем раз в день.
Кого ищут
- 3 года опыта работы с инфраструктурой/базами данных.
- Опыт работы с гибкими методологиями разработки, потому что рынок сейчас быстро растёт, и приоритеты могут быстро поменяться, а это требует предусмотреть хотелки пользователей в архитектуре заранее.
- Использование и написание новых playbook для Ansible или другой системы управления конфигурациями.
- Docker на уровне администратора и достаточных навыков для решения проблем.
- Опыт администрирования любой из БД.
- Опыт использования инструментов observability и мониторинга (Prometheus, Kibana, Grafana, Sentry, AppDynamics и пр.).
Будет плюсом:
- Python на уровне создания простых скриптов, Kubernetes или Openshift, Kafka, Clickhouse.
- Опыт написания CI/CD pipeline.
- Полезно уметь работать с рисками и создавать прототипы в целях получения обратной связи от пользователей и на основе нее делать надежное решение.
Работа каждого из членов команды оценивается по завершённым задачам для конечных пользователей, прозрачности работы (план и документация), комфортности общих обсуждений. Многие решения они обсуждают командой: придется много общаться как на этапе сбора требований и обсуждения задачи, так и для обмена знаниями — нужно быть готовым объективно аргументировать свою позицию.
Задачи предварительно формулируются руководителем. Дальше проводится аналитика, уточняются детали у постановщика и заказчика. Пишется план, обсуждается с командой, реализуется. На этой стадии ещё будут взаимодействия и с аналитиками, и с разработчиками команд. Набор проектов фиксируется на квартал, бьётся на спринты, планы по спринтам обсуждаются раз в две недели. 10-минутные стендапы каждый день, ретро по проектам, демо, если было важное для всей компании. Задачи проходят code review, если это код на долгие годы. Работают в Bitbucket, Jira, Confluence и Miro.
Сейчас в команде
- Вова — DevOps и админ, многое сделал для упрощения релиза монолита туту.ру, написал часть инфраструктуры и инструментов тестирования, потом присоединился к команде и собрал вторую версию кластера Clickhouse с учетом накопленного опыта от первого кластера, сейчас стал полноценно решать задачи в роли разработчика и закончил несколько проектов на Python и PHP. В общем, вакансия возникает как раз потому, что он переходит в разработку по инфраструктурному направлению.
- Марина — занимается написанием сложных pipeline по сборке невероятно сложных витрин данных с множествами зависимостей из разных источников и pipeline надежной доставки данных до внешних систем, таких как CRM. Готовит AirFlow и микросервисами на Python в Openshift.
- Юра — который не так давно к ним присоединился в роли разработчика. Занимается проектом автоматических сверок данных и настройкой процесса мониторинга качества данных который должен будет обеспечить сопоставление сотен гигабайт данных между разными СУБД и API.
- Илья — помогает команде в решении организационных вопросов, планирования работы команды и нахождения общего языка с внутренними клиентами, но часть времени работает "в поле" с крутыми ребятами в его команде и решает задачки технического плана, помогая пользователям, участвует в обсуждении задач и решений.
Что предлагают
- Офис в 10-15 минутах ходьбы от метро Нагатинская (БЦ "Ньютон-Плаза").
- В офисе кухня с чаем/кофе/плюшками, зоны отдыха.
- Сейчас хотя бы раз в неделю нужно собираться в офисе, готовность редко приезжать в офис будет плюсом.
- Раз в квартал индексируется зарплата и выплачивается премия, при нормальной работе 8,2% в год.
- ДМС со стоматологией, страховка на путешествия, возможна оплата конференций и курсов, есть премии за прочитанные книги.
- График 5/2. Обычно они начинают где-то между 9 и 11 утра.
Как устроен процесс найма
Собеседование из трех этапов.
Скрининг с руководителем (30-40 мин), потом с кем-то из команды (эти два этапа можно разбить, а можно провести в один день), потом финальное с HR и заместителем CTO.