You will join a supportive group of engineers who value clean code, practical problem solving and continuous learning.
About the Role
You will develop and maintain embedded firmware, write code for embedded processors, create and run test plans, support integration and testing and assist with setup, configuration and version control.
Key Responsibilities
Develop and maintain embedded firmware
Create low-level drivers for hardware components
Build and maintain software test plans and unit tests
Support integration and testing
Assist with software configuration, version control and releases
Document designs and test results
Help create software architectures based on system requirements
Assist with simple scripting tasks to automate workflows
Requirements
BSc or BEng in Computer Science, Electronic Engineering, Mechatronic Engineering or similar
At least 3 years of embedded software experience. Candidates with less experience but excellent academic results will also be considered
Strong understanding of C programming
Experience with git and version control
Experience in software testing, debugging and integration
Understanding of communication protocols such as SPI, I2C, CAN, USB or Serial
Ability to read electronic schematics
Ability to work independently and in a small team
Helpful Extras
These are not required but will be beneficial :
MSc or MEng
Experience with Python or C++
Experience with ARM processors or STM32 microcontrollers
Experience with real-time systems
Familiarity with makefiles, Eclipse, Qt or documentation tools
Experience in engineering or technology environments
Knowledge of software qualification or certification processes
Who You Are
You enjoy solving technical problems, learning new tools and working with others. You take pride in writing clean, reliable code and maintaining a high standard of work, even in a fast-paced setting.
Software Engineer • Cape Town, South Africa