← Все вакансии

Разработчик на Python в команду сервисов приёмки

Мы разрабатываем инфраструктуру 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
  • Работали с большими данными, умеете анализировать их
  • Имеете склонность к профилированию и оптимизации производительности
  • Коммуникабельны (наши пользователи — разработчики Яндекса, с ними можно и нужно поддерживать диалог)
Python SQL
Откликнуться →