О продукте
Вы будете частью команды, разрабатывающей аппаратно-программное решение — комплекс ....
В функциональности продукта:
- сбор, обработка и анализ видеопотока в реальном времени;
- взаимодействие с периферийными устройствами (датчики, платы сопряжения, контроллеры);
- управление поворотной платформой: слежение, наведение, стабилизация;
- разработка ПО автоматизированного рабочего места оператора;
- алгоритмы обработки данных и моделирование элементов системы.
Используемый стек: C++17/20, Qt 6, STL, Boost, OpenCV, CMake, Git, GitLab CI, Google Test, MATLAB/Simulink, Python (для прототипов).
Задачи разработки
В команде разработки выделены специализированные направления, каждое из которых отвечает за ключевой технический домен системы. Мы разделяем зоны ответственности так, чтобы каждый специалист мог глубоко фокусироваться на своей области:
- сбор, обработка и анализ видео, компьютерное зрение;
- интеграция с периферийными устройствами (COM, USB, Ethernet, CAN);
- алгоритмы управления поворотной платформой (ПИД, слежение, наведение);
- разработка пользовательского интерфейса АРМ оператора;
- алгоритмы и графовые структуры данных;
- разработка ядра системы и архитектурных компонентов;
- моделирование в MATLAB/Simulink и перенос моделей в production-код.
Требования к кандидату
Технические навыки:
- Уверенные знания C++, опыт разработки на стандарте C++17/20;
- Отличное владение STL, многопоточностью и библиотекой Boost;
- Опыт разработки интерфейсов с использованием Qt (Widgets/QML);
- Опыт работы с OpenCV и обработкой видеопотоков в реальном времени;
- Понимание теории автоматического управления (ПИД-регуляторы, фильтры Калмана);
- Опыт взаимодействия с периферийными устройствами (COM, USB, CAN, Modbus);
- Знание алгоритмов и структур данных, опыт работы с графами;
- Навыки архитектурного проектирования и оптимизации производительности.
Инженерные и коммуникационные навыки:
- Умение писать поддерживаемый, читаемый и стабильный код;
- Способность обосновывать архитектурные решения и обсуждать их с командой;
- Навык взаимодействия в команде и гибкий подход к задачам;
- Владение английским языком на уровне чтения технической документации (разговорный — плюс).
Будет плюсом:
- Опыт работы с CUDA/GPU-ускорением;
- Знание ROS/ROS2;
- Опыт работы с embedded Linux и кросс-компиляцией;
- Опыт написания тестов (Google Test);
- Опыт моделирования в MATLAB/Simulink и автогенерации кода;
- Участие в создании сложных пользовательских интерфейсов и UI/UX-проектировании.