This role takes ownership of software modules from concept to deployment, working closely with the Software Architect, senior engineers, hardware designers and test engineers to enhance and optimise the company’s products.
Key Responsibilities:
Working closely with the Software Architect and senior engineers to refine and implement scalable software architecture
Developing key software components, ensuring maintainability and performance, and contributing to architectural reviews
Taking ownership of software modules, driving development from concept to deployment
Adding features to existing and new code bases, using C in embedded Linux environments
Collaborating with test engineers to define verification strategies and ensure thorough test coverage
Analysing complex test results and implementing corrective actions with minimal supervision
Working with hardware designers on software-hardware integration, interpreting hardware schematics and managing communication protocols (I2C, UART, SPI, USB)
Troubleshooting and resolving hardware-software interaction issues efficiently
Working with cross-functional teams, including production, to diagnose and resolve software issues
Producing project artefacts and product design documentation to meet the software development process, regulatory compliance and organisational requirements
The ideal candidate would have:
Familiarity with Git for source code management and collaboration
Experience with continuous integration tools and scripting languages to automate tasks and improve development workflows
Understanding of networking protocols and security mechanisms, including data storage and preventing vulnerabilities
The ideal candidate must have:
A degree in Computer Science, Electronics or a related field (or equivalent experience)
3+ years of C programming experience in an embedded environment, with familiarity with ARM microcontrollers, coding standards and best practices
3+ years of Linux-based systems development, including some experience of the Linux boot process, DTB and kernel drivers
Ability to write user space applications using POSIX APIs, integrate open-source libraries into existing programs and use development tools for system administration and debugging
3+ years of experience working with hardware protocols (I2C, UART, SPI, USB) and the ability to read simple hardware schematics
Knowledge of Yocto, with the ability to modify it to support new platform designs and versions
Clear verbal and written communication, especially when discussing technical issues or documenting findings
An analytical, methodical approach with strong attention to detail, and a proactive attitude to learning and contributing to team goals
If this role looks like your next challenge, please contact Jack ASAP or apply via this advert!
We endeavour to reply to every candidate, but if you haven’t heard back within 10 days, please understand that you have unfortunately been unsuccessful for this position, or the position has been filled. Please call the office or send an email to discuss other potential positions
£55000.00 - £65000.00 per year












