JOB OFFERS
Position Title: SOFTWARE ENGINEER
ALTEC è coinvolta in diversi programmi scientifici e tecnologici nel settore aerospaziale in cui il segmento di terra è una parte rilevante per eseguire operazioni di missione di infrastrutture orbitanti, sistemi di esplorazione planetaria e sistemi orbitanti con capacità di rientro. ALTEC ha il know-how e fornisce le competenze per progettare, implementare e gestire l’intero segmento di terra o parte di esso costituito da stazioni di terra, reti di comunicazione, centri di controllo di missione, sistemi di controllo di missione e sistemi di controllo P/L.
Il gruppo Mission Control System e Simulazione ospita ingegneri informatici, ingegneri software e 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, implementazione e test del simulatore operativo necessario a supportare la validazione del segmento di terra, l’addestramento del team operativo e la preparazione delle operazioni di missione.
MANSIONI
- Farai parte del team che è responsabile di tutti gli aspetti ingegneristici della definizione, implementazione, integrazione, test e manutenzione dei sistemi dati software relativi alle attività nominali del Mission Control Center sotto la responsabilità di ALTEC.
- Lavorerai in stretta collaborazione con altri ingegneri del software e ingegneri delle infrastrutture durante le fasi del progetto.
- Dovrai impegnarti per l’innovazione e l’eccellenza nell’ingegneria del software nel settore aerospaziale, concentrandoti sulle funzioni di pianificazione della missione.
Tra le principali mansioni ti occuperai di:
- Analisi, revisione e definizione dei requisiti software.
- Analisi, revisione e definizione del design del software.
- Codifica e implementazione di sistemi software di pianificazione della missione, inclusa la definizione ed esecuzione dei test di unità e sistemi software.
- Preparazione della documentazione relativa al sistema (specifiche, progettazione, note tecniche, manuali utente, procedure di test e rapporti).
- Utilizzo di strumenti di debug, esecuzione della risoluzione dei problemi e profilazione di un’applicazione in esecuzione in un ambiente distribuito
- Perfezionare, estendere e migliorare le attuali applicazioni aziendali.
- Partecipazione a riunioni tecniche periodiche
ESPERIENZA E COMPETENZE TECNICHE RICHIESTE
- Laurea magistrale o equivalente in ingegneria del software o informatica con punteggio elevato.
- Conoscenza ed esperienza nella programmazione orientata agli oggetti e funzionale, in particolare con il linguaggio di programmazione Java.
- Conoscenza ed esperienza con il sistema operativo Linux e linguaggi di scripting.
- Conoscenza ed esperienza nell’uso di GIT (o equivalente) come strumento del sistema di controllo della versione del software
- Conoscenza ed esperienza con lo strumento di gestione dei progetti software MAVEN. Conoscenza del meccanismo della coda di messaggi per gestire il flusso e lo streaming di dati (ad esempio Apache Kafka, ZMQ, ActiveMQ). Conoscenza ed esperienza minima con database relazionali (es. PostgreSQL) e non relazionali (es. MongoDB, InfluxDB). Esperienza nella pianificazione di problemi e nell’ottimizzazione della gestione dei vincoli delle risorse. Conoscenza delle tecnologie container (es. Docker, Podman) Conoscenza di base di UML per il processo di ingegneria del software. Conoscenza e familiarità con Extensible Markup Language (XML) e schemi.
SOFT SKILLS
- Problem Solving
- Orientamento al risultato
- Efficienza operativa
- Promozione della cooperazione
- Gestione delle relazioni
- Miglioramento continuo
REQUISITI AGGIUNTIVI
Non sono obbligatori ma i candidati conoscendoli saranno meglio valutati:
- Conoscenza del solutore OptaPlanner.
- Conoscenza di SonarQube come strumenti di qualità del software
- Conoscenza di Nexus come strumento di gestione degli artefatti software
- Conoscenza del linguaggio di programmazione C++ e NodeJS.
- L’esperienza nelle metodologie Agile costituirà un ulteriore vantaggio