
1001 – 5000 Empleados
Patrocinador de visa para trabajadores cualificadosConsultoríaIngeniería de softwareSaaSAND 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