Job Overview
\
We are seeking a highly skilled Application Software Engineer to join our team.
\
The successful candidate will have strong experience in Qt development and C/C++, with a solid understanding of embedded systems.
\
This role is primarily application-focused, but the ideal candidate will also engage frequently with embedded platforms running Linux-based operating systems (e.g., Yocto customisations) and using established industry communication protocols.
\
This is a key role in the development of cutting-edge medical devices, and the preparation of documentation and adherence to relevant standards will form a significant aspect of the workload.
\
Duties and Responsibilities
\
\
1. Design, develop, and maintain application-level software using the Qt framework for embedded medical devices.
\
2. Implement multi-threaded applications using design patterns and featuring robust event-handling mechanisms.
\
3. Collaborate on embedded platform integration, including Yocto-based Linux customisations and system maintenance.
\
4. Perform debugging, unit testing, verification testing, and extensively document releases for Linux and Windows-based applications.
\
5. Participate in design discussions, clearly justifying architectural and pattern choices.
\
6. Work closely with cross-functional teams to explore and implement new approaches for data presentation and processing.
\
7. Contribute to performance improvements, bug fixes, and feature enhancements with a strong eye for detail.
\
8. Maintain documentation and provide technical insights to support product evolution.
\
\
Required Skills & Experience
\
\
* 2–3 years of Qt framework experience (Qt, QML, C/C++).
\
* Knowledge and experience in implementing protocols such as RS-232/485, SPI, I2C, and USB is required.
\
* An ability to use collaboration tools such as Git, SVN, and JIRA is an advantage.
\
* Strong experience with Linux-based systems (Yocto is an advantage).
\
* Detail-oriented, with a strong focus on reliability and robustness in application development.
\
* Solid understanding of multi-threading, concurrency, and event-driven architectures.
\
* Ability to explain and justify design choices in a clear and structured way.
\
* Knowledge of software optimisation techniques (resource usage, CPU efficiency, responsiveness).
\
* Strong problem-solving skills and the ability to debug complex issues in embedded and application-level contexts.
\
\
Desirable / Nice-to-Have Skills
\
\
* Familiarity with data visualisation and UI/UX principles for technical applications.
\
* Some knowledge of hardware components and integration requirements.
\