Embedded Software Engineer
Cambridge, United Kingdom
Software Consultants at TTP develop solutions that make a difference to people’s lives, grow our clients’ businesses and help our business thrive. These can be in a wide range of application areas – for example developing an end-to-end software stack for connected medical devices, bespoke protocols for safety-critical radio communications, or an analytics GUI for the industrial IoT. Projects may last from a few weeks to a few years.
You will be involved in all stages of software and product development including analysis, system architecture, prototype design, implementation and test development. You will contribute to and lead ambitious projects, working collaboratively in multi-disciplinary teams with a high degree of devolved responsibility. Your project planning skills and judgement will enable you to balance carefully the uncertainties of R&D with time and budget constraints.
The essential requirements for this role are:
- Familiarity in developing real-time software for embedded control systems (bare metal and RTOS) in C/C++.
- Experience developing application software to interface with embedded systems for test automation, user interface or non-real time control using languages such as Python, C# or C++.
- Capability in interfacing embedded software with peripherals at low level (e.g. SPI, I2C, UART, USB) as well as high level (e.g. Modbus, CAN, TCP/IP).
- A good understanding of basic electronics with ability to read schematics, closely cooperate with electronic engineers and to comfortably use oscilloscopes, logic analysers and other hardware-focused test equipment.
- Solid understanding of the fundamental principles of engineering and basic physics with ability to cooperate in multi-disciplinary project teams.
- Ability to interactively discuss complex technical topics with clients in a personal, clear and plain-speaking fashion, by email, during conference calls and during face to face meetings.
- Strong candidates will have a 1st or Upper 2nd class degree from a leading University in Computer Science, Mathematics, Physics, Engineering or a related subject.
Personal skills typically include:
- A hands-on attitude. You will enjoy applying your software skills in the development of new technologies and products.
- Insatiable curiosity. Whether it’s new technology or how a business makes money, you dig deeper to generate valuable insight.
- Communication skills. You enjoy collaborating and presenting your work to others. Explaining why your work matters to those unfamiliar with your field is a key skill.
- Drive. You take on new responsibilities, seek challenging objectives and pursue them with tenacity and pragmatism.
Candidates with greater experience will increasingly fulfil these additional requirements:
- At least 3-5 years’ experience developing embedded software in a commercial, ideally regulated software development environment.
- Experience working under a quality management system (e.g. ISO13485) with emphasis on Software Development Lifecycle (e.g. IEC62304) with consideration of risk management processes (e.g. ISO14971) processes
- Experience programming for operating systems such as (Embedded) Linux, QNX, Windows, iOS, Android.
- Employer pension contribution of 12% (+3% personal contribution)
- Profit related bonus
- Enhanced share purchase scheme
- Private Medical Insurance
- Life insurance
- 25 days’ annual holiday plus bank holidays
- Discounts and memberships to local sports facilities and the theatre
- Cycle to Work scheme
- A comprehensive relocation package is also available, if applicable.