Python-разработчик системы сборки

НовосибирскPython, ИнфраструктураВнутренние сервисыСпециалист, Старший специалист
Программисты Яндекса создают тысячи коммитов и пулл-реквестов в день. Основная часть кода находится в общем репозитории. Поддержка огромной кодовой базы с одновременным обеспечением высокой производительности большого числа разработчиков — это серьезная задача.
Для максимальной эффективности использования общего репозитория мы применяем методологию trunk-based development и для любого проекта строим все необходимое из исходного кода (и это реально большой объем кода). Чтобы сделать это быстро, мы разрабатываем, развиваем и используем собственную эффективную систему сборки. Она работает как локально на Linux, macOS и Windows, так и на кластере распределенной сборки, обеспечивая за секунды перестроение локальных изменений и за десятки минут — всего репозитория под несколько платформ. Репозиторий быстро растет и развивается, и система сборки не должна ограничивать этот рост.
Система сборки состоит из множества компонентов, в основном написанных на C++, но код интеграции этих компонентов написан на Python. Мы ищем того, кто поможет нам поддерживать и развивать систему сборки.

Вы нам подходите, если у вас есть:

  • желание и умение писать код на Python продуктового качества;
  • знание эффективных структур данных и алгоритмов для работы с большими данными;
  • позитивное мышление и желание развиваться.

Вам предстоит:

  • участвовать в разработке самой современной системы сборки, которую запускают десятки тысяч раз в день;
  • решать интересные алгоритмические и прикладные задачи;
  • участвовать в проектировании наших систем;
  • взаимодействовать со смежными командами и с пользователями.

Большими плюсами будут:

  • знание C++;
  • понимание принципов сборки программ из исходного кода;
  • опыт в разработке распределенных и высоконагруженных систем;
  • опыт в работе с современными системами контроля версий, CI, CD.