
1 001 – 5 000 Сотрудники
Спонсор визы квалифицированного работникаSaaSКонсалтингПрограммная инженерия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 программного обеспечения и реализации мер управления рисками будет преимуществом
Преимущества
- Работодатель придерживается принципов равных возможностей и создает инклюзивную рабочую среду
- При необходимости на протяжении всего процесса найма предоставляются разумные условия и адаптации