- Motors and Power Systems, Electronics, Research Engineering, Software Engineering and Connectivity
- Malmesbury - United Kingdom
The software engineering role will involve:
• Producing high quality software for embedded, resource constrained platforms, including RTOS and bare metal based systems for motor, heater or battery management applications.
• Developing scripts and tools to automate testing of software.
• Developing software for demonstration rigs to convey ideas to others.
• Implementing various control algorithms on embedded systems, along with modelling and analysis of algorithms on Windows or Linux based hosts.
• Producing well-structured software for transfer to the downstream development teams at particular milestones.
• Taking part in software reviews.
• Working with different product teams to gain an in depth product understanding, while using knowledge of the latest technologies to create innovative electronics systems and solutions.
• Reviewing relevant papers, patents and meeting with companies to keep informed of emerging technologies.
key focus for any successful applicant will be to research into new technology
and look at ways of incorporating this into future products.
A successful applicant will be expected to:
• Develop the concept, proving key technologies and demonstrating the system feasibility.
• Produce clear, well written documentation prior to handover to the development teams.
• Demonstrate designs are robust, cost effective and fit for purpose for a high volume manufacture environment, through detailed laboratory testing, simulation and analysis.
Education and experience:
• BSc/MSc degree in Computer Science, or other relevant discipline, or a demonstrable level of industrial experience in a relevant industry.
Applicants should ideally have experience in the following areas:
o Excellent general knowledge of microcontrollers, preferably including ARM Cortex M devices.
o Knowledge of a wide range of serial interfaces (e.g. I2C, SPI, UART, USB, I2S).
o Knowledge of memory devices is desirable e.g. NAND, NOR, SRAM, DDR etc.
o Experience of application processors.
o Understanding of electronics and the ability to debug at the circuit level.
o Experience of defining software level requirements.
o Experience of C/C++ programming for embedded systems.
o Experience of unit/acceptance testing and design for test.
o Ability to analyse assembly code.
o Use of Matlab or Python for data acquisition, analysis and automation of software.
• Design Tools:
o Use of Git for software version control.
o Atlassian tools, including Jira, Confluence and Bitbucket.
o Keil µVision, IAR or similar IDEs. • Design Techniques:
o Good quality engineering process understanding and appreciation.
o Ability to read and analyse datasheets and technical reference manuals.
• Lab experience
Experience of working in a laboratory environment.
Essential behavioural skills:
• Good analytical ability and attention to detail.
• Ability to communicate appropriate, concise and accurate information in written and verbal format.
• Ability to adapt or generate imaginative and innovative ideas, in line with core Dyson values.
• Ability to multi-task and plan effectively when working with a variety of project teams.
Excellent team working skills.
Additional experience that is desirable:
• Experience of documenting designs with the UML.
• Robust design including FMEA techniques.
• Class B software development.
• Design for high volume manufacture.
• Experience of programming on Android operating systems running on application level processors.
• Experience of FPGA design.
• Digital signal processing experience.
• FreeRTOS or ThreadX experience.
27 days holiday plus eight statutory bank holidays
Performance related bonus
Free on-site parking
Subsidised café and restaurants
Discounts on Dyson machines