Мы работаем над инфраструктурой и инструментами разработки в Яндексе. Наша зона ответственности начинается c написания кода и заканчивается сборкой готовой к релизу программы.
Проекты, которыми мы занимаемся:
- Разработка собственной системы контроля версий, позволяющей работать с гигантской кодовой базой Яндекса, а также создание веб-интерфейса пользователя для работы с исходным кодом и ревью с поиском по коду и удобной навигацией. Мы живём по принципу monorepo и trunk-based development, что позволяет нам поддерживать всю кодовую базу Яндекса в порядке, но ставит перед нами задачу масштабирования системы контроля версий и системы работы с исходным кодом. Ещё мы поддерживаем инструменты для удобной интеграции программ с открытым исходным кодом и библиотек с нашей кодовой базой, а также для выкладывания передовых наработок Яндекса в открытый доступ.
- Система непрерывной интеграции. В Яндексе работают несколько тысяч разработчиков, они пишут сотни программ, тысячи библиотек и сотни тысяч тестов. Наша инфраструктура позволяет эффективно проводить автосборку и автотестирование кода под все необходимые платформы, что помогает разработчикам Яндекса двигаться быстрее. Инфраструктура состоит из нескольких тысяч hardware-серверов (это сотни тысяч ядер) и хранилища результатов на несколько петабайт.
- Система сборки и распределённой сборки. Для бэкенд-разработки в Яндексе используются пять языков программирования: C++, Java, Python, Go и Kotlin. Для фронтенд-разработки — TypeScript. Сотни проектов написаны на этих языках. Для лёгкого переиспользования кода и быстрой проверки результатов мы разрабатываем свою систему сборки и распределённой сборки.
- Проработка потребностей и создание специализированных инструментов для самых разных областей разработки — не только бэкенда и фронтенда, но и мобильных и декстопных приложений. Также в Яндексе принято писать много тестов. Благодаря нашим инструментам легко и удобно писать тесты различной сложности: от юнит-тестов до ручных тестов пользовательского интерфейса.
Есть ещё масса задач, которые не попадают напрямую в перечисленные категории, но лежат на пути от коммита до выкладки программ в продакшн. Ими мы тоже занимаемся, ведь наша цель — помочь разработчикам Яндекса как можно быстрее и качественнее доставить продукт конечному пользователю.
Какие задачи вас ждут
Ведение проектов и составление долгосрочных планов
Наши продукты разрабатываются полугодовыми циклами. В каждом цикле планирования нужно помочь одному или нескольким сервисам выделить наиболее нужные проекты, измеримо и понятно их сформулировать, проработать и оценить. Иногда проекты, которые мы ведём, могут длиться и дольше полугода. Составление роадмапа таких проектов и помощь команде с тем, чтобы не сбиться с пути и не ощущать себя бегущими на месте, — важная задача технического менеджера.
Построение процессов разработки в команде и взаимодействия со смежными командами
Мы верим, что хороший менеджер умеет превращать хаос и неразбериху в прозрачные и предсказуемые процессы. Иногда нужно помочь команде с процессом оценки или планирования задач, приоритизацией потоков входящей работы, выстроить систему, позволяющую наблюдателю со стороны понять, что команда делает сегодня и что будет делать завтра. Иногда нужно выстроить процесс взаимодействия со смежным подразделением, например с СИБ: сделать так, чтобы требования безопасности формулировались в виде понятных и приоритизированных задач и самые важные из них брались в работу.
Общение с пользователями и заказчиками
Нашими системами пользуется вся компания, мы всегда на виду. Иногда у команд Яндекса возникают новые потребности, которые важно слышать и понимать. Но бежать во все стороны сразу мы не можем, и менеджеру важно грамотно приоритизировать получаемые запросы и искать оптимальные способы удовлетворить наиболее важные и общие из них. Помимо команд и бизнес-юнитов, нашими пользователями являются и сами разработчики. Если что-то не работает, неудобно или делает их работу неэффективной, наша задача — увидеть масштаб и системность проблемы и найти решение.
Мы ждем, что вы
- Управляли проектами длительностью от полугода
- Работали с командой разработчиков
- Непосредственно занимались разработкой программного обеспечения
- Умеете расставлять приоритеты и решать задачи в срок
- Хорошо управляете обсуждениями и фиксируете результаты
- Знаете, как выстраивать эффективные процессы разработки внутри команды и взаимодействия со смежными подразделениями
- Умеете составлять FAQ, пользовательскую документацию
- Точно и внятно выражаете свои мысли как устно, так и письменно, разговариваете с разработчиками на одном языке
- Последний год работали на аналогичной должности