Направление робототехники Яндекса — молодое и очень многообещающее. За несколько лет мы разработали и запустили на складах Яндекса три типа роботов, откатали несколько внешних пилотов и активно планируем новые запуски.
Мы ищем разработчика со знанием С++ или Python в инфраструктуру робототехники подразделения систем управления флотом.
Наша команда разрабатывает среду для жизни роботов и инструменты для управления флотом: всё от автоматизации наливки и системы деплоя на роботов до управления конфигурациями и экспериментами.
Наши роботы работают во внешнем относительно дата-центров мире. Поэтому к ним невозможно применить обычные способы управления кластерами серверов, рассчитанные на хорошую связность. При этом задачи схожи: нам нужно довозить пользовательскую нагрузку, управлять вычислительными ресурсами роботов, оркестрировать выкатку с учётом ширины сетевого канала. Кроме того, у вычислителей роботов иерархическая структура, и нам нужно доставлять код на все уровни.
Какие задачи вас ждут
Разработка системы деплоя пользовательской нагрузки
Вам предстоит делать систему деплоя пользовательской нагрузки на древовидные вычислительные мощности роботов, улучшать технологии CI/CD для кода различных вычислительных систем роботов, масштабировать системы управления роботом и повышать их доступность.
Разработка агентов управления на роботе
Агенты приводят робота к целевому состоянию, которое описано в спецификации, получаемой от системы управления флотом. В частности, агенты скачивают и обновляют контейнеры с пользовательской нагрузкой, устанавливают необходимые версии пакетов и обновляют конфигурацию всех компонентов робота. Роботы состоят более чем из одного вычислителя, поэтому нам требуется приводить к целевому состоянию их все.
Автоматизация процессов создания и эксплуатации робота
Вас ждут удобная и быстрая наливка вычислителей робота с помощью одной команды, инструменты для создания робота из набора модулей в WebUI, автоматическое журналирование всех операций с роботом с привязкой к календарю, механизмы напоминания о техническом обслуживании, запуск и анализ экспериментов. И многое-многое другое, что позволяет удобнее работать с нашим флотом.
Мы ждём, что вы
- Уверенно владеете Python или С++
- Знаете классические алгоритмы и структуры данных
- Уверенный пользователь Linux
- Находили и устраняли проблемы в больших и сложных системах
- Готовы брать на себя ответственность
Будет плюсом, если вы
- Владеете Go и Bash
- Знакомы с системами лёгкой виртуализации, в частности LXC, Docker
- Участвовали в разработке систем деплоя или CI/CD
- Использовали реляционные СУБД, например MySQL или PostgreSQL
- Работали с ROS и ROS2