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.