Senior Embedded Software Tools Engineer
Role details
Job location
Tech stack
Job description
The Embedded Software Tools team is responsible for developing and supporting the tools used for building, testing and simulating application software for Motion Applied ECUs. Our tools are based on MATLAB, Simulink and C, and enable engineers to auto-generate code for embedded control systems. We support teams within Motion Applied who develop application software for F1, IndyCar and NASCAR, as well as external customers who are also involved with Formula E, WEC and other high-tech applications.
Role Dimensions As an Embedded Software Tools Engineer, you will be responsible for helping to develop and support MCT - our suite of MATLAB toolboxes that customise the code generation capabilities of MATLAB and Simulink. You will need to have an in-depth knowledge of MATLAB and Simulink, and a strong understanding of writing and compiling C code - our work spans the interface of Simulink application models and lower-level embedded software. The role will also develop and support vTAG products - our software-in-the-loop simulation environment. This requires an understanding of simulation techniques, real-time control systems, and development experience with C/C++. Working within the Control & Compute team, you will work in a fast-paced and agile environment - where you will see your work being delivered to the racetrack and interact with Motorsport teams directly. We follow new technologies and make use of modern software development practices and tools.
Principal Accountabilities · Development and maintenance of MCT - our MATLAB/Simulink toolboxes for code generation of embedded software for MA ECUs. · Providing expert support to customers using our tools to develop their own Simulink applications for MA ECUs, acting as the lead technical representative. · Support and development of vTAG - our SIL simulation tool. · Working with internal teams using our tools to support and develop new software features. · Creating technical documentation and guides for a range of users. · Leading issue tracking, software testing and release processes.
Requirements
· Expert knowledge of MATLAB programming and software development · Experience of Simulink control algorithm modelling for embedded control systems · Skilled in code generation customisation in MATLAB/Simulink (e.g. TLC) · Strong understanding of C, compilers and build toolchains, specifically for ARM targets · Experience of real-time control and operating systems · Experience with software version control systems (e.g. Git) · First class degree or upper 2nd in Engineering, Electronics, Mathematics, Computer Science, or other highly quantitative field (or equivalent experience)
Desirable · Background in Motorsport/Automotive control systems and electronics · Knowledge of communication protocols (CAN, Ethernet) · Experience of SIL and HIL test tools · Knowledge of continuous integration tools, e.g. Jenkins · An understanding of (MATLAB) unit testing frameworks · Demonstrable interest in embedded microprocessors
Values and Behaviours · Good communicator, with the ability to capture information quickly and accurately. · Self-motivated and well organised, able to work on tasks independently. · Able to communicate confidently in a customer facing role. · Passion for innovation, new technologies and industry trends. · Drive and commitment to see activities through to completion. · Meets deadlines matching pace to the urgency of the situation.