Embedded Engineer

FROSTBYTE 

📍 City of Cape Town, South Africa 🇿🇦

full-time
senior
Posted —

Key Skills

C++LinuxRTOSUARTSPI

Industry

AutomotiveConsumer Electronics

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.