Embedded Software Engineer
D-Orbit
- Lomazzo, Como
- Tempo indeterminato
- Full time
- Contribute to the entire application lifecycle, focusing on requirements definition, design, coding, debugging and integration with the flight hardware (note that the coding language used during the daily job is mostly embedded C and the software spans multiple layers, ranging from low-level components to middleware and application software)
- Preparation of flight software technical documentation
- Validation of features including integration with software-in-the-loop and hardware-in-the-loop test suites
- Contribute to the continuous improvement of the teams processes and methodologies
- Define software system specifications during co-engineering activities with the system team
- Improve and develop new features to shared libraries
- Maintenance of existing flight applications
- Support to AIV activities and spaceflight operations
- Minimum of 1 year experience in embedded software development.
- Experience delivering embedded software in any C-family language
- Knowledge of any typical embedded communication interfaces such as USART, SPI, I2C, CAN
- Experience using and configuring any common build tool chains or similar development environment (such as ANT, WAF, Makefile, Visual Studio etc.)
- Familiarity with Git versioning system or any similar DVCS
- Ability to communicate technical concepts clearly and effectively
- Degree, in any relevant area such as computer engineering, electronic engineering, aerospace engineering, robotics or automation.
- Full professional proficiency of English language is mandatory.
- Good understanding of SW design and testing lifecycle in regulated environment (ideally ECSS standard)
- Knowledge of real-time operating systems (such as RTEMS or FreeRTOS) and/or operating systems targeted for embedded applications (such as any embedded Linux)
- Experience in debugging embedded software using standard laboratory equipment
- Basic understanding of Assembler language
- Experience in defining software system specifications and software requirements
- Knowledge of Python
- Familiarity with using any Linux based distribution and appreciation of application development
- Familiarity with typical software development methodology and release versioning processes
- Familiarity with OBDH and TMTC architectures used in space systems
- Capability of working in autonomy