Software Engineer
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.