JOB OFFERS
Junior Software Engineer (Data Processing)
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 processing 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 component design, coding, testing and documentation.
Among the main duties, you will be involved in:
- Understanding of software requirements.
- Analysis, revision and definition of software design.
- Defining and implementing software unit and integration tests.
- Preparing system related documentation (SW Design, Technical Notes, User Manuals, SW Test Procedures and SW Test 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.
- 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 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 queues to manage data flows and asynchronous data exchange.
- Ability to develop microservices using frameworks like SpringBoot and NodeJS.
- 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.
- 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)
- Knowledge of container technology (e.g. Docker, Podman) included orchestration aspects (e.g. Kubernetes, docker swarm).
- Knowledge of one NoSQL database (e.g.: Elasticsearch, MongoDB).
- Knowledge of XML and JSON data interchange formats for metadata description.
