проспект Андропова 10А
О команде:
Софт автономного автомобиля - это большое число сложно взаимодействующих компонентов, ограниченных ресурсами вычислителя и жесткими требованиями ко времени работы.
В то время как функциональные команды реализуют отдельные подсистемы для управления автомобилем, мы следим за производительностью всего софта в целом.
На основании собственных мониторингов и метрик, мы помогаем разработчикам находить узкие места в коде, поддерживать и улучшать его производительность.
Чем предстоит заниматься:
- Настройка и развитие коммуникационного слоя между компонентами системы Self-Driving;
-
Оптимизация взаимодействия компонент: настройка executors, callback-групп, intra-process communication, zero-copy;
- Диагностика и устранение проблем в работе middleware;
- Профилирование и оптимизация путей передачи данных;
- Анализ и выбор альтернативных вариантов middleware, проведение пилотов и подготовка планов миграции.
Что мы ждем от кандидата:
- Уверенное владение C++11;
- Опыт коммерческой разработки от 5-ти лет;
- Понимание OS Linux на уровне системного разработчика, уверенное владение консолью;
-
Хорошее понимание принципов обмена сообщениями в распределённых системах (pub/sub, request-response, event-driven архитектуры);
- Опыт профилирования и оптимизации приложений.
Будет плюсом++
- Владение С++17;
- Владение Python3;
-
Глубокое знание DDS и его реализаций;
-
Опыт разработки middleware или расширений к нему;
-
Знание принципов работы zero-copy коммуникаций, IPC-механизмов, shared memory;
- Способность и желание читать много чужого (в том числе open source) кода.