Our client is a leading innovator in the field of medical devices, dedicated to improving patient outcomes and enhancing healthcare delivery. The team are passionate professionals who are committed to developing cutting-edge solutions that make a difference in people's lives. We are looking for a Senior Embedded Software Engineer to join their R&D team and play a crucial role in the design and development of their safety critical Medical Devices across the full software development lifecycle (Requirements capture, analysis, design, development and test). Ideally, you will also have control systems experience, as part of the role will be working on the creation and tuning of PID loops, and the design and implementation of control algorithms e.g. pneumatics valves, actuators, etc. Benefits: 25 days annual leave, plus bank holidays Blended working options Enhanced pension scheme (with salary sacrifice option) Bonus schemes Sharesave scheme Healthcare cash plan Life assurance Responsibilities: Coordination of all software product lifecycle activities leading to successful project implementation Creates, shares and documents code using appropriate methodologies Review and interpretation of product specifications Proposes and implements improvements to technology and process Collaborates on solutions for multiple projects Preparation of technical specifications, test plans and operational documentation Software configuration management and version control Develop and maintain a high level of communication with the hardware engineers related to current projects and product design Assists with the support and development of software engineers by providing advice and mentoring Experience required: Embedded C & C++ experience. Embedded multithreaded application development using an RTOS e.g. FreeRTOS. Creation and tuning of PID loops. Exposure to UML. Agile Development with SOLID Design Principles Verification preferably within a regulatory controlled environment, Design Review, Static Analysis, Code reviews, Unit Test, System Test Software configuration management e.g., SVN/GIT Nice to haves: Interpretation of electronic schematic diagrams, uProcessor datasheets and reference manuals MATLAB Working within a regulated software environment Multi-processor safety critical systems Unit Test tools BDD / TDD SonarQube, CppDepend, Lint ARM development environments Build pipelines e.g. Jenkins For immediate consideration please forward your most up to date CV