AND Digital
AND Digital
AND Digital es una firma de consultoría tecnológica que ayuda a las organizaciones a fortalecer sus capacidades digitales y a crear mejores productos digitales. Su trabajo abarca la consultoría, la ingeniería de software, el desarrollo de aplicaciones móviles, el diseño de experiencias y las soluciones de datos, con clientes en el Reino Unido, Europa y Estados Unidos. Mediante su enfoque «Guiar, Crear y Capacitar», AND Digital combina la ejecución práctica con el desarrollo de capacidades, trabajando a través de clubes estrechamente vinculados que unen relaciones dedicadas con los clientes y acceso a una experiencia técnica más amplia.

Desarrollador C++ por contrato - Híbrido en Londres

Puesto de desarrollador C++ por contrato en AND Digital para crear software fiable de Linux embebido destinado a tecnología médica crítica para la seguridad. El trabajo abarca componentes de aplicaciones en C++17, alarmas, persistencia, supervisión y gestión de fallos.

Descripción

  • Desarrollar condiciones de alarma técnica a partir de la telemetría del hardware y del sistema operativo
  • Implementar alarmas para sensores de pacientes, calidad de señal y monitorización externa
  • Integrar interfaces de alarma del hardware, incluidos controles de silencio, validación del nivel de alarma y telemetría
  • Crear mecanismos de gestión y recuperación de fallos
  • Desarrollar pruebas de encendido, compatibilidad de hardware, GPU y autodiagnóstico del sistema
  • Implementar estados a prueba de fallos, gestión de fallos, vigilantes y supervisión del sistema
  • Admitir la detección y recuperación de sesiones interrumpidas
  • Desarrollar registros de aplicación, registros de auditoría y rotación de registros
  • Crear interfaces de almacenamiento con escrituras atómicas y con suma de comprobación
  • Gestionar la lectura, eliminación y enumeración de sesiones en particiones de almacenamiento fijas
  • Desarrollar el empaquetado, encolado, volcado, retención y recuperación de datos de pacientes
  • Admitir el relleno de datos y la presentación de datos históricos
  • Crear interfaces versionadas entre los datos del backend y la interfaz gráfica
  • Gestionar los ciclos de vida de los sensores de pacientes y de las sesiones
  • Admitir metadatos de sesión, recuperación y apagado ordenado
  • Desarrollar la gestión del botón de encendido y procesos controlados de apagado
  • Admitir la exportación de datos por USB, herramientas de servicio y controladores de servicio del dispositivo
  • Admitir actualizaciones de software, confirmación y procedimientos de reversión
  • Implementar la extracción de registros y el registro de auditoría
  • Ser responsable de un área de aplicación autónoma, desde el diseño hasta el código integrado, probado y documentado
  • Colaborar con el arquitecto de software y con los ingenieros que trabajan en componentes adyacentes
  • Contribuir a un producto de tecnología médica altamente regulado y crítico para la seguridad

Requisitos

  • Experiencia sólida desarrollando aplicaciones modernas en C++17 sobre Linux embebido
  • Conocimientos sólidos de RAII, tipos de ancho fijo, std::atomic, programación multihilo y colas sin bloqueos o acotadas
  • Experiencia creando software en el que el comportamiento determinista y la fiabilidad sean fundamentales
  • Experiencia con entornos de ejecución sin asignaciones o con pocas asignaciones, incluida la memoria preasignada y los contenedores de capacidad fija
  • Experiencia con arquitecturas de puertos y adaptadores o hexagonales, interfaces e inyección de dependencias
  • Sólida experiencia en integración de sistemas Linux, incluidos servicios, vigilantes y gestión de fallos a nivel de sistema
  • Experiencia con tecnologías de IPC y serialización como FlatBuffers, sockets de dominio Unix o tuberías con nombre
  • Experiencia con CMake, pruebas automatizadas y pipelines de CI/CD
  • Experiencia con compilación cruzada, idealmente para plataformas aarch64
  • Sólida experiencia en pruebas unitarias, cobertura de código y controles de calidad
  • Comodidad trabajando con procesos formales de ingeniería, incluidas revisiones por pares, cambios trazables y decisiones de diseño documentadas
  • Experiencia desarrollando software crítico para la seguridad, para misiones críticas o altamente regulado
  • Experiencia desarrollando dispositivos médicos u otros sistemas críticos para la seguridad (deseable)
  • Experiencia trabajando en entornos regulados o en ciencias de la vida (deseable)
  • Alta competencia en IA (deseable)
  • Conocimientos de IEC 62304, ISO 13485 o normas comparables de desarrollo de software regulado (deseable)
  • Experiencia con sistemas de alarma médica u otros sistemas de alarma y gestión de fallos (deseable)
  • Comprensión de IEC 60601-1-8 o de una norma de seguridad equivalente (deseable)
  • Experiencia con supervisores basados en máquinas de estados y sistemas de gestión de fallos (deseable)
  • Experiencia con NVIDIA Jetson, CUDA o procesamiento acelerado por GPU (deseable)
  • Experiencia con Yocto y paquetes de soporte de placas Linux embebido (deseable)
  • Experiencia con systemd, sd_notify, D-Bus y journald (deseable)
  • Experiencia con OpenSSL, TensorRT u otras tecnologías externas similares (deseable)
  • Experiencia utilizando Docker para entornos de desarrollo (deseable)
  • Experiencia con GoogleTest, pruebas basadas en comportamiento o Gherkin (deseable)
  • Experiencia con Python para herramientas y scripts de despliegue (deseable)
  • Experiencia contribuyendo a actividades de FMEA de software e implementando controles de riesgo (deseable)

Beneficios

  • Empleador que ofrece igualdad de oportunidades y está comprometido con un entorno laboral inclusivo
  • Se ofrecen ajustes razonables durante todo el proceso de selección cuando sean necesarios