Embedded Engineer: ARM Bare Metal
Developer/Designer
Johannesburg – Gauteng – South Africa
Embedded Engineer: ARM Bare Metal
Salary: To be confirmed
Area: Edenvale, Johannesburg
Type: Hybrid (3 days in office per week)
Role Summary
This role is ideal for an embedded engineer who enjoys working close to the hardware and building reliable, efficient firmware from the ground up. You will develop bare metal applications on ARM-based platforms used in real-world, production systems deployed internationally.
You will be part of a technically strong engineering team working on embedded platforms where performance, reliability and correctness matter. The work is hands-on and suited to someone comfortable operating in resource-constrained, real-time environments.
Tech focus:
Bare metal ARM, C, firmware development, low-level debugging, hardware integration
Responsibilities
- Develop and maintain bare metal firmware for ARM-based embedded systems
- Write efficient, reliable C code for real-time and resource-constrained environments
- Integrate firmware with hardware and peripherals
- Debug low-level issues across hardware and software boundaries
- Test firmware through unit, integration and system-level testing
- Review code to ensure quality, reliability and maintainability
- Read and interpret electrical schematics to support development and fault finding
- Work with common embedded development and debugging tools
- Document designs, implementations and test results
- Collaborate closely with other engineers across disciplines
Requirements
Essential:
- Degree or diploma in Electrical, Electronic or Computer Engineering (Electrical preferred)
- Strong C programming experience for embedded systems
- Hands-on experience with bare metal development on ARM processors
- Solid understanding of ARM architecture including memory mapping, interrupts and peripherals
- Experience using Git for version control
- Familiarity with embedded development environments such as Keil, STM32Cube or VS Code
- Ability to read and understand electrical schematics
- Basic electrical fault finding and troubleshooting skills
- Experience with serial communication protocols including UART, SPI, I2C, USB and CAN
- Practical experience with embedded testing and debugging
- Comfortable using tools such as JTAG or SWD debuggers, oscilloscopes, logic analysers and multimeters
- Experience participating in code reviews
Advantageous:
- Rust experience
- Exposure to embedded Linux
- Experience with low-power design and performance or memory optimisation
- Familiarity with build systems such as Make, CMake or Cargo
- Knowledge of embedded security concepts such as secure boot or cryptography
- Previous work on bare metal systems involving sensors, actuators or IoT devices
If you enjoy low-level embedded development and want to work on systems that are deployed in the real world, this role offers depth, challenge and ownership. Apply with your CV and a short note outlining your experience and availability and include examples of relevant projects or code where possible.