Senior Embedded Software Engineer
Role details
Job location
Tech stack
Job description
A senior technical leadership role responsible for embedded software architecture, project delivery, and guiding a multidisciplinary engineering team. The position requires deep embedded systems expertise, strong project ownership, and the ability to balance high-level system design with hands-on implementation.
Core Responsibilities
-
Define and own embedded software architecture across multiple product lines.
-
Lead project scoping, planning, resource allocation, and delivery.
-
Produce clear technical documentation, architectural designs, and test strategies.
-
Oversee code quality, conduct code reviews, and ensure robust CI/CT/CD practices.
-
Mentor engineers, support cross-functional collaboration, and communicate risks and mitigations.
-
Ensure releases are fully tested, secure, and production-ready.
-
Contribute to innovative design decisions and continuous improvement of engineering processes.
Requirements
-
Advanced C/C++ for embedded systems.
-
Strong experience with real-time operating systems (FreeRTOS or similar).
-
Deep understanding of multithreading, concurrency, and real-time performance optimisation.
-
Experience with embedded systems for data acquisition, control, communications, and bare-metal development.
-
Strong knowledge of Ethernet networking, including UDP/TCP/IP, TLS, unicast/multicast/broadcast.
-
Peripheral interfacing: SPI, I2C, memory devices.
-
Experience working with IP stacks and open-source libraries.
-
Proven delivery of commercial embedded products on MCU platforms such as ARM Cortex, PIC24/32, ESP32, STM32, MSP.
-
Ability to break down complex requirements into deliverable work packages.
-
Ability to read and interpret schematics, datasheets, and hardware documentation.
-
Experience with power protection relays or protection-related embedded systems (added as requested).
Desirable Skills
-
Knowledge of industrial or utility communication protocols (e.g., DNP3, IEC 61850, IEC 60870-5-101/103/104, Modbus, BACnet).
-
Experience with IoT/IIoT, cloud/enterprise platform integration, or industrial automation.
-
Linux or BalenaOS experience; containers; scripting languages; Python; C#.
-
Familiarity with VLANs, LLDP, SSH, SNMP, LDAP/RADIUS.
-
Wireshark proficiency.
-
Experience setting up or managing CI/CT/CD pipelines.
-
Web technologies (HTML/CSS/JS), database interfacing (e.g., MySQL), or desktop application development.