Краткое описание должностных обязанностей: Разработка программного обеспечения для медицинских устройств.
Ключевые требования к опыту:
- Опыт коммерческой разработки на C++/Qt и Embedded Linux, Android от 3-5 лет.
- Высшее техническое образование (компьютерные науки, радиоэлектроника, приборостроение).
Ключевые обязанности:
- Разработка, отладка и сопровождение программного обеспечения для встраиваемых систем на базе Linux, Android.
- Создание надежного, удобного и отзывчивого графического интерфейса пользователя (GUI) с использованием фреймворка Qt.
- Конфигурирование и поддержка операционной системы Linux для целевой аппаратной платформы.
- Интеграция ПО с аппаратным обеспечением (датчики, исполнительные механизмы, периферия) через интерфейсы (в первую очередь — UART).
- Написание технической документации.
- Активное участие во всех этапах жизненного цикла ПО: анализ требований, архитектура, кодирование, тестирование (модульное, интеграционное), отладка.
2. Технические требования (Hard Skills)
Обязательные:
- Язык программирования C++: Уверенное владение стандартами C++11/14/17. Понимание и применение идиом ООП, шаблонов, STL. Критически важно умение писать безопасный, переносимый и эффективный код.
- Фреймворк Qt (5/6):
- Глубокий опыт разработки GUI с использованием фреймворка Qt.
- Понимание модели сигналов-слотов (signals-slots), системы мета-объектов (meta-object system), событийного цикла (event loop).
- Embedded Linux, Android на уровне администратора/разработчика:
- Опыт сборки кастомных дистрибутивов.
- Понимание архитектуры и компонентов Linux (ядро, драйверы, файловые системы, systemd, udev), Android.
- Навыки низкоуровневой отладки и настройки системы.
- Умение писать скрипты для автоматизации.
- Системное программирование в Linux, Android:
- API POSIX (файлы, сокеты, процессы, потоки, синхронизация).
- Межпроцессное взаимодействие (IPC): сокеты, очереди сообщений, разделяемая память.
- Работа с аппаратурой через файловые интерфейсы (/sys, /proc, /dev).
- Инструменты и методологии:
- Система контроля версий Git (GitFlow или аналоги).
- Системы сборки: cmake, qmake.
Желательные:
- Знание сетевых протоколов и технологий.
- Опыт портирования или разработки драйверов устройств для Linux.
- Базовое понимание электроники и аппаратных интерфейсов.
- Английский язык на уровне чтения технической документации.
3. Личные качества
- Ответственность и внимание к деталям.
- Аналитический склад ума: способность работать с комплексными техническими требованиями и декомпозировать задачи.
- Коммуникабельность: умение четко излагать мысли, работать в команде, документировать решения.
- Самоорганизация и инициативность: способность самостоятельно вести задачу от начала до конца, предлагать улучшения.
- Готовность к постоянному обучению: быстрое освоение нового инструментария и предметной области (медицина).