EMBEDDED SOFTWARE, EMEA AUTOMOTIVE GROUP
Our mission is to support the evolution of the automotive sector towards an efficient, sustainable low-carbon future.
As the industry responds to seismic changes in the automotive market - and across society as a whole - we remain one of its most trusted and innovative partners, leading the way in high-calibre research across engines, drivelines and hybrid systems, as well as supporting the development of emerging technologies such as autonomous and connected vehicles.
Software engineering plays a key role in helping our customers design & implement complex & interconnected software systems and supports our ability to deliver turnkey development of vehicle systems.
Recently the software team have been working to deliver a number of diverse projects, spanning multiple vehicle systems. Some examples include:
- Development of software for a Battery Management System, utilizing state-of-the-art multi-core processor
- "PICASSOS" (Proving Integrity of Complex Automotive System of Systems) Research Project, investigating more efficient ways to deliver safety-critical software
- Design & development of software units for a driveline system, integration of components from other teams & bench-top testing
- Whole life-cycle software development for an on-vehicle battery charging unit, with electronic hardware also developed by Ricardo
Software engineers typically work on embedded platforms, microcontrollers running within the vehicle, utilising the 'C' language (either written by hand or generated from MatLab/Simulink). Software engineers are relied on for their detailed knowledge of the embedded platform & to ensure that the code is high-quality and reliable in order to support either vehicle testing or production. The specifics of the development process employed varies depending on the project & needs of our clients.
Software engineers generally work as part of a wider team which might, for example, include functional safety engineers, electronic hardware designers & application specialists.
PRINCIPAL SOFTWARE ENGINEER - OVERVIEW
A new vacancy exists within Ricardo for a Principal Software Engineer. The successful candidate will have the opportunity to work on a range of different products & technology, with responsibility for application of systems engineering methodologies in order to provide the best solutions to our clients.
Everyday responsibilities will include:
- Taking responsibility for defining the approach & leading technical delivery of software engineering work products according to cost, quality and operational targets,
- Communication and cooperation with a multi-disciplinary project delivery team, clients and suppliers
- Engaging with our customers & business development team to understand the customer need, plan a technical approach to client projects and develop corresponding estimates & plans for delivery
- Improving delivery techniques; tools, procedures, work aids, etc.
- Supporting the wider team with regard to understanding software engineering processes & procedures
This role would be well suited to applicants who have substantial, proven embedded software engineering expertise across a variety of different applications.
The position will be located at Cambridge and you could also be expected to work 'on site' at the customer location for short periods. You should have a full driving license and be prepared to travel in the U.K and abroad occasionally for customer meetings.
Knowledge or experience in at least one of the following additional areas would be helpful, though not essential:
- working knowledge of ISO 26262 and applied it in the development of high-integrity software
- knowledge of electronics hardware and ability to understand electronic design schematics
- have been involved in the creation, roll-out and maintenance of software processes & procedures
- awareness of Model Based Design concepts & tools
- wide knowledge of automotive technologies, standards and protocols (e.g. CAN, AUTOSAR, OSEK, J1939, ISO 14229, Title 13)
- experience of working with networked systems and appreciation of failure modes and consequences, particularly in an automotive context
- use of a range of test methods and tools including unit/module testing, debuggers, communication bus analysers and system testing
If you are interested in this opportunity apply now!