Salary
💰 £50,000 - £60,000 per year
Tech Stack
LinuxPythonRTOSRust
About the role
- Designing, developing and maintaining embedded software in C for Zephyr RTOS and Embedded Linux.
- Applying best practices in embedded software architecture and testing.
- Writing automated tests, GUIs, and utility apps in languages such as Python and C#.
- Creating software libraries and demo apps in C-compatible languages (C#, C++, Rust) to control firmware subsystems.
- Executing and collaborating on strategy for highly reliable, mission-critical hardware and firmware.
- Implementing and improving device test plans, debugging, and validating upcoming firmware and software.
- Promptly analysing and correcting quality issues.
- Taking ownership of firmware and software projects from start to finish.
- Performing other duties on an ad-hoc basis and demonstrating a proactive attitude.
Requirements
- A passion for improving lives through assistive technology.
- 4+ years of experience in software development in one or more of the following languages: C, C++, Rust.
- 4+ years of experience in embedded software development in C.
- Knowledge of Computer Science fundamentals in data structures, algorithm design, problem-solving, and complexity analysis.
- Strong grounding in embedded software architecture (maintainability, modularity, fault-tolerance, testability).
- Experience with automated testing (unit, integration, system tests), mocking and automation frameworks.
- Understanding of API design and creation of clear, stable abstractions for hardware/firmware interaction.
- Skilled at debugging in constrained environments and using hardware/software debugging tools.
- Proven track record across the entire software product lifecycle.
- Ability to solve complex technical problems and systems thinking across hardware, firmware and application layers.
- Experience with embedded platforms (Embedded Linux, Arduino, STM32, Nordic, Zephyr RTOS).
- Linux, Bash/shell, CI (Continuous integration) experience.
- Ability to read electronics schematics.
- Collaborative and supportive team player.
- Practical, proactive mindset and ability to take initiative in ambiguity.
- Degree or equivalent experience in an engineering subject, Physics, Mathematics, or other scientific subject is useful (not essential).
- Experience in high-performance applications (useful).
- Experience in MISRA-C (useful).