Обязанности: - Должностные обязанности разработчика включают разработку программного обеспечения для одноплатного компьютера, входящего в состав систем управления.
- Основная задача – создание и оптимизация программы для анализа облака точек, поступающих от лидара, с целью определения геометрии исследуемого тела. Разработчик отвечает за создание и совершенствование алгоритма работы, учитывающего различные ситуации и обеспечивающего безопасность окружающих.
Работа включает написание эффективного и надежного кода на C++, оптимизированного для работы на ограниченных ресурсах одноплатного компьютера. - Разработчик участвует в проектировании архитектуры программного обеспечения, уделяя особое внимание обработке данных в реальном времени и взаимодействию с механическими компонентами системы. Проводит тестирование и отладку программы. В обязанности входит интеграция разработанного ПО с другими системами.
- Разработчик создает и поддерживает техническую документацию, включая описание алгоритмов анализа облака точек и логики принятия решений.
- Работа требует постоянного совершенствования алгоритмов на основе данных, полученных в ходе эксплуатации, и адаптации системы к эксплуатационным условиям.
- Разработчик участвует в оптимизации производительности системы, уделяя особое внимание скорости обработки данных и точности позиционирования.
Требования:
- Уверенное владение языком программирования C++, включая стандарты C++20 и выше
- Опыт разработки программного обеспечения под операционную систему Linux
- Знание фундаментальных концепций Computer Science, включая алгоритмы и структуры данных
- Понимание теории автоматов и практический опыт реализации конечных автоматов (state machines)
- Уверенное владение математическим аппаратом, в частности:
- Линейная алгебра (векторы, матрицы, линейные преобразования)
- Прикладная математическая статистика (включая понимание и опыт реализации байесовского классификатора, регрессионный анализ)
- Статистическая обработка сигналов
- Опыт разработки приложений с использованием Qt framework
- Навыки работы с системами контроля версий (предпочтительно Git)
- Практический опыт многопоточного программирования и знание соответствующих паттернов
- Понимание принципов объектно-ориентированного программирования
- Знание и опыт применения паттернов проектирования
- Навыки отладки, профилирования и оптимизации производительности C++ приложений
Дополнительные навыки (желательны):
- Опыт работы с алгоритмами обработки изображений
- Базовые знания в области компьютерного зрения
- Опыт разработки программного обеспечения для взаимодействия с аппаратными устройствами
Условия: - официальное трудоустройство и достойный уровень оплаты труда;
- офис недалеко от м. Авиамоторная / м. Лефортово.