Мы ищем опытного Старшего инженера-программиста C++ для участия в проекте встраиваемых систем технического зрения и внесения вклада в разработку передовой платформы управления трафиком на основе сенсорного слияния и архитектуры на базе ROS2.
Роль сфокусирована на создании и поддержке основных компонентов приложения на современном C++, интеграции датчиков и внешних интерфейсов, а также на разработке надежного, высокопроизводительного программного обеспечения для сложных сценариев управления дорожным движением. Успешный кандидат будет самостоятельно работать над сложными задачами разработки, участвовать в принятии архитектурных и технических решений, проводить ревью кода и помогать обеспечивать масштабируемость, поддерживаемость и производительность платформы.
Над чем вы будете работать:
В рамках проекта встраиваемых систем технического зрения вы будете участвовать в создании сложной платформы сенсорного слияния, предназначенной для обработки сложных сценариев дорожного движения и перекрестков. Вашей основной задачей будет разработка надежных и высокопроизводительных компонентов C++ в существующей экосистеме ROS2, а также интеграция с датчиками и другими компонентами системы. У вас будет возможность влиять на технические решения, участвовать в принятии архитектурных решений и работать над программным обеспечением, где производительность, надежность, масштабируемость и возможности реального времени имеют первостепенное значение.
Основные обязанности:
- Проектирование и реализация основных компонентов приложения на C++ в системе на базе ROS2.
- Разработка и поддержка высококачественного программного обеспечения с использованием современного C++ (C++17/20).
- Интеграция различных датчиков, внешних интерфейсов и сторонних компонентов в существующую систему.
- Разработка распределенных, компонентных приложений с использованием публикации/подписки и обмена сообщениями.
- Участие в принятии решений по архитектуре и дизайну программного обеспечения, оценка технических вариантов и обеспечение поддерживаемых и повторно используемых решений.
- Разработка модульных и интеграционных тестов для обеспечения качества, надежности и стабильности программного обеспечения.
- Участие в ревью кода и предоставление конструктивной технической обратной связи.
- Определение и реализация оптимизации производительности с упором на производительность во время выполнения и эффективное использование ресурсов.
- Отладка и устранение сложных проблем в среде разработки Linux, включая профилирование и анализ производительности.
- Поддержка образов контейнеров и конфигураций сборки для сред разработки и целевых сред.
- Тесное сотрудничество с другими разработчиками, архитекторами и заинтересованными сторонами проекта.
- Предоставление технического руководства и наставничества менее опытным разработчикам.
Требуемые навыки и опыт:
- Опыт профессиональной разработки программного обеспечения более 5 лет, с глубокими знаниями C++.
- Высокий уровень владения современным C++ (C++17/20).
- Глубокое понимание управления памятью, конкурентности, многопоточности и разработки критически важных к производительности программ.
- Опыт разработки роботизированных приложений с использованием ROS2.
- Практический опыт интеграции нескольких датчиков в сложные программные системы.
- Понимание архитектуры ROS2 и распределенных/компонентных систем.
- Опыт работы с публикацией/подпиской или обменом сообщениями и распределенными системами.
- Глубокое понимание принципов архитектуры и дизайна программного обеспечения.
- Опыт написания модульных и интеграционных тестов.
- Сильные навыки разработки под Linux, включая отладку, профилирование и анализ производительности.
- Большой опыт работы с Git и рабочими процессами совместной разработки программного обеспечения.
- Опыт работы с Docker и контейнеризованными средами разработки/сборки.
- Сильные аналитические способности, навыки решения проблем и отладки.
- Способность работать самостоятельно и брать на себя ответственность за сложные технические задачи.
- Хорошие навыки общения на английском языке.
Будет плюсом:
- Практический опыт работы с ROS2 и разработка узлов ROS2.
- Опыт работы с Python, особенно для некритичных узлов ROS2, инструментов или тестирования.
- Опыт работы с Yocto / Embedded Linux.
- Знание Kubernetes и Helm.
- Опыт работы с CI/CD пайплайнами, особенно Jenkins или GitLab CI.
- Понимание концепций машинного обучения, применяемых к восприятию и принятию решений.
- Опыт работы с операционными системами реального времени и концепциями программирования реального времени.
- Опыт работы с системами управления дорожным движением, мониторинга дорожного движения или правоохранительными системами.
Мы предлагаем:*
- Гибкий формат работы — удаленно, в офисе или смешанный.
- Конкурентная заработная плата и хороший компенсационный пакет.
- Персональный карьерный рост.
- Инструменты профессионального развития (программа наставничества, технические доклады и тренинги, центры компетенций и др.).
- Активные технологические сообщества с регулярным обменом знаниями.
- Компенсация обучения.
- Памятные подарки к юбилею.
- Корпоративные мероприятия и тимбилдинги.
- Другие преимущества, специфичные для конкретного местоположения.
*не применимо для фрилансеров