Job Search and Career Advice Platform

Enable job alerts via email!

Embedded Engineer

FROSTBYTE

Wes-Kaap

On-site

ZAR 600 000 - 800 000

Full time

4 days ago
Be an early applicant

Generate a tailored resume in minutes

Land an interview and earn more. Learn more

Job summary

A technology company in South Africa is seeking a highly skilled Embedded Engineer to design and implement embedded software for sophisticated control systems. You will work on real-time software development, integrating hardware and software components, and ensuring optimised system performance. Candidates should have over 5 years of C++ experience and a solid background in embedded software development. This role offers opportunities for collaboration and innovation in an exciting technological landscape.

Qualifications

  • 5+ years of software development using C++, C, Go, or Java.
  • 2+ years in embedded software development including debugging and testing.
  • Strong understanding of microcontrollers and hardware-software interactions.

Responsibilities

  • Design and implement embedded software for real-time systems.
  • Collaborate with hardware teams for integration and testing.
  • Document requirements and ensure compliance with standards.

Skills

Embedded Software Development
RTOS Experience
C++ Programming
Hardware-Software Integration

Education

BSc Honours Degree in relevant field

Tools

JTAG
Oscilloscopes
Git
Job description
Role Overview

We are seeking a highly skilled Embedded Engineer with hands-on experience in building, optimising, and integrating software for real-time, safety-critical, and embedded Linux-based systems. You will work closely with hardware, systems, and production teams to design and implement embedded firmware, OS-level components, and full-stack integrations for intelligent control systems and remote management platforms. This role is ideal for an engineer who enjoys deep system-level work (MCUs, RTOS, drivers), real-time constraints, and also has the ability to integrate backend/frontend/cloud components where required.

Key Responsibilities

1. Software Development

  • Design, implement, debug, and optimise embedded software for embedded Linux, RTOS, and microcontroller-based systems.
  • Develop low-level software using C, C++, Go, or Assembly.
  • Build multithreaded, real-time applications ensuring deterministic behaviour.
  • Develop OS-level components such as device drivers, boot-up scripts, and board support interactions.

2. Hardware–Software Integration

  • Work closely with hardware engineers to understand board layouts, electrical constraints, and component behaviour.
  • Implement software that interfaces with sensors, actuators, and hardware peripherals.
  • Perform hardware-in-loop testing and on-target integration.

3. System Architecture & Design

  • Translate system requirements into a detailed embedded software architecture.
  • Design solutions optimised for memory, power consumption, and CPU constraints.
  • Contribute to the evolution of distributed embedded systems interacting with cloud or RMS backends.

4. Testing and Validation

  • Develop unit, integration and system-level test plans.
  • Use debugging tools such as JTAG, oscilloscopes, logic analysers, or serial debuggers.
  • Validate performance under real-world conditions (field simulation, voltage instability, interference, etc.).

5. Documentation & Standards Compliance

  • Document requirements, architectural decisions, APIs, and test procedures.
  • Ensure compliance with embedded software standards (ISO, MISRA, AUTOSAR where applicable).
  • Maintain coding standards, configuration control, and versioning discipline.

6. Optimisation & Continuous Improvement

  • Continuously optimise for power efficiency, performance, and memory footprint.
  • Implement improvements based on hardware updates, operational feedback, or system analytics.

7. Collaboration

  • Work closely with systems engineers, hardware teams, production technicians, and field teams.
  • Support deployments, testing cycles, and technical troubleshooting in production and field environments.

8. Research & Innovation

  • Explore and implement new embedded architectures, sensors, communication stacks, and optimisation techniques.
  • Evaluate emerging technologies applicable to intelligent traffic systems, IoT, and edge computing.
Qualifications & Experience

Minimum Requirements:

  • BSc Honours Degree in Computer Science, Computer Engineering, Electronics, Electrical Engineering (Light Current).
  • Minimum 5+ years of software development using C++, C, Go, or Java.
  • 2+ years of embedded software development, including multithreading, debugging, and real-time system testing.
  • 2+ years of experience integrating application software on real-time operating systems (RTOS) or embedded Linux systems.
  • Strong understanding of microcontrollers, SoCs, memory architecture, and hardware-software interactions.
Technical Competencies
  • Sound knowledge of real-time, multitasking embedded software.
  • Experience installing and maintaining embedded Linux systems and BSP components.
  • Strong understanding of IP networking (TCP/IP, socket programming).
  • Experience with software configuration control (Git).
  • Understanding of OOD, TDD, and CI/CD practices.
  • Experience with debugging tools (JTAG, oscilloscopes, logic analysers).
  • Understanding of system engineering principles for embedded platforms.
Additional requirements
  • Ability to travel for field testing or client integration when required.
  • Experience with ARM, PIC, or similar architectures.
  • Knowledge of embedded security, encryption, or secure boot.
  • Experience with communication protocols: UART, SPI, I2C, CAN, Ethernet.
  • Experience with cloud or RMS integrations for embedded systems.
  • Familiarity with IoT protocols (MQTT, CoAP, BLE, Zigbee).
  • Python or scripting experience for testing automation.
  • Experience with MATLAB/Simulink for modelling.
Get your free, confidential resume review.
or drag and drop a PDF, DOC, DOCX, ODT, or PAGES file up to 5MB.