Job Description
Overview
We are seeking an experienced Software Engineer to join our client's team, developing high‑quality embedded software solutions across a range of innovative products. This role is ideal for someone with strong C and C++ programming skills, hands‑on embedded systems experience, and solid working knowledge of Linux environments.
Key Responsibilities
* Design, develop, and test embedded software using C and C++, ensuring reliability, performance, and maintainability.
* Work within Linux‑based environments to build, debug, and optimise system‑level code.
* Collaborate with hardware, firmware, and systems engineering teams to integrate software with embedded platforms.
* Troubleshoot, diagnose, and resolve issues related to embedded systems, performance, and device behaviour.
* Contribute to code reviews, documentation, version control, and continuous improvement of development processes.
* Support full software lifecycle delivery—from concept and design through to deployment and maintenance.
Key Skills & Experience
* Strong programming experience in C and C++.
* Proven background in embedded software development, including low‑level programming.
* Practical experience working with Linux, including debugging, scripting, and system-level interactions.
* Ability to write clean, efficient, and well‑structured code with strong problem‑solving skills.
Desirable
* Knowledge of real‑time operating systems (RTOS) such as Linux.
* Experience with unit testing frameworks and automated testing for embedded systems.
* Exposure to continuous integration/continuous deployment (CI/CD) practices.
Personal Attributes
* Detail‑oriented, analytical, and proactive in solving technical challenges.
* Strong communicator who can work effectively in cross‑functional teams.
* Passionate about delivering robust, high‑quality embedded software.