AND Digital
AND Digital
AND Digital — консалтинговая технологическая компания, которая помогает организациям укреплять цифровые компетенции и создавать более качественные цифровые продукты. Компания работает в сферах консалтинга, разработки программного обеспечения, создания мобильных приложений, проектирования пользовательского опыта и решений для работы с данными, поддерживая клиентов в Великобритании, Европе и США. В рамках подхода «Направлять, создавать, оснащать» AND Digital сочетает практическую реализацию проектов с развитием компетенций, работая через сплочённые клубы, которые объединяют персональное взаимодействие с клиентами и доступ к более широкой технической экспертизе.

Контрактный разработчик C++ — гибридный формат, Лондон

Контрактная позиция разработчика C++ в AND Digital: разработка надежного встроенного ПО на Linux для критически важной медицинской технологии. Работа включает компоненты приложений на C++17, аварийные сигналы, постоянное хранение данных, надзор и управление неисправностями.

Описание

  • Разрабатывать условия технических аварийных сигналов на основе телеметрии оборудования и операционной системы
  • Реализовывать аварийные сигналы для датчиков пациента, качества сигнала и внешнего мониторинга
  • Интегрировать аппаратные интерфейсы аварийных сигналов, включая отключение звука, проверку уровня сигнала и телеметрию
  • Создавать механизмы обработки неисправностей и восстановления
  • Разрабатывать самотестирование при включении питания, проверку совместимости оборудования, GPU и системы
  • Реализовывать безопасные состояния, управление неисправностями, сторожевые таймеры и надзор за системой
  • Поддерживать обнаружение и восстановление после прерванных сеансов
  • Разрабатывать журналы приложения и аудита, а также ротацию журналов
  • Создавать интерфейсы хранения с атомарной записью и записью с контрольными суммами
  • Управлять чтением, удалением и отображением списка сеансов в фиксированных разделах хранения
  • Разрабатывать упаковку, постановку в очередь, выгрузку, хранение и получение данных пациента
  • Поддерживать дозаполнение данных и представление исторических данных
  • Создавать версионируемые интерфейсы между данными серверной части и графическим интерфейсом
  • Управлять жизненным циклом датчиков пациента и сеансов
  • Поддерживать метаданные сеансов, восстановление и корректное завершение работы
  • Разрабатывать обработку кнопки питания и процедуры контролируемого отключения питания
  • Поддерживать экспорт данных через USB, сервисные инструменты и обработчики обслуживания устройства
  • Поддерживать обновление программного обеспечения, подтверждение и процедуры отката
  • Реализовывать извлечение журналов и аудитное журналирование
  • Отвечать за самостоятельную область приложения — от проектирования до объединения, тестирования и документирования кода
  • Сотрудничать с архитектором программного обеспечения и инженерами, работающими над смежными компонентами
  • Участвовать в создании строго регулируемого медицинского продукта с критически важными требованиями безопасности

Требования

  • Глубокий опыт разработки современных приложений на C++17 для встроенного Linux
  • Глубокое знание RAII, типов фиксированной ширины, std::atomic, многопоточности, а также блокировочных или ограниченных очередей без блокировок
  • Опыт создания программного обеспечения, где критически важны детерминированность поведения и надежность
  • Опыт работы со средами выполнения без выделения памяти или с минимальным выделением, включая предварительно выделенную память и контейнеры фиксированной емкости
  • Опыт работы с архитектурой портов и адаптеров или гексагональной архитектурой, интерфейсами и внедрением зависимостей
  • Глубокий опыт интеграции систем Linux, включая службы, сторожевые таймеры и управление системными неисправностями
  • Опыт работы с IPC и технологиями сериализации, такими как FlatBuffers, Unix-сокеты или именованные каналы
  • Опыт работы с CMake, автоматизированным тестированием и конвейерами CI/CD
  • Опыт кросс-компиляции, желательно для платформ aarch64
  • Глубокие знания модульного тестирования, покрытия кода и контрольных проверок качества
  • Готовность работать в рамках формальных инженерных процессов, включая экспертную проверку кода, отслеживаемые изменения и документированные проектные решения
  • Опыт разработки программного обеспечения для критически важных с точки зрения безопасности, миссионно-критических или строго регулируемых систем
  • Опыт разработки медицинских устройств или других критически важных с точки зрения безопасности систем будет преимуществом
  • Опыт работы в регулируемых средах или сфере наук о жизни будет преимуществом
  • Высокий уровень владения ИИ будет преимуществом
  • Знание IEC 62304, ISO 13485 или сопоставимых стандартов разработки регулируемого программного обеспечения будет преимуществом
  • Опыт работы с медицинскими системами аварийных сигналов или другими системами сигнализации и управления неисправностями будет преимуществом
  • Понимание IEC 60601-1-8 или эквивалентного стандарта безопасности будет преимуществом
  • Опыт работы с супервизорами на основе конечных автоматов и системами управления неисправностями будет преимуществом
  • Опыт работы с NVIDIA Jetson, CUDA или ускоренной с помощью GPU обработкой будет преимуществом
  • Опыт работы с Yocto и пакетами поддержки плат для встроенного Linux будет преимуществом
  • Опыт работы с systemd, sd_notify, D-Bus и journald будет преимуществом
  • Опыт работы с OpenSSL, TensorRT или аналогичными внешними технологиями будет преимуществом
  • Опыт использования Docker для сред разработки будет преимуществом
  • Опыт работы с GoogleTest, поведенческим тестированием или Gherkin будет преимуществом
  • Опыт работы с Python для инструментов и скриптов развертывания будет преимуществом
  • Опыт участия в мероприятиях FMEA программного обеспечения и реализации мер управления рисками будет преимуществом

Преимущества

  • Работодатель придерживается принципов равных возможностей и создает инклюзивную рабочую среду
  • При необходимости на протяжении всего процесса найма предоставляются разумные условия и адаптации