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

Saint PetersburgC++, PythonSelf-driving cars
Мы постоянно улучшаем качество движения автономного автомобиля. Чтобы оценивать прогресс, проезжаем тысячи километров на машинах с разными версиями кода. Ситуации на дорогах реального города никогда не повторяются в точности. К тому же чем более качественно движется автомобиль, тем реже встречаются сложные случаи. По этим причинам со временем нам требуется всё больший пробег, чтобы оценивать изменения и принимать релизы.
Чтобы увеличить объем тестирования кода, мы используем данные из исторических проездов. Алгоритмы обрабатывают на распределенном вычислительном кластере (это тысячи серверов одновременно) данные сенсоров (части конвейера вычислений для сотен тысяч фрагментов проездов). В итоге мы получаем обобщенные автоматические метрики качества работы алгоритмов, охватывающие системы и восприятия, и предсказания, и планирования. Это помогает делать прогнозы, как изменения повлияют на качество, еще до того, как первый автомобиль с изменениями выехал на дороги.

Что нужно делать:

  • разрабатывать систему динамического формирования и исполнения конвейера вычислений;
  • создавать автоматические метрики качества работы алгоритмов;
  • оптимизировать алгоритмы для эффективного использования ресурсов кластера.

Мы ждем, что вы:

  • отлично знаете Python, хорошо знаете C++;
  • знакомы с классическими алгоритмами и структурами данных;
  • имеете аналитический склад ума.

Будет плюсом, если вы:

  • работали с большими объемами данных в распределенных средах;
  • искали и оптимизировали узкие места программ;
  • писали программы с помощью MapReduce.