Position Title: JUNIOR SOFTWARE ENGINEER
ALTEC is involved in several Science and Technological Programs in the aerospace domain where data systems are software components that together with infrastructure and communication constitutes the ground segment of a space mission. Data systems are essential components of the ground segment and 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 hosts the engineers, physicists and mathematicians who oversee the space mission data systems from definition to end of operations; it develops the data systems for the missions and it supports execution of science operations on ground; it archives and curates 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.
DutiesYou 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, testing, documentation and quality assessment. You will be expected to endeavor for innovation and excellence in software engineering within the aerospace domain.
REQUIRED EXPERIENCE & TECHNICAL SKILLSA MSc or equivalent degree in software or computer engineering with high score. 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. Knowledge of object-oriented and functional programming with coding experience in Java, C++ and Python. 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 queues to manage data flow and data streaming for asynchronous and near real-time tasks. Ability to develop microservices using frameworks like SpringBoot, NodeJS and Flask. Knowledge of database relations and SQL language. Knowledge of the following development tools: Gitlab, Maven and Nexus. Knowledge of continuous integration tools such as Gitlab CI, Jenkins or Hudson. Knowledge of the Linux operating system and scripting languages. Knowledge of container technology. 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
They are not mandatory but candidates knowing them will be better evaluated:
- Experience in Agile methodologies would be a further asset.
- Knowledge of one NoSQL database (e.g.: Elasticsearch, MongoDB).
- Knowledge of XML and JSON data interchange formats for metadata description.