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.