Position Title: SENIOR SOFTWARE ENGINEER
ALTEC is involved in several Science and Technological Programme in the aerospace domain where data systems are software components that together with infrastructure and communication constitutes ground segment of space mission. Data systems are essential are they are reliable and performant software needed to provide ground segment services and execute operations. The Data Processing System and Scientific and Technological Application group host the engineers, physicists and mathematicians who oversee the space mission data system from definition to end of operations; it develops the data systems for the missions and support execution of science operations on ground; and it archives and curates their data during operations and beyond. Moreover, it is involved in the post-mission data exploitation in order to create application devoted to maximize the information value extracted from collected data.
You will be part of the team that is in charge of all engineering aspects of the development, implementation and maintenance of software data systems under the ALTEC responsibility.
You will work in close collaboration with the data engineers, data scientists, mission operators and infrastructure engineer during project phases.
You will be expected to endeavor for innovation and excellence in software engineering within the aerospace domain.
REQUIRED EXPERIENCE & TECHNICAL SKILLS
- A MSc or equivalent degree in software or computer engineering with high score.
- Experience covering the Software Engineer role in the definition, design, coding and testing of distributed software.
- Knowledge of software engineering techniques for requirement gathering and analysis, design, software testing, documentation and quality assessment.
- Knowledge and ability to use UML in the software engineering process.
- In-depth knowledge of object-oriented and functional programming with coding experience in Java, python and C++.
- Knowledge of traditional (client-server) and modern software architecture (microservices, SOA) and ability to design, implement and integrate distributed software.
- Knowledge and ability to use message broker to manage data flow and data streaming (e.g. Apache Kafka).
- Ability to develop microservices using framework like SpringBoot and NodeJS.
- Knowledge of relational database and SQL language.
- Ability to use the following development tools: Gitlab, Maven, SonarQube, Nexus and Notebook.
- Knowledge of continuous integration tools such as Jenkins or Gitlab CI.
- Knowledge of the Linux operating system and scripting languages.
- Knowledge of container technology included orchestration aspects (i.e. Docker)
- Ability to use debugging tools, perform troubleshooting and profiling an application running in a distributed environment
- Problem Solving
- Result oriented
- Operational efficiency
- Fostering Cooperation
- Relationship Management
- Continuous Improvement
- Experience in Agile methodologies would be a further asset
- Experience in the development and integration of scientific software
- Knowledge of No-SQL database
- Ability to develop software exploiting big data platform based on Apache Hadoop and Spark