Role Purpose:
We require a skilled Embedded Software Engineer to design low level embedded software for our wide range of customer applications focussed on electrification, including battery management, power conversion and electric vehicle control systems. The successful candidate will be a key member of the software and controls team. They will develop software solutions, drive processes and tools as well as quality standards. They will work with the wider multi-disciplinary engineering team to support the delivery of effective engineering solutions. This is a hands-on role for an engineer who enjoys designing and implementing embedded software, as well as the creative problem solving, and testing required to ensure that the software modules function as intended.
Key Responsibilities:
Technical Leadership
- Support the definition of embedded software platforms for real-time systems.
- Lead development of low-level and application-level software components for microcontrollers, SoCs, and embedded processors.
- Support the Embedded Software Technical Specialist in technical decisions regarding RTOS selection, peripheral interfacing, and system performance optimization.
- Drive modular, scalable, and reusable software component design.
Software Development
- Design and implement embedded software using C/C++ or assembly for microcontroller platforms (e.g. ARM Cortex, Infineon TriCore, RISC-V, STM PPC)
- Develop and configure device drivers, communication stacks (CAN, LIN, SPI, I2C, UART, Ethernet), and hardware abstraction layers.
- Integrate middleware and bootloaders; manage firmware update mechanisms (OTA or manual).
- Ensure compliance with MISRA-C, CERT C, or other relevant coding standards.
Requirements and Design
- Translate system-level requirements into embedded software requirements and specifications.
- Collaborate with systems engineers and hardware designers to define software-hardware interfaces.
- Create and maintain software architecture and design documentation (e.g., using UML or Mathworks System Composer).
Verification, Validation & Quality Assurance
- Execute unit, integration, and system-level test plans using frameworks like Google Test, Ceedling, VectorCAST.
- Use static and dynamic analysis tools (e.g., PC-lint, Coverity, Polyspace) to ensure software quality.
- Support Software FMEA, safety analysis, and compliance to standards such as: Automotive: ISO 26262, ASPICE Aerospace: DO-178C Industrial: IEC 61508
- Continuous Integration & Configuration Management Maintain software version control using BitBucket.
- Use CI/CD pipelines for embedded software builds and automated testing (e.g., Jenkins, GitLab CI).
- Implement software configuration, change control, and traceability for releases.
Mentorship and Team Development
- Mentor junior engineers on embedded software best practices, debugging techniques, and architectural principles.
- Review code, conduct design reviews, and provide constructive feedback to improve team capabilities.
- Foster a culture of engineering excellence and technical ownership.
Cross-Functional Collaboration
- Interface with electrical, mechanical, systems, validation, and manufacturing teams to ensure seamless software integration.
- Support bring-up, integration, and debug on hardware prototypes and production units.
- Act as technical liaison with suppliers, customers, or certification authorities for embedded software matters.
Innovation and Strategy
- Support the Embedded Software Technical Specialist to evaluate emerging technologies (e.g., multicore systems, AI accelerators, automotive Ethernet) for integration into embedded platforms.
- Contribute to product roadmaps and R&D initiatives from an embedded software perspective.
Program Support and Delivery
- Provide accurate estimates for software development tasks and manage resource allocation.
- Ensure timely delivery of embedded software in line with project milestones and quality targets.
- Lead root cause analysis and resolution of complex software issues in both development and field environments.
Qualifications, Experience and Skills Required:
- A degree or similar in engineering.
- A minimum of 5 years relevant industry experience.
- Deep experience in embedded software design.
- Detailed low level software design, implementation, and validation experience.
- Hands-on experience of software debugging tools and using them to develop hard real-time software components.
- Experience in writing system and software specifications, requirements & test documents.
- Experience with software version control tools, requirements management, software change request (SCR) management.
- Familiar with electrical debugging on systems, e.g. LV harnessing, continuity checking, isolation checking, etc.
- Familiar with system level attributes/trade-offs.
- Proven track record in the effective delivery of technical objectives to quality and time targets.
- Comfortable working closely with clients, often on-site at client locations.
- Enthusiastic about learning new disciplines and expanding current technical and project knowledge.
Preferred:
- Experience of working in a relevant industry developing high integrity systems (such as automotive, marine, energy storage, aerospace)
- Experience of battery systems and their control.
- Experience of power conversion systems (AC/DC, DC/AC and DC/DC) and their control.
System or Knowledge:
- Advanced capabilities in Microsoft Office and applications.
- Extensive knowledge of programming in C/C++, Assembler for embedded platforms.
- Experience with CCP & CAN based tools, e.g. INCA/CANape and CANalyzer.
- Experience and knowledge of applications involving complex electrical systems (high and low voltage).
- Direct knowledge of application of functional safety and cyber security to high integrity control systems.
- Understanding and application of industry and legal standards relating to control systems.
Personal Attributes:
- Quality-focussed and process-oriented with an attention to detail.
- Excellent problem solving and analytical skills.
- Strong communication skills – including report writing and presentation.
- Self-motivated and enjoys working within a team environment.
- Willingness to accept responsibility and challenges required to achieve objectives.
- Commitment to professional development and continuous learning.
Location and Travel:
- You must be eligible to work in the UK and have no restrictions for world-wide travel.
- This role is based at our Head Office in the UK, with flexibility for remote working.
- Working hours are 0900 to 1700, including 30-minute paid break, 5 days a week, however some travel is expected, and flexible working patterns are essential to the role.