Sondrel designs some of the most complex SoCs (System on Chips) in the world, and a host of embedded software is required right from the early stages of chip design all the way through to delivering a silicon tested board support package to customers. We also support our customers in a range of other embedded projects where we are brought in to solve a specific problem or need. This gives us exposure to a range of technologies and working practices.
The embedded Software written by the Sondrel team can be either Linux kernel device drivers, a lightweight RTOS, or just bare metal code. We have multiple projects running simultaneously so there are opportunities to try something new and grow your skills. We want someone who wants to be right down there close to the hardware, debugging not only the Software but teaming up with hardware engineers to debug issues that may well turn out to be the silicon or sometimes the PCB. You may be asked to upstream some of the open source software that you write.
There are several roles available from Graduate to Senior Software Design Engineer positions, and are currently based at our Kings Langley (Hertfordshire) office, although there may be opportunities in Bristol in the near future.
Why work for Sondrel?
- You will be exposed to cutting-edge technologies and work on projects down to 7nm
- Opportunity to work on applications such as AI, Automotive, Fintech and Internet of Things (IoT)
- Work for one of Europe's leading concept-to-silicon design centres and play a key role in working on a variety of exciting projects
- Become an integral member of a truly global business with excellent opportunities for continued learning and skill development.
- Developing quality embedded software (typically drivers, tests, scripts and associated documentation).
- Integrating code from different sources to produce a BSP (Board Support Package)
- 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 itself
- 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.
- Developing high quality drivers, tests, infrastructure and other low-level software in C, targeted at embedded Linux platforms, real time operating systems, and sometimes bare metal. 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 and 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
- Proactively identifying areas of potential improvement in tool selection and processes
- Self-disciplined approach, managing the priorities of the work assigned to you carefully to make the projects succeed
- Adapting to different working practices when working on Sondrel’s customers own embedded projects, and providing feedback to the project manager.
- You may be asked to open source some of the code that you write, depending on which projects you are working on (Familiarity with up-streaming would be useful, but not essential)
- You may be asked to mentor more junior members of the team from time to time as your career progresses.
Skills and Attributes:
- Strong problem-solving skills
- Good communicator
- Be able to work independently, or a part of a team, and be able to mentor other team members
- Be comfortable interfacing with suppliers and customers
- You may already create your own embedded software at home as a hobby
- ARM or MIPS architecture experience
- Familiarity or an interest in the Linux kernel
- Experience of up-streaming code to the open-source community (specifically Linux kernel)
- Excellent C programming language skills
- Python or bash scripting language skills
- An understanding of the principles of source control – experience with Git would be ideal
- Ability or interest in learning how to use an oscilloscope
- Very good spoken and written English language skills.
- You would not hesitate to make use of a whiteboard with other members of the team to gather opinions and suggestions on how to solve issues
A Bachelors, Masters or PhD 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.