Embedded Developer


Siamo un’azienda campana e un centro di ricerca ICT tra i più noti in Italia, che da 20 anni promuove l’innovazione tecnologica in diversi settori (Sanità, Manifatturiero, Aerospazio, Ferroviario e Smart-Cities). Realizziamo progetti di ricerca, prototipazione, sviluppo pre-competitivo e industrializzazione ad alta tecnologia (Artificial Intelligence, Machine Learning, Industry 4.0, Internet of Things, Augmented e Virtual Reality, Digital Healthcare). Il nostro punto di forza è un ambiente giovane e collaborativo che mette al centro le competenze, l’unicità e l’inclusione di ciascuna persona.

Partiamo da un’idea, la realizziamo e la immettiamo sul mercato. 


In questo contesto e con un piano di crescita in forte espansione, cerchiamo EMBEDDED DEVELOPER da inserire nel dipartimento Area sistemi IT.


Panoramica del ruolo

Come Embedded Developer, sarai responsabile della progettazione, sviluppo e ottimizzazione di sistemi embedded per prodotti che richiedono elaborazione in tempo reale, interazione diretta con l'hardware e gestione efficiente delle risorse. Lavorerai a stretto contatto con ingegneri hardware, sviluppatori firmware e il team di prodotto per creare soluzioni software integrate in microcontrollori e piattaforme embedded. Il tuo lavoro avrà un impatto diretto sulle prestazioni, sulla stabilità e sull'affidabilità dei prodotti che consegniamo.

Responsabilità principali
  • Sviluppo di sistemi embedded: Progettare, sviluppare e implementare applicazioni software embedded per sistemi basati su microcontrollori (es. ARM, PIC, AVR, STM32).
  • Sviluppo firmware: Scrivere, fare il debug e ottimizzare firmware a basso livello per interagire con componenti hardware come sensori, attuatori, interfacce di comunicazione e periferiche.
  • Sistemi real-time: Implementare soluzioni software per sistemi in tempo reale, garantendo la riduzione della latenza e il rispetto dei vincoli temporali critici.
  • Interazione hardware-software: Sviluppare software che interagisce direttamente con i componenti hardware a livello di registro e lavorare con strumenti di debug hardware come oscilloscopi e analizzatori logici.
  • Ottimizzazione del software: Garantire che il software embedded sia efficiente in termini di utilizzo della memoria, potenza di elaborazione e consumo energetico. Ottimizzare il software per prestazioni, stabilità e vincoli di risorse.
  • Testing e debug: Sviluppare ed eseguire piani di test per i sistemi embedded, inclusi test unitari, test di integrazione e test hardware-in-the-loop (HIL). Debug e risoluzione di problemi hardware e software utilizzando strumenti come oscilloscopi, analizzatori logici e debugger.
  • Documentazione: Documentare chiaramente il processo di progettazione, sviluppo e testing, assicurandosi che il codice sia manutenibile e comprensibile per futuri sviluppatori e debugging.
  • Collaborazione: Lavorare in stretta collaborazione con team trasversali, inclusi ingegneri hardware, architetti di sistema e QA, per garantire l'integrazione e il corretto funzionamento dei sistemi embedded.
  • Aggiornamenti e manutenzione del firmware: Gestire le versioni del firmware, gli aggiornamenti e le patch, assicurandosi che i sistemi embedded in produzione continuino a funzionare in modo affidabile.
Competenze richieste
  • Programmazione sistemi embedded: Conoscenza approfondita di linguaggi di programmazione Java8, C e C++ per sistemi embedded, con esperienza nella programmazione a basso livello e nell'interazione hardware-software.
  • Esperienza con microcontrollori: Esperienza nello sviluppo e programmazione di applicazioni per microcontrollori (ARM Cortex-M, AVR, PIC, STM32 o simili).
  • Sistemi real-time (RTOS): Conoscenza di sistemi operativi real-time (ad esempio FreeRTOS, embOS) e comprensione della gestione delle attività, degli interrupt e dei vincoli temporali.
  • Interazione hardware-software: Capacità di progettare software che interagisce direttamente con l'hardware a livello di registro e conoscenza degli strumenti di debug hardware come oscilloscopi e analizzatori logici.
  • Protocolli di comunicazione: Esperienza con protocolli di comunicazione come I2C, SPI, UART, CAN, Ethernet, e Modbus per interfacciarsi con sensori e dispositivi embedded.
  • Strumenti di sviluppo embedded: Esperienza con strumenti di sviluppo embedded, tra cui IDE (ad esempio Keil, IAR Embedded Workbench, Eclipse, Netbeans), compilatori, debugger e versionamento del codice (ad esempio Git).
  • Debugging a basso livello: Capacità di fare debugging a basso livello utilizzando strumenti hardware e software come JTAG, SWD, GDB e interfacce seriali.
  • Testing software e validazione: Esperienza con testing dei sistemi embedded, inclusi test unitari, test di integrazione e test hardware-in-the-loop (HIL).
  • Versionamento del codice: Conoscenza di sistemi di versionamento del codice come Git per la gestione del codice e la collaborazione.
Soft skill 
  • Attenzione ai dettagli: Elevata attenzione ai dettagli e focus sulla produzione di software di alta qualità.
  • Collaborazione in team: Ottime capacità di comunicazione e di lavoro in team multidisciplinari.
  • Adattabilità: Capacità di adattarsi rapidamente a nuove tecnologie, strumenti e sfide in un ambiente di sviluppo dinamico.
  • Apprendimento continuo: Passione per l'aggiornamento continuo e la sperimentazione con le ultime tecnologie e tendenze nei sistemi embedded.
Requisiti preferenziali
  • Conoscenza avanzata di RTOS: Esperienza con sistemi operativi real-time avanzati e sistemi multi-thread.
  • Protocolli di comunicazione wireless: Esperienza con protocolli wireless come Bluetooth, Zigbee, Wi-Fi o LoRa.
  • Sicurezza e crittografia: Conoscenza del secure boot, della crittografia e dei protocolli di comunicazione sicura per sistemi embedded.
  • Embedded Linux: Esperienza con sistemi embedded Linux, inclusi driver di dispositivo, moduli del kernel e sviluppo basato su Yocto.
  • Dispositivi IoT: Conoscenza delle piattaforme IoT e integrazione cloud, inclusi protocolli come MQTT, CoAP o simili.
  • Linguaggi di scripting: Familiarità con linguaggi di scripting come Python o Bash per l'automazione e il testing.
  • Testing automatizzato: Esperienza con framework di testing automatizzati per sistemi embedded.
Info aggiuntive

Sede di lavoro: Aversa, CE - possibilità di smart working

Orario di lavoro: Full Time

Siamo un’azienda impegnata per le pari opportunità, tutti i candidati saranno considerati per il ruolo in esame indipendentemente dal sesso, razza, religione, paese d’origine, disabilità, orientamento sessuale, età o qualsiasi altra caratteristica tutelata dalla legge. L’annuncio è rivolto ad ambo i sessi (D.lgs n. 198/2006) e nel rispetto di quanto disposto dall’art. 10 del D.Lgs n. 276/2003.