Posted: 28 April 2026
Job Details
JOB SPECIFICATION: EMBEDDED DEVELOPER: ARM Bare Metal Applications
Location Johannesburg
Hours US / SA Business Hours | Hybrid (3 days per week in office)
Travel Occasional travel to USA, CT office
Benefits Contribution to medical aid
Work Eligibility South African | Permanent Resident
We’re building the future with robotics. Our work is integrating robotics and automation into industries like construction and mining. If you’re passionate about cutting-edge technology, solving complex problems, and building systems that push the limits of what is possible in robotics and automation, we are where your skills can make a global impact.
We are a US based company with strong South African roots. Our business started in Joburg in 2005 and later moved to the USA. We are now building out our engineering office’s in Cape Town (Century City) and Joburg (Greenstone Hill) to support our US operations and customers.
Job Overview
The Embedded Developer: ARM Bare Metal Applications will develop and maintain software on embedded platforms used in products and services provided by our company.
Key Responsibilities
• We are seeking an experienced embedded programmer to develop and maintain firmware for bare metal applications on ARM processors.
• The role involves low-level programming, hardware-software integration, debugging, and testing in resource-constrained environments.
• The ideal candidate will have a strong foundation in electrical engineering principles and hands-on experience with embedded systems, ensuring reliable and efficient code for real-time applications.
Qualifications & Experience
Required:
• Bachelor’s degree (BSc/BTech) in Electrical Engineering, Electronics Engineering, Computer Engineering, or a related field. Preference for Electrical Engineering C/C++ programming for Linux
• Proficiency in C programming for embedded systems.
• Experience with Git version control for collaborative development.
• Familiarity with development environments such as Keil, STM32Cube, or VSCode for embedded software.
• Ability to read and interpret electrical schematics.
• Basic electrical fault-finding and troubleshooting skills.
• Knowledge of serial communication protocols, including UART, SPI, I2C, USB, and CAN bus.
• Experience in software testing, including unit testing, integration testing, and debugging.
• Proficiency in code review processes to ensure code quality and maintainability.
• Familiarity with ARM processor architecture (e.g., memory mapping, interrupts, and peripherals).
• Proficiency with debugging tools such as JTAG/SWD debuggers, oscilloscopes, logic analyzers, or multimeters.
Beneficial:
• Rustlang.
• Knowledge of embedded Linux.
• Experience with low-power design techniques, optimization for performance and memory usage in bare metal environments.
• Familiarity with build systems like Make, CMake, or Cargo.
• Knowledge of security practices in embedded systems, such as secure boot or cryptographic implementations.
• Prior work on bare metal projects involving sensors, actuators, or IoT devices.
Skills & Competencies
• Able to work independently
• Problem solving and critical thinking
• Attention to detail
• Time management
• Adaptability and self-motivation
• Excellent communication skills
• Proactive and collaborative approach to teamwork





