Senior Embedded Software Engineer (Modern C++)
Build Sophisticated Embedded Systems That Matter
We’re looking for a highly capable Senior Embedded Software Engineer to help us develop advanced embedded products where software architecture, reliability, maintainability, and testability are at the core of everything we build.
This is an opportunity for an engineer who enjoys solving complex technical challenges and wants to work beyond low-level firmware alone. We’re seeking someone who can design scalable embedded software platforms using modern C++, strong software engineering principles, and a disciplined architectural mindset.
You’ll collaborate closely with electronics engineers, QA specialists, and product development teams to create robust, production-grade embedded systems from concept through deployment.
If you enjoy building clean, elegant embedded software and shaping engineering direction in a collaborative environment, we’d love to hear from you.
What You’ll Be Doing
* Design and develop embedded software applications using modern C++
* Architect modular, maintainable, and highly testable embedded software systems
* Create Python-based tooling, automation, and test infrastructure
* Design software abstractions and interfaces that support scalable development and unit testing
* Develop and maintain host-based simulation, emulation, and functional testing environments
* Architect and optimize RTOS-based systems with efficient tasking and synchronization strategies
* Debug and analyze embedded systems using JTAG/SWD and advanced debugging tools
* Participate in code reviews, architecture discussions, and key technical decisions
* Collaborate with hardware, QA, and product teams to deliver reliable end-to-end system behaviour
* Contribute to CI/CD pipelines and continuous improvement of development infrastructure
What You’ll Bring
Modern C++ & Software Architecture
You have strong proficiency in modern C++ within embedded systems environments, along with a deep understanding of:
* Object-oriented programming
* Software architecture and abstraction techniques
* Design patterns
You think beyond individual peripherals and drivers — you design systems that scale and evolve.
Strong Software Engineering Practices
You’re passionate about writing clean, maintainable, and testable code, with experience in:
* Unit testing
* TDD (Test-Driven Development)
* Mocking and stubbing
* Host-based testing
* Simulation and emulation techniques
You understand how to build software that remains reliable and maintainable long-term.
Embedded Systems & RTOS Expertise
You have a strong understanding of real-time embedded systems, including:
* Scheduling
* Inter-task communication
* Memory management
* Real-time constraints
You also have practical experience with:
* FreeRTOS and/or Zephyr
* JTAG/SWD debugging tools
Python & Development Tooling
* Automation
* Test frameworks
* Build orchestration
* Productivity improvements
Development Infrastructure
You have experience with:
* Git-based collaborative workflows
* CI/CD fundamentals for embedded software
Nice to Have
Experience with:
* Bluetooth Low Energy (BLE)
* WiFi
* Ethernet and TCP/IP networking
* Products across multiple stages of the development lifecycle
Familiarity with standards such as:
* ISO 13485
* IEC 62304
* ISO 14971
* IEC 60601
What We Value
We value engineers who:
* Think architecturally, not just at the driver/peripheral level
* Write clean, maintainable, high-quality code
* Care deeply about software quality and testability
* Balance embedded constraints with strong engineering practices
* Communicate effectively across multidisciplinary teams
* Take ownership and drive continuous improvement
Education & Experience
* Degree in Computer Engineering, Software Engineering, Computer Science, Biomedical Engineering, or a related technical discipline
* Typically 5+ years of relevant industry experience in embedded software development
#J-18808-Ljbffr