Разработчик движка симулятора беспилотных автомобилей

Москва, Санкт-ПетербургC, C++, Linux, PythonБеспилотные автомобилиСпециалист
Мы в Яндексе ставим перед собой амбициозную задачу: создание беспилотного автомобиля. Для этого мы собираем команду из высококвалифицированных специалистов, которые будут решать все возникающие в ходе работы над проектом сложные и интересные задачи.
Безопасность — основной приоритет при работе над таким проектом, поэтому код алгоритмов, анализирующих мир вокруг и принимающих решения, должен быть протестирован максимально детально. Все изменения проходят тщательную проверку нашей группой тестирования на реальных автомобилях, однако у такого тестирования есть ряд недостатков. Во-первых, одна машина за день может проехать не более нескольких сотен тестовых километров. Во-вторых, воспроизводить одну и ту же ситуацию в реальной обстановке крайне сложно или даже невозможно.
Вот почему мы уделяем большое внимание разработке симулятора, который позволяет воспроизводить тестовые ситуации, не прибегая к реальным автомобилям. В виртуальном симуляторе за сутки машина может проехать десятки и сотни тысяч километров, а количество различных ситуаций, в которых будет проверен код, несравнимо выше, чем при «реальном» тестировании. Разумеется, реализовать симулятор настоящего мира — задача, мягко говоря, непростая, но ведь и весь наш проект нельзя назвать обычным и стандартным. Поэтому мы ищем талантливых разработчиков, готовых присоединиться к нашей команде разработки симулятора окружения для беспилотного автомобиля.

Вам предстоит:

  • разрабатывать и проектировать ядро симуляторного движка;
  • создавать компоненты системы тестирования беспилотного автомобиля;
  • проектировать и разрабатывать систему для надежного запуска больших наборов тестов в сценариях, приближенных к реальной городской среде;
  • программировать поведение «ботов» — автомобилей и пешеходов, населяющих виртуальный город;
  • оптимизировать потоки данных в системе и скорость ее работы.

Требования:

  • отличное знание классических алгоритмов и структур данных;
  • знание С++ и многопоточного программирования;
  • умение объяснять свои архитектурные решения и убеждать в их правильности других людей;
  • творческий подход к поиску лучшего решения;
  • ответственность и организованность;
  • умение работать в команде.

Дополнительно приветствуются:

  • знание Python;
  • знание STL;
  • знание ROS;
  • опыт программирования под Linux;
  • опыт создания игр;
  • опыт использования Unreal Engine 4 или других движков;
  • опыт создания симуляторов.