share vacancy with friends
← all vacancies

Data Engineer

Remote / Product

Наша команда инфраструктуры аналитики помогает аналитикам делать свою работу. Мы обеспечиваем доставку данных в единое хранилище для аналитики и поддерживаем инструменты для их обработки и презентации.

В компании много самодостаточных команд. В каждой команде свои сервисы, свои разработчики и аналитики. Так что у нас достаточно потоков данных самого разнообразного формата и объема. Это данные о букингах, на которые смотрит вся компания, и каждая запись проверяется чуть ли не руками, а еще — данные о билетах объемом более терабайта в сутки. Это требует разных подходов с нашей стороны.


Стек:

Мы используем Apache Impala на базе Apache Hadoop для хранения и обработки данных.

Основной источник данных – Kafka. Для доставки и оркестрации данных мы используем самописные сервисы на Python 3 + PostgreSQL. Аналитики строят отчеты в Redash и Apache Superset.


Языки программирования:

Основной язык — это Python 3.8. Важно знать SQL, он нужен для Impala и PostgreSQL. У нашего сервиса есть админка, она написана на TS (React) + MobX. Иногда полезно знание С++, Scala, Go, чтобы посмотреть на исходный код используемых сервисов, как open source, так и тех, что пишут другие команды в компании.

What you will do:

Основная задача группы инфраструктуры аналитики — поддерживать ее работоспособность.

В это входит много разных задач:

  • подключение новых данных; мониторинг актуальности; исследование производительности отдельных запросов и базы в целом; разработка инструментов для запуска агрегатов разных форматов и так далее;
  • есть пара хранилищ, которые оптимизированы для каких-то специальных целей. Например для команды саппорта. Там основная задача в том, чтобы данные не расходились с основным хранилищем. Поддерживаем open source продукты, которые связаны с аналитикой;

    Superset и Redash для отчетов. Snowplow для сбора клиентских событий.

  • Основной код, с которым надо работать — это репозиторий для софта, который выполняет доставку данных в кластер и последующую оркестрацию задач.

    Там порядка 40 тысяч строк на Python 3.8 и 3 тысячи на TypeScript (это админка). Критическая функциональность покрыта тестами, и юнит и приемочными. 80% кода покрыто тестами. Тестирование и сборка производятся на CI сервере (Jenkins). Деплой в Kubernetes. Настройкой серверов и разворачиванием баз мы не занимаемся. Это делает отдельная команда инфраструктуры. Поступающие задачи можно поделить на две группы: текучка и развитие платформы.



    Текучка бывает разная:

  • Нужно подключить новые данные или изменить формат уже подключенных.

    Нужно помочь разобраться, почему не работает SQL-запрос или BI-система.

  • Произошел какой-то инцидент и нужно найти корень проблемы и починить или донести до тех, кто может починить.

    Как правило такие штуки появляются как запросы через Slack, которые мы регистрируем в JIRA и выполняем обычно в течение одного-двух дней.


Развитие платформы — это проекты от двух недель до нескольких месяцев, которые дают какие-то новые возможности: бэкапы в AWS S3 Glacier; оптимизированные агрегаты; автоматическая выгрузка результатов расчетов во внешние базы. Большая часть таких задач приходит от команды аналитики. Сейчас мы планируем переезд на более современный стек.

Но мы много выделяем времени на задачи, которые уменьшают количество текучки или облегчают её выполнение.

What we expect from you:

  • опыт работы инженером данных от 3 лет;
  • отличное знание Python и SQL;
  • опыт с AWS или опыт с Apache Impala.

What we offer:

  • сильную команду и возможность влиять как на технологические, так и на продуктовые решения;
  • возможность выбрать, где работать — удаленно или в одном из наших офисов (Пхукет, Москва или Петербург);
  • заботу о здоровье: компенсацию индивидуальной психотерапии, медицинскую страховку для тебя и твоей семьи;
  • поддержку твоих увлечений: компенсацию занятий спортом и изучения иностранных языков.

• awesome team • pool parties, terrace parties, everywhere parties! • chill office vibe • snacks of all kinds in the fridge

• awesome team • pool parties, terrace parties, everywhere parties! • chill office vibe • snacks of all kinds in the fridge

Benefits for Aviasales employees

Competitve salaries

We pay what you deserve - not a dollar less

Sports

We partially pay for sports: be it the gym or curling lessons

Language tuition

We’ll help you level up in your target language - c’est très important!

Medical insurance

We take care of you and partially compensate health costs

We cover co-working expenses

Because your workspace is important

Children's education

We'll help you pay for kindergarten and school fees

Distance working

We're cool with you working from home

👀 We also:

Launch rockets into space, test out flamethrowers and hold cat-Tuesday sacred