JOB OFFERS

Senior Software Engineer (Data Processing)

ALTEC is involved in several Science and Technological Programs in the aerospace domain where data systems are represented by software components that together with infrastructure and communication system constitute the ground segment of a space mission. Data systems are essential as are they represent reliable and efficient performant software that is needed to provide ground segment services and execute mission operations.

The Data Processing System and Scientific and Technological Application group hosts the engineers, physicists and mathematicians who oversee the space mission data systems from definition to end of operations; it develops and maintains the data systems aimed at mission support and the execution of science operations on ground; it archives and manages their data during operations and beyond. Moreover, it is involved in the post-mission data exploitation in order to develop applications aimed at maximizing the scientific and technological return of value devoted to maximize the information value extracted from such data.

Duties

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 in charge of software requirement gathering and analysis, design, coding, testing, documentation and quality assessment.

You will be expected to endeavor for innovation and excellence in software engineering within the aerospace domain.

Among the main duties, you will be involved in:

  • Analysis, revision and definition of software requirements.
  • Analysis, revision and definition of software design.
  • Coding and implementation of data processing software systems.
  • Defining and implementing software unit and integration tests.
  • Prepare system related documentation (SW Specifications, SW Design, Technical Notes, User Manuals, SW Test Procedures and Reports, SW Release Note).
  • Performing software troubleshooting and bug fixing.
  • Participate to periodic technical meetings

REQUIRED EXPERIENCE & TECHNICAL SKILLS

  • A MSc or equivalent degree in software or computer engineering with high score.
  • N+ years of 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 and Python.
  • Knowledge of traditional (client-server) and modern software architecture (microservices) and ability to design, implement and integrate distributed software.
  • Knowledge and ability to use message brokers to manage asynchronous data flows and data streaming (e.g. Apache Kafka).
  • Ability to design, develop and validate microservices using frameworks like SpringBoot and NodeJS.
  • Knowledge of relational database and SQL language.
  • Ability to configure and use software development tools such as Gitlab, Maven.
  • Ability to configure and use software analysis and deployment tools such as SonarQube and Nexus.
  • Ability to use continuous integration tools such as Gitlab CI, Jenkins or Hudson.
  • Ability to use Linux operating system and scripting languages.
  • Ability to define and implement software deployment based on container technology (e.g. Docker, Podman) included orchestration aspects (e.g. Kubernetes, docker swarm).
  • Ability to use debugging tools, perform troubleshooting and profiling an application running in a distributed environment.

SOFT SKILLS

  • Problem Solving
  • Result oriented
  • Operational efficiency
  • Fostering Cooperation
  • Relationship Management
  • Continuous Improvement

ADDITIONAL ASSETS (not mandatory, considered as a plus)

Experience in Agile methodologies would be a further asset

Knowledge of one NoSQL database (e.g.: Elasticsearch, MongoDB).