Senior software engineer
Dyson offers a unique opportunity for a talented and experienced Software Technical Lead in the Motors, Power and Electronic Systems Research Team, within Dyson’s Research, Design and Development (RDD) department; based in Malmesbury, Wiltshire, U.K.
Applicants should be proficient in creating and developing software with particular focus on system architecture, implementation and verification. The role involves:
- Leading and taking technical responsibility for the Software team within the Motors and Power System team covering multiple different software elements of the project
- Working with the different Motors and Power System teams to gain an in depth product understanding, while using your expert knowledge of the latest technologies to create innovative systems and solutions
- Ensuring the team develops the concept and demonstrates designs are robust and fit for, through detailed laboratory testing prior to handover to the development teams
- Assisting in the personal development of the team and undertake regular performance conversations with the team
- Owning the Software architecture, implementing and verification of the embedded software for our Dyson digital motor and related product control systems
- Driving the technical direction for new developments and ensuring that our software is developed both efficiently and to our software quality requirements
- Leading code and design review activities
- Working with the other disciplines to solve complex system level problems and find software solutions
- Ensuring all software requirements and architecture are fully documented by the team
- Ensuring the team generates suitable test specifications to ensure product reliability and robustness at key stages during code development. This includes the development of test environments including simulation, emulation and hardware/test equipment interactions.
Qualifications, skills and behaviours:
- Minimum BEng/MEng degree in electronic engineering or other relevant discipline with industrial experience in a relevant industry.
Minimum technical knowledge:
In-depth knowledge of common software design methodologies and embedded software development in assembler and C
Familiar with the requirements for ‘hard real time’ embedded software applications and demonstrable experience of working within real time constraints
Ability to derive software requirements from product level requirements and derive own requirements when limited information is available
Detailed knowledge of low-level embedded microcontroller-based motor control systems and associated power systems
Significant experience of developing for ARM platforms including the Cortex M series
In depth understanding and application of version control systems, ideally Git
Use of lab equipment to set up experiments and to take precise measurements
Good understanding of basic hardware and its interfacing to software systems.
Experience with Atlassian tools (JIRA, Fisheye, Crucible etc.)
Extensive experience of low level device driver software.
Experience with Keil MDK and ARM DS-5 tool chains
Competent user of UML