Developing quality embedded software (typically drivers, tests, scripts and associated documentation) either for internal SoCs or sometimes for external clients
Adding new features, optimizing code, porting to different architectures.
Debugging code and embedded system issues, with the support of both the hardware and software teams to root cause problems which may be in the software, the PCB, or the silicon.
Releasing of software and patches to customers including responding to customer queries
Maintaining and extending existing continuous integration and testing
Keeping documentation up to date and sharing key information via wiki pages to spread knowledge throughout the team.
Duties / Activities :
Developing high quality drivers, tests, infrastructure and other low-level software in C, targeted at embedded platforms.
Pre-silicon this will typically be using FPGA, Emulation, Virtual Platforms and simulation to prove the SoC and software work together properly before the design is committed to silicon.
Post silicon bring up and validation, finding unexpected behaviour, hypothesizing the reason for it, then investigating to root cause and fix or work around the problem (if it cannot be fixed)
Participation in peer review processes, giving constructive feedback to others and addressing feedback received yourself in a positive manner
Managing the priorities of the work assigned to you carefully to make the projects succeed
Where possible we open source our drivers (Familiarity with up-streaming would be useful, but not essential)
Skills and Attributes :
Excellent C programming language skills
Must have Embedded Software experience
Strong problem-solving skills
Python or Bash Scripting language skills
Good understanding and experience of git source control
Prepared to gather opinions and suggestions on how to solve issues from other members of the team
Able to use an oscilloscope, or interest in learning such skills
Very good spoken and written English language skills.
A Degree in a relevant subject is essential for this position.
Remuneration / Benefits :
Competitive remuneration including a company financial bonus
Fantastic opportunity to join a rapidly growing cutting-edge design company
Excellent training and career-progression opportunities with the option for exemplary candidates to lead and manage their own team.