Базовые компоненты сборки фронтенда
Язык буткемпа: Python, TypeScript
Технологии: MongoDB, NodeJs, PostgreSQL, S3
Наша команда создаёт систему для сборки и тестирования фронтенд-проектов для всего Яндекса, избавляя каждую команду от большой инфраструктурной работы. Такая экосистема позволяет не только выбрать и предоставить всем лучшие инструменты, но и хорошо интегрировать их с другими инфраструктурными сервисами. Наши пользователи — фронтенд-разработчики, которые пишут браузерные библиотеки, библиотеки под Node.js, изоморфный код, веб-сервисы. Они получают распределённую воспроизводимую сборку на множестве хостов с максимально возможной степенью параллельности.
Стек
TypeScript, Python, NodeJs, MongoDB.
О команде
Распределенная команда FBP состоит из четырёх человек. География: Красноярск, Москва, Санкт-Петербург, Белград. Наши коллеги из смежных групп находятся в Новосибирске, Москве, Белграде.
Специалисты FBP имеют разный опыт на разных языках и проектах. Пишем на Python, TypeScript, меньше на С++. Мы стараемся делиться экспертизой и использовать сильные стороны каждого.
Особенности
- Сможете внести свой вклад в построение распределенной масштабируемой системы сборки для фронтенд-проектов.
- Будете влиять на процесс и результат, брать на себя ответственность.
- Сможете разобраться системах сборки на уровне эксперта. Глубоко погрузиться в детали реализации: изучить принципы работы пакетных менеджеров, их особенности и различия, устройство бандлеров фронтенд-кода, настройки и тонкости работы компиляторов TS.
- У нас сильная команда, в которой вы сможете развиваться.
- У нас сложные задачи не похожие ни на фронтенд, ни на бэкенд в чистом виде.
- Возможность улучшить фронтенд-мир при выходе проекта в open-source.
Что нужно принять во внимание
Большой технологический стек, соединяющий open-source фронтенд-инструменты, CI, сборочные системы, похожие на Bazel, Buck2, Make. Работа сильно отличается от фронтенд-разработки (непосредственно UI какого-либо сервиса не пишем, только делаем инфраструктуру для фронтенд-разработчиков). Потребуется принимать много архитектурных и долгосрочных решений.
У нас есть дежурства: наши пользователи — разработчики фронтенда могут прийти за помощью. Примеры обращений: вопросы про сборку кода, разные package manager’ы, инструменты для монорепозиториев.
Вызовы
Сборочная платформа, которую мы создаём должна:
- распространять лучшие практики на всю компанию;
- дать разработчикам возможность сосредоточиться на создании продуктов, убирая затраты на инфраструктуру сборки, тестирования, пакетирования, распространения;
- подталкивать к обновлению тулчейна и зависимостей на проектах, уменьшая стоимость сопровождения и замедляя либо останавливая рост техдолга.
Платформа должна позволять собрать и протестировать десятки тысяч таргетов сборки за минимальное время.
Дополнительные материалы
- Видео доклада Сергея Прейса о том, как в целом устроена сборка ya make
- Пост на Хабре от Константина Кардаманова о том, как устроен кластер распределённой сборки DistBuild