Автономный автомобиль — это сложная вычислительная система, в которой множество устройств работают вместе: непосредственно вычислители, в том числе собственной разработки, сетевое оборудование, микроконтроллеры, датчики. Мы используем различные аппаратные платформы (в том числе для встраиваемого применения), сети (как классические Ethernet, Wi-Fi, LTE, так и специализированные, например CAN), операционные системы и программное обеспечение.
Для безупречной работы этого комплекса в режиме 24/7 необходимо иметь инструменты, которые, с одной стороны, позволяют легко менять конфигурацию аппаратуры и программного обеспечения для проведения экспериментов, а с другой — гарантируют качество и надежность вычислительной платформы. В нашей команде вы сможете заняться созданием и развитием инструментов для управления конфигурацией вычислительной платформы автономного автомобиля.
В то же время нельзя рассматривать автономный автомобиль отдельно от множества облачных сервисов, которые тестируют алгоритмы, собирают код, анализируют результаты проездов, обучают ML-системы. Вы столкнетесь с обширным кластером CPU/GPU-серверов и стеком облачных технологий, как широко распространенных, так и изобретенных в компании «Яндекс» и не имеющих аналогов в мире.
Это отличный шанс поучаствовать в разработке передовой технологии, важной для всего человечества.
====Что нужно делать:
- создавать и развивать инструменты для решения следующих задач:
- управление конфигурацией операционной системы на вычислителях автономного автомобиля;
- доставка и установка операционных систем (в том числе bare-metal install);
- автоматизация конфигурирования сети автономного автомобиля;
- динамическое обеспечение сетевой связности автономного автомобиля с использованием нескольких внешних каналов (Ethernet, Wi-Fi, LTE);
- автоматизация подготовки окружений для разработки, тестирования и эксплуатации системы беспилотного вождения;
- развертывание системы беспилотного вождения на автономный автомобиль или робот-доставщик;
- управление флотом автономных автомобилей и роботов-доставщиков;
- мониторинг состояния вычислительной платформы и сети автономного автомобиля;
- разрабатывать облачные микросервисы и обеспечивать их отказоустойчивую работу;
- участвовать в проектировании вычислительной платформы;
- заниматься другими инфраструктурными и системными задачами.
====Мы ждем, что вы:
- отличаетесь исследовательским складом ума, любите решать сложные и непонятные проблемы, стремитесь изучать и создавать новые технологии;
- хорошо знаете архитектуру компьютерного железа;
- глубоко знаете архитектуру Linux-систем, устройство дистрибутивов, работали с системами пакетирования программного обеспечения;
- имели дело с сетями TCP/IP, знаете основные протоколы;
- работали с системами контейнеризации (LXC, Docker);
- уверенно владеете Python (либо другим языком программирования и готовы писать на Python);
- отлично знаете bash, Git.
====Будет плюсом, если вы:
- знаете языки C++, Go;
- работали со встраиваемыми системами (ARM, различные embedded-платформы);
- администрировали сети TCP/IP;
- собирали собственные дистрибутивы Linux;
- имеете представление о современных подходах для решения задач CI/CD и опыт работы c системами, решающими эти задачи;
- понимаете устройство современных платформ машинного обучения (CUDA, TensorRT, TensorFlow).