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