AND Digital

Старший разработчик C++ (контракт)

Коротко

Контрактная позиция старшего Embedded C++ разработчика (6 месяцев, немедленный старт) в Лондоне с гибридным графиком (2-3 дня в офисе в Кингс-Кросс), работа над строго регулируемым, критически важным для безопасности медицинским устройством. Требуется сильный опыт C++17 для встроенного Linux, работа с многопоточностью, детерминированным поведением, низким выделением памяти, hexagonal-архитектурой, IPC/сериализацией (FlatBuffers), CMake, CI/CD и кросс-компиляцией для aarch64. Зона ответственности включает сигналы тревоги, запуск и самотестирование устройства, хранение данных пациента и управление жизненным циклом сессий. Приветствуется опыт работы с медицинскими устройствами, стандартами IEC 62304/ISO 13485/IEC 60601, NVIDIA Jetson и Yocto.

Контрактный старший разработчик C++
Местоположение: Лондон, 2-3 дня в неделю на месте в Кингс-Кросс
Контракт: Немедленный старт - контракт на 6 месяцев
Кто мы
AND Digital ставит своей миссией сократить разрыв в технических навыках по всему миру. Мы помогаем организациям ориентироваться в будущем технологий, сочетая человеческий опыт, новые технологии и ИИ для достижения лучших результатов быстрее.
С 2014 года мы работаем вместе с клиентами, решая сложные задачи, создавая высокоэффективные команды и формируя устойчивые компетенции. Сегодня нас более 1300 человек в Великобритании, Европе и США, и у нас амбициозные планы по дальнейшему росту.
Роль
Мы ищем четырех разработчиков Embedded C++, чтобы присоединиться к внутренней команде бэкенд-инженеров, работающих над строго регулируемым, критически важным для безопасности медицинским технологическим продуктом.
Вы будете отвечать за самостоятельную область приложения, выполняя работу от первоначального проектирования до объединенного, протестированного и документированного кода. В зависимости от вашего опыта и потребностей команды это могут быть такие области, как сигналы тревоги, сохранение данных пациентов, контроль и запуск устройства, управление сессиями или функциональность сервиса.
Вы будете тесно сотрудничать с архитектором программного обеспечения и инженерами, ответственными за смежные компоненты, при этом беря на себя ответственность за доставку в вашей области.
Эта роль хорошо подходит опытному инженеру Embedded C++, который работал с Linux-ориентированными продуктами, критичными для безопасности, миссии или строго регулируемыми, и комфортно чувствует себя при работе с формальными процессами качества, статическим анализом, покрытием кода и строгими требованиями к тестированию.
Над чем вы будете работать
Ваша работа может охватывать несколько областей встроенного приложения, включая:
Сигналы тревоги
•Разработка технических условий тревоги на основе телеметрии аппаратного обеспечения и операционной системы.
•Работа с сигналами, включая батарею, температуру, часы, сбои питания и качество телеметрии.
•Реализация тревог датчиков пациента, качества сигнала и внешнего мониторинга.
•Работа с аппаратными интерфейсами тревог, включая функцию отключения звука, проверку уровня тревоги и телеметрию тревог.
•Создание надежных механизмов обработки сбоев и восстановления.
Запуск, самотестирование и контроль
•Разработка проверок при включении питания, охватывающих логирование, совместимость аппаратного обеспечения, проверки GPU и системные самотесты.
•Реализация безопасных состояний и управления сбоями.
•Интеграция механизмов сторожевого таймера и системного контроля.
•Поддержка обнаружения и восстановления прерванных сессий.
•Разработка функций логирования, аудита логов и ротации логов.
•Работа с телеметрией ОС, включая мониторинг кнопки питания и состояния хранилища.
Сохранение и представление данных пациента
•Разработка интерфейсов хранения с поддержкой атомарных и проверяемых записей.
•Управление чтением, удалением и списком сессий по фиксированным разделам хранения.
•Создание функций упаковки, очередности, сброса, хранения и извлечения данных пациента.
•Поддержка заполнения данных и представления исторических данных.
•Разработка версионированных интерфейсов между бэкенд-данными и графическим интерфейсом пользователя.
Жизненный цикл сессии, выключение питания и сервис
•Управление жизненным циклом датчиков пациента и сессий.
•Поддержка метаданных сессии, восстановления и корректного завершения работы.
•Разработка обработки кнопки питания и контролируемого выключения.
•Поддержка функции экспорта данных через USB.
•Работа с сервисными инструментами и обработчиками обслуживания устройств.
•Поддержка обновлений программного обеспечения, подтверждения и отката.
•Реализация извлечения логов и аудита логов.
Необходимые навыки и опыт
•Сильный опыт разработки современных приложений на C++17 для встроенного Linux.
•Глубокое понимание RAII, типов с фиксированной шириной, std::atomic, многопоточности и безблоковых или ограниченных очередей.
•Опыт разработки программного обеспечения, где критически важны детерминированное поведение и надежность.
•Опыт работы в средах без выделения памяти или с низким выделением, включая предварительно выделенную память и контейнеры с фиксированной емкостью.
•Опыт работы с архитектурой ports-and-adapters / hexagonal, интерфейсами и внедрением зависимостей.
•Сильный опыт интеграции с системами Linux, включая сервисы, сторожевые таймеры и системное управление сбоями.
•Опыт работы с IPC и технологиями сериализации, такими как FlatBuffers, Unix-доменные сокеты или именованные каналы.
•Опыт работы с CMake, автоматизированным тестированием и CI/CD пайплайнами.
•Опыт кросс-компиляции, желательно для платформ aarch64.
•Сильный опыт модульного тестирования, покрытия кода и контроля качества.
•Комфортная работа в рамках формальных инженерных процессов, включая рецензирование коллег, отслеживаемые изменения и документированные проектные решения.
•Опыт работы с программным обеспечением, критичным для безопасности, миссии или строго регулируемым.
Желательные навыки и опыт
•Опыт разработки медицинских устройств или других систем, критичных для безопасности.
•Знание стандартов IEC 62304, ISO 13485 или аналогичных стандартов разработки регулируемого программного обеспечения.
•Опыт работы с медицинскими системами сигнализации или другими системами управления тревогами и сбоями.
•Понимание стандартов безопасности IEC 60601-1-8 или эквивалентных.
•Опыт работы с контроллерами на основе конечных автоматов и системами управления сбоями.
•Опыт работы с NVIDIA Jetson, CUDA или ускоренной обработкой на GPU.
•Опыт работы с Yocto и пакетами поддержки плат Embedded Linux.
•Опыт работы с systemd, sd_notify, D-Bus и journald.
•Опыт работы с OpenSSL, TensorRT или аналогичными внешними технологиями.
•Опыт использования Docker для сред разработки.
•Опыт работы с GoogleTest, тестированием на основе поведения или Gherkin.
•Опыт программирования на Python для инструментов и скриптов развертывания.
•Опыт участия в мероприятиях по анализу видов и последствий отказов (FMEA) программного обеспечения и реализации мер контроля рисков.
Инженерная среда
Вы будете работать с технологиями и практиками, включая:
•C++17
•Embedded Linux
•NVIDIA Jetson / aarch64
•Yocto
•CMake & Conan
•Docker
•GoogleTest
•FlatBuffers
•Boost.Asio
•D-Bus
•systemd / sd_notify
•Unix-доменные сокеты
•NVMe хранилище
•SonarQube
•MISRA C++ 2023
•Doxygen
•CI/CD и тестирование на целевом оборудовании

Хватит откликаться.
Получите рекомендацию.

$10 стартовых кредитов

Всего 60 секунд, полностью на автопилоте — AI-агенты Eraldt читают ваше резюме, определяют подходящие роли, находят живые вакансии и людей, которые могут вас порекомендовать, пишут им личные письма и добиваются рекомендации.

Это не отклик на вакансию: резюме не уходит в компанию, а рекомендацию именно по этой роли мы не обещаем.

Посмотрите, кто ещё получает интервью на автопилоте