JOB OFFERS
Mid-Senior Software Engineer (Mission Control)
Il gruppo Sistema di Controllo Missione e Simulazione ospita gli ingegneri informatici, gli ingegneri del software e gli ingegneri aerospaziali che supervisionano il segmento di terra dalla definizione alla fine delle operazioni; sviluppa e integra i sistemi di controllo della missione e i sistemi di controllo P/L, implementa le reti di comunicazione di terra, interfaccia le stazioni di terra e prepara i centri di controllo della missione per eseguire le operazioni di missione. Inoltre, è coinvolto nella definizione, nell’implementazione e nel test del simulatore operativo necessario per supportare la convalida del segmento di terra, l’addestramento del team operativo e la preparazione alle operazioni di missione.
Funzioni
Farai parte del team che si occupa di tutti gli aspetti ingegneristici della definizione, dell’implementazione, dell’integrazione, del test e della manutenzione dei sistemi di dati software relativi alle attività nominali del Centro di Controllo Missione sotto la responsabilità di ALTEC.
Lavorerai in stretta collaborazione con altri ingegneri del software, ingegneri dei dati, operatori di missione e ingegneri dell’infrastruttura durante le fasi del progetto.
Dovrai impegnarti per l’innovazione e l’eccellenza nell’ingegneria del software nel settore aerospaziale, con particolare attenzione alle funzioni di pianificazione delle missioni.
Tra le principali mansioni, sarai coinvolto in:
- Analisi, revisione e definizione dei requisiti del software.
- Analisi, revisione e definizione del design del software.
- Codifica e implementazione di software per sistemi di dati.
- Definire e implementare test unitari e di integrazione del software.
- Preparare la documentazione relativa al sistema (specifiche SW, progettazione SW, note tecniche, manuali utente, procedure di test SW e rapporti).
- Eseguire la risoluzione dei problemi del software e la correzione dei bug.
- Partecipa a riunioni tecniche periodiche
ESPERIENZA E COMPETENZE TECNICHE RICHIESTE
- Un MSc o una laurea equivalente in ingegneria del software o informatica con un punteggio elevato.
- Almeno tre anni di esperienza come Software Engineer.
- Esperienza con la programmazione orientata agli oggetti, in particolare con i linguaggi di programmazione Java o C++.
- Familiarità con UML per il processo di ingegneria del software.
- Esperienza nell’utilizzo del sistema di controllo della versione del software GIT
- Esperienza con gli strumenti di automazione del software (ad esempio Maven/CMake).
- Esperienza con le tecnologie dei container (ad esempio Docker, Podman) e la distribuzione di microservizi.
- Familiarità con il sistema operativo Linux e con i linguaggi di scripting.
- Familiarità con il meccanismo CI/CD e la relativa gestione.
- Familiarità con i rapporti di analisi della qualità del software.
- Capacità di sviluppare software distribuito utilizzando framework che sfruttano il multi-threading e i sistemi di messaggistica.
- Conoscenza di database relazionali (ad esempio PostgreSQL) e non relazionali (ad esempio MongoDB, InfluxDB).
- Capacità di utilizzare gli strumenti di debug, di eseguire la risoluzione dei problemi e la profilazione di un’applicazione in esecuzione in un ambiente distribuito.
SOFT SKILLS
- Problem Solving
- Risultato orientato
- Autonomia ed efficienza operativa
- Promuovere la cooperazione
- Gestione delle relazioni
- Miglioramento continuo
ATTIVITÀ AGGIUNTIVE (non obbligatorie, considerate un plus)
- L’esperienza nelle metodologie Agile costituirà un ulteriore vantaggio.
- Conoscenza dello standard ECSS ECSS-E-ST-70-41C Telemetria e utilizzo dei pacchetti di telecomunicazione
- Esperienza con gli ambienti di distribuzione Kubernetes
- Conoscenza e familiarità con i linguaggi YAML.
- Conoscenza del repository per la gestione degli artefatti software
- Familiarità con framework come Quarkus o SpringBoot per sviluppare microservizi.
- Conoscenza dello sviluppo di applicazioni con il motore Unity VR.
