Job Overview
We are seeking a seasoned software engineer to join our team. The successful candidate will be responsible for developing embedded software implementation in accordance with the chosen architecture and detailed design inputs.
The ideal candidate will have a strong background in C++ (17 or greater) and experience with embedded device development, such as STM32 etc. Additionally, they should have knowledge of hard-real time/ISR handling and device drivers for time critical applications.
Key Responsibilities:
Develop and implement software solutions in line with project plans and defined software development process.
Contribute to software documentation, including architectures, design documentation, requirements, etc.
Design and implement unit and integration test plans, and perform manual testing.
Participate in code reviews and contribute to software artefacts.
Stay up-to-date with development tools and processes used on assigned projects.
Experience with custom Linux distributions using Yocto or similar build systems is considered advantageous.
Requirements:
Bachelor's degree in engineering within one of the following disciplines: Electronics engineering, Mechatronics engineering, Computer Science or Software Engineering.
Citizenship of Australia.
Demonstrated experience with C++ (17 or greater).
Embedded device experience, such as STM32 etc.
Hard-real time/ISR handling and device drivers for time critical applications.
Familiarity with standard interfaces and devices such as DACs, ADCs, etc.
GoogleTest & GoogleMock.
Cross compilation on Windows or Linux hosts.
Advantageous Docker.
Python, Python/C++ Interoperability.
Virtualised development environments.