AND Digital
AND Digital
AND Digital è una società di consulenza tecnologica che aiuta le organizzazioni a rafforzare le proprie capacità digitali e a realizzare prodotti digitali migliori. Le sue attività comprendono consulenza, ingegneria del software, sviluppo di applicazioni mobili, progettazione dell’esperienza e soluzioni per i dati, a supporto di clienti nel Regno Unito, in Europa e negli Stati Uniti. Attraverso il suo approccio «Guidare, Costruire, Attrezzare», AND Digital combina la realizzazione pratica con lo sviluppo delle competenze, operando tramite club affiatati che affiancano relazioni dedicate con i clienti all’accesso a una più ampia expertise tecnica.

Sviluppatore C++ a contratto - Ibrido a Londra

Ruolo di sviluppatore C++ a contratto presso AND Digital, per realizzare software Linux embedded affidabile destinato a tecnologie mediche critiche per la sicurezza. Il lavoro comprende componenti applicativi in C++17, allarmi, persistenza, supervisione e gestione dei guasti.

Descrizione

  • Sviluppare condizioni di allarme tecnico a partire dalla telemetria dell’hardware e del sistema operativo
  • Implementare allarmi per sensori dei pazienti, qualità del segnale e monitoraggio esterno
  • Integrare le interfacce di allarme hardware, inclusi controlli di silenziamento, convalida del livello di allarme e telemetria
  • Creare meccanismi di gestione e recupero dai guasti
  • Sviluppare autotest di accensione, compatibilità hardware, GPU e sistema
  • Implementare stati fail-safe, gestione dei guasti, watchdog e supervisione del sistema
  • Supportare il rilevamento e il recupero delle sessioni interrotte
  • Sviluppare logging applicativo, audit logging e rotazione dei log
  • Creare interfacce di archiviazione con scritture atomiche e checksum
  • Gestire lettura, eliminazione ed elenco delle sessioni nelle partizioni di archiviazione fisse
  • Sviluppare impacchettamento, accodamento, svuotamento, conservazione e recupero dei dati dei pazienti
  • Supportare il recupero retroattivo dei dati e la presentazione dei dati storici
  • Creare interfacce versionate tra i dati del backend e l’interfaccia grafica
  • Gestire i cicli di vita dei sensori dei pazienti e delle sessioni
  • Supportare i metadati delle sessioni, il recupero e l’arresto ordinato
  • Sviluppare la gestione del pulsante di accensione e procedure di spegnimento controllato
  • Supportare l’esportazione dei dati tramite USB, gli strumenti di assistenza e i gestori di servizio del dispositivo
  • Supportare aggiornamenti software, conferma e procedure di rollback
  • Implementare l’estrazione dei log e l’audit logging
  • Gestire un’area applicativa autonoma, dalla progettazione al codice integrato, testato e documentato
  • Collaborare con l’architetto software e gli ingegneri che lavorano sui componenti adiacenti
  • Contribuire a un prodotto di tecnologia medica altamente regolamentato e critico per la sicurezza

Requisiti

  • Solida esperienza nello sviluppo di applicazioni moderne in C++17 su Linux embedded
  • Ottima conoscenza di RAII, tipi a larghezza fissa, std::atomic, multithreading e code lock-free o a capacità limitata
  • Esperienza nella realizzazione di software in cui comportamento deterministico e affidabilità sono fondamentali
  • Esperienza con ambienti runtime senza allocazioni o a bassa allocazione, inclusi memoria preallocata e container a capacità fissa
  • Esperienza con architetture ports-and-adapters o esagonali, interfacce e dependency injection
  • Solida esperienza nell’integrazione di sistemi Linux, inclusi servizi, watchdog e gestione dei guasti a livello di sistema
  • Esperienza con tecnologie IPC e di serializzazione come FlatBuffers, socket di dominio Unix o named pipe
  • Esperienza con CMake, test automatizzati e pipeline CI/CD
  • Esperienza con la compilazione incrociata, idealmente per piattaforme aarch64
  • Solida esperienza con test unitari, copertura del codice e quality gate
  • Disponibilità a lavorare secondo processi formali di ingegneria, incluse revisioni tra pari, modifiche tracciabili e decisioni progettuali documentate
  • Esperienza nello sviluppo di software critico per la sicurezza, mission-critical o altamente regolamentato
  • Esperienza nello sviluppo di dispositivi medici o altri sistemi critici per la sicurezza (preferibile)
  • Esperienza in ambienti regolamentati o nelle scienze della vita (preferibile)
  • Elevata competenza nell’IA (preferibile)
  • Conoscenza di IEC 62304, ISO 13485 o standard comparabili per lo sviluppo di software regolamentato (preferibile)
  • Esperienza con sistemi di allarme medicali o altri sistemi di allarme e gestione dei guasti (preferibile)
  • Conoscenza di IEC 60601-1-8 o di uno standard di sicurezza equivalente (preferibile)
  • Esperienza con supervisori basati su macchine a stati e sistemi di gestione dei guasti (preferibile)
  • Esperienza con NVIDIA Jetson, CUDA o elaborazione accelerata dalla GPU (preferibile)
  • Esperienza con Yocto e board support package per Linux embedded (preferibile)
  • Esperienza con systemd, sd_notify, D-Bus e journald (preferibile)
  • Esperienza con OpenSSL, TensorRT o tecnologie esterne simili (preferibile)
  • Esperienza nell’uso di Docker per ambienti di sviluppo (preferibile)
  • Esperienza con GoogleTest, test comportamentali o Gherkin (preferibile)
  • Esperienza con Python per strumenti e script di deployment (preferibile)
  • Esperienza nella partecipazione ad attività di FMEA software e nell’implementazione di controlli del rischio (preferibile)

Benefit

  • Datore di lavoro che garantisce pari opportunità e si impegna a creare un ambiente di lavoro inclusivo
  • Sono disponibili accomodamenti ragionevoli durante tutto il processo di selezione, quando necessari