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