CVAM R&D Senior Software Engineer
Senior embedded engineer developing complex firmware for vehicle diagnostic applications that talk to ECUs over CAN bus and forward data via Bluetooth and WLAN. Day to day spans software architecture, design, implementation, integration and testing in an Agile automotive team, primarily in C/C++ (plus .NET/Qt), with mentoring duties.
- Compensation
- Not disclosed
- Location
- Bengaluru, KA, India
- Work setup
- Remote
- Seniority
- Senior
- Employment
- Not specified
- Experience
- 5+ years
- Category
- Software engineering
- Posted
Skills
Must have
- Bachelor degree or relevant professional knowledge
- 5+ years software development experience incl. time in a software support environment
- Firmware programming in C and C++
- Strong understanding of object-orientation, design patterns, and unit-testing
- Knowledge of configuration and change management tools and processes
- Knowledge and experience of automated build and test tools
- Software lifecycle knowledge: requirement, design, code, test, deployment, maintenance, documentation
- Development experience with frameworks such as .NET, Qt, NHibernate
- Experience developing in an Agile environment with QA process and testing techniques
- Experience working at a senior level in multidisciplinary teams and mentoring junior staff
- Automotive diagnostics protocols: ISO14229, ISO15765, KW2000, ISO9141
- Basic project management
- Full UK driving licence
- Willing to travel to other sites in the UK and mainland Europe
- Fluent English
- Soft skills: result orientation, communication, analysis and organization, team player
Nice to have
- Familiarity with CAN bus protocols using appropriate ISO standards
- Experience developing with Bluetooth v4.2 and above
- Some knowledge of C#
- Basic knowledge of PIC micro assembly language
- Knowledge of microcontrollers and hardware schematics
- Automotive diagnostic system development experience
- Working in an Automotive environment
- Familiarity with build servers and continuous integration
- Working in or with international teams
Full description
Overview
The Senior Software Engineer will be responsible for the development of complex firmware software solutions for vehicle diagnostic applications communicating with vehicle ECUs via CAN bus and forwarding data using Bluetooth® and WLAN protocols. Ideally the candidate should be very familiar with CAN bus protocols using the appropriate ISO standards. Ideally the candidate will also have experience developing solutions using Bluetooth® version v4.2 and above.
The candidate will have experience working at a senior level within an embedded software development team and being experienced with all aspects of software development including software architecture and design,developing solutions in an Agile environment, development QA process and development testing techniques.Familiarisation with build servers and continuous integration would be an advantage.
Experience
The candidate should be educated to bachelor degree level or have the relevant professional knowledge and have more than 5 years’ experience in software development including a similar amount of time working in a software support environment. Working in an Automotive environment is desirable but not essential.
The candidate should also have experience working in multidisciplinary teams at a senior level promoting best practice and good design and have experience in mentoring junior staff. Working in or with international teams is desirable.
Areas of Responsibility / Tasks
- Responsible to analyse and/ or create software specifications for assigned high complexity modules/ components based on the information received from technical responsible (e.g. Software Project Manager, Project Manager).
- Provides effort estimations for allocated modules/ components.
- Agrees with technical responsible the technical content and terms of delivery.
- Responsible to define software architecture or contributes to the software architecture with specific information from his area of responsibility.
- Responsible for defining software design for allocated high complexity modules/ components/ functionalities and documents this step, according to established processes and methods.
- Responsible for implementing high complexity modules/ components according to established software specifications & design.
- Responsible for software integration activities for assigned project/s, based on software architecture and software specifications.
- Responsible for creating test specifications and executing tests for allocated high complexity modules/components, according to the development process.
- Responsible for creating integration test specifications at software system-level and executing integration tests.
- Responsible for organizing reviews after each development phase, for all his work products, according to the development process.