JOB OFFERS

Position Title: MID-SENIOR 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 di dati
  • Definizione e implementazione di unità software e test di integrazione
  • Preparare la 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
  • Partecipare a riunioni tecniche periodiche

ESPERIENZA E COMPETENZE TECNICHE RICHIESTE

  • Un master o una laurea equivalente in ingegneria informatica o software con punteggio elevato.
  • Esperienza di almeno tre anni come ingegnere informatico.
  • Conoscenza ed esperienza nella programmazione orientata agli oggetti e funzionale, in particolare con il linguaggio di programmazione C++ o Python.
  • Capacità di sviluppare software distribuito utilizzando framework che sfruttano sistemi multi-threading e di messaggistica.
  • 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 CMake.
  • Conoscenza di database relazionali (es. PostgreSQL) e non relazionali (es. MongoDB, InfluxDB).
  • Esperienza nell’adozione di strumenti di analisi della qualità del software (es. Sonar Qube).
  • Capacità di utilizzare strumenti di debug, eseguire la risoluzione dei problemi e profilare un’applicazione in esecuzione in un ambiente distribuito.
  • 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
  • Autonomia ed efficienza operativa
  • Promozione della cooperazione
  • Gestione delle relazioni
  • Miglioramento continuo

REQUISITI AGGIUNTIVI

Non sono obbligatori ma i candidati conoscendoli saranno meglio valutati:

  • Conoscenza del repository di gestione degli artefatti software
  • Conoscenza del sistema di orchestrazione dei contenitori Kubernetes
  • Conoscenza del linguaggio di programmazione Java.
  • L’esperienza nelle metodologie Agile costituirà un ulteriore vantaggio