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