- Motors and Power Systems, Electronics, Research Engineering, Software Engineering and Connectivity
- Malmesbury - United Kingdom
AccountabilitiesThe 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. A 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.
SkillsEducation and experience: • BSc/MSc degree in Computer Science, or other relevant discipline, or a demonstrable level of industrial experience in a relevant industry. Technical knowledge: Applicants should ideally have experience in the following areas: • Hardware: 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. • Software: 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 o 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