Программист встраиваемых систем для одноплатных компьютеров на Linux

Дата размещения вакансии: 24.03.2026
Работодатель: Научно-исследовательский институт железнодорожного транспорта (ВНИИЖТ)
Уровень зарплаты:
от 250000 до 250000 RUR
Город:
Санкт-Петербург
Благодатная улица 10
Требуемый опыт работы:
От 3 до 6 лет

Обязанности:

  • Разработка драйверов для промышленного оборудования
  • Создание программного обеспечения для обработки видеопотоков
  • Реализация протоколов связи с периферийным оборудованием
  • Оптимизация производительности систем реального времени
  • Документирование разработанных решений

Требования:

  • Уверенное владение языками программирования C/C++.
  • Опыт работы с операционной системой Linux на уровне системного программирования (инициализация системы, службы, драйверы), а не только пользовательских приложений.
  • Понимание принципов взаимодействия программного обеспечения с аппаратной частью (регистры, прерывания, шины, контроллеры).
  • Практический опыт работы с последовательными и промышленными интерфейсами: UART, RS‑485, CAN, I2C, SPI и аналогичными.
  • Опыт работы с протоколами FieldBus (в основном Modbus RTU, Modbus TCP), а также проприетарными бинарными протоколами
  • Опыт разработки многопоточных приложений и организации межпроцессного взаимодействия.
  • Навыки диагностики и поиска неисправностей с использованием измерительного оборудования и/или специализированных диагностических утилит
  • Умение читать и применять техническую документацию на электронные компоненты и модули (datasheet, application notes, reference design)

Желательный опыт

  • Опыт портирования Linux (или другого POSIX‑совместимого ОС) на новые аппаратные платформы (одноплатные компьютеры, кастомные платы).
  • Опыт работы с одноплатными компьютерами на базе чипов RK35XX или подобных.
  • Опыт обработки данных и понимание особенностей анализа временных рядов.
  • Практика разработки или модификации драйверов устройств.
  • Опыт оптимизации времени отклика и задержек выполнения программ, в том числе в системах реального времени.
  • Навыки разработки графических пользовательских интерфейсов (предпочтительно Qt или аналогичные фреймворки).
  • Опыт написания скриптов автоматизации сборки, развертывания и настройки систем (shell‑скрипты, Python и др.).

Желательный практический опыт

  • Запуск, отладка и сопровождение собственных плат или контроллеров на базе одноплатных компьютеров или SoC.
  • Подключение и интеграция новых датчиков, модулей или периферийных устройств, включая настройку протоколов обмена.
  • Разработка драйверов или низкоуровневых протоколов обмена данными с оборудованием.[1]
  • Создание сервисных (демонных) программ для взаимодействия с оборудованием и другими компонентами системы.
  • Анализ и устранение причин нестабильной работы устройства (зависания, перезапуски, нарушения обмена данными и т.п.).