We are looking for a talented SoC Software Simulation Architect to join our team on a permanent basis. This position will be based in our Kings Langley office.
Our SoC development process relies on having simulation platforms on which we can develop software well before the new chip exists. To achieve this the SoC Software Simulation Architect’s role is to:
- Own all aspects of our Virtual Platform architecture, implementation, delivery and maintenance to allow both the internal team and customers to develop complex software in advance of silicon being available.
- Frequently evaluate and develop our software simulation capabilities to keep us at the leading edge of both modelling technologies and robust development practices.
Why work for Sondrel?
- You will be exposed to cutting-edge technologies.
- Opportunities to work on projects for AI, Automotive, Fintech, IoT, and SSD applications.
- 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.
- Design Virtual Platforms for new SoCs using our internal and 3rd party models
- Take ownership of our C++ model development framework and expand it.
- Collaborate with Hardware and Software teams to design new and improve existing Virtual Platform tools & debug infrastructure (currently C++ & Qt)
- Proactively seek to understand and provide suitable interfaces to extend the platform (e.g. HW/SW co-simulation using System Verilog Direct Programming Interface (DPI))
- Maintain and extend existing high-quality continuous integration pipelines
- Keep VP documentation up to date and share key information to spread knowledge throughout the team.
- Become a domain expert, understanding how other major companies solve similar problems and making sure that our solutions are always market leading.
- Have technical discussions with potential customers to understand their needs and establish how/if we can make a difference to their projects.
- As the workload increases recruit and manage a team of engineers to provide these platforms.
- Develop new and improve existing C++/SystemC models of peripheral IP, using Boost and STL libraries, and your excellent Object-Oriented skills.
- Support existing software simulation platforms for video and AI SoCs, solving any problems that arise.
- Wrap CPU models (typically IASim/QEMU models of ARM or MIPS) and integrate into the framework.
- Automate unit, functional and system testing.
- Take a self-disciplined approach, managing the priorities of the work assigned to you carefully to make the projects succeed.
- Participate in peer review processes, giving constructive feedback to others and addressing feedback received yourself in a positive manner.
- Develop scripts in bash and python.
- Recruit top quality engineers to work in your team.
- Use your excellent spoken and written English skills to provide case study content for publication, and presentations to show potential customers how we can help them succeed.
Director of Software Engineering
Engineers, Sales Managers, HR
- Customers – Develops relationships with potential customers and is the main point of contact for existing customers for all Software simulation components.
- Suppliers – Develops and maintains relationships with software model suppliers, e.g. ARM, Imperas, Synopsys, Cadence
- Open source community – e.g. QEMU
- A bachelor’s degree/masters or bachelor’s degree in a related subject with 6+ years practical experience
Skills & Experience:
- Typically, 6+ years’ experience.
- Excellent knowledge of modern C++ 11, or C++14 or later standards.
- Solid Object Orientated design knowledge
- Sound understanding of multithreading
- Excellent scripting experience (bash / python)
- Basic understanding of Hardware architecture (interrupts, busses, HW protocols like SPI, I2C etc)
- Continuous integration experience (Jenkins or similar)
- Strong problem-solving skills
- Excellent verbal and written English, and the ability to proactively communicate.
- Proven capability as a problem solver with an ability to work individually or as part of a team.
- Able to evaluate issues and define solutions and provides advice and guidance to less experienced team members.
- Able to lead and contribute to technical team and departmental discussions.
- Contributes to the development of technical sales documents such as a Statement of Work and relating with customers at all stages of sales interaction.
The following skills would be desirable:
- Strong understanding and experience of git source
- Linux Kernel experience
- STL and Boost Libraries
- System C knowledge
- QT framework knowledge
- Ability to read HDL code (VHDL, Verilog)
- Enthusiasm essential – this hire must enthuse potential customers!
- Excellent leadership, communication and negotiation skills and the ability to manage successfully.
- Able to recognise and develop new business opportunities while providing feedback for technical innovation.
- Self-organisation and ability to respond to changing priorities quickly with excellent time management skills.
- Team player with the ability to guide and mentor more junior team members.
- Ability to work under pressure with solid organisational and problem-solving skills.
- Self-motivated and able to work under own initiative with excellent attention to detail.
- A willingness to travel occasionally to meet potential customers.
Remuneration & Benefits:
- Competitive Annual Salary with Annual Performance Bonus
- Flexible working hours
- Pension Scheme