Мы разрабатываем инфраструктуру back-to-back-тестирования web-сервисов. Тысячи разработчиков Яндекса ежедневно пишут новые фичи и выкатывают их в продакшен. Объём продуктовой логики растёт; кроме того, растёт и граф микросервисов. В таких условиях критично сократить время разработки фичи от первой версии кода до релиза в продакшен (Time-To-Prod или Time-To-Market) без деградации качества, надёжности и производительности. Наш инструмент (Echo) позволяет выдерживать эти требования бизнеса. Мы планируем масштабировать свои инструменты на весь Яндекс или значительную его долю.

Обязанности:

Инструменты ускорения сборки
Почти все высоконагруженные сервисы Яндекса используют С++ для обеспечения производительности. Время сборки стоит на критическом пути feedback loop — его постоянно нужно сокращать. Поэтому мы хотим построить инструмент, упрощающий разработчику анализ ненужных зависимостей. Смежная с этим задача — повысить точность попадания в распределённый сборочный кеш. Интеграция фреймворка тестирования с распределённой файловой системой (Plutonium FS)
Архитектура наших микросервисов не позволяет хранить все данные «рядом» с запущенными инстансами, поскольку общий объём данных слишком велик. Наши коллеги разработали решение, которое позволяет вынести часть данных в быстрое сетевое хранилище. Теперь надо «подружить» это решение с нашим фреймворком, чтобы добавление новых «потоков» (типов) данных под сервис было простым и удобным. Масштабирование фреймворка под новые сервисы и улучшение UX
Ожидаем роста количества сервисов, использующих наш фреймворк. Нам нужно добавлять новые фичи и улучшать UX для сокращения feedback loop. С ростом количества сервисов растёт и нагрузка на поддержку, поэтому мы заботимся о стабильности фреймворка и удобстве его использования. Сопровождаем подключение крупных сервисов и собираем обратную связь от новых клиентов, по результатам устраняем недоработки и улучшаем UX. Автоматизация семплирования входных данных
Важно максимизировать покрытие кода тестовыми обстрелами. Поскольку сервисов много, а входной поток постоянно трансформируется, возникает потребность автоматически строить тестовый семпл оптимальным образом. Разработка AI-базированных средств анализа результатов тестирования
Мы рассматриваем возможность применения современных AI-моделей, чтобы суммаризировать результаты и представлять их в удобном для разработчика виде. Больше о бэкенде в Яндексе — в канале Yandex for Backend

Ключевые навыки:

  • Уверенно владеете Python 3
  • Работали с распределёнными системами или крайне хотите этому научиться
  • Прекрасно понимаете разницу между понятиями «процесс» и «поток», вас не пугает async/await или многопоточность
  • Ответственны и аккуратны

Дополнительные требования:

  • Знакомы с SQL или имеете аналитические склонности
  • Знаете C++ (в частности, с userver)
  • Знакомы с MapReduce
  • Работали с большими данными, умеете анализировать их
  • Имеете склонность к профилированию и оптимизации производительности
  • Коммуникабельны (наши пользователи — разработчики Яндекса, с ними можно и нужно поддерживать диалог)