At Raspberry Pi, we are proud to foster an environment where those who work with us can do what they love and do it well. By joining Raspberry Pi, you are adding to a lean and passionate team that is dedicated to democratising technology and giving affordable access to computing tools to people across the globe.
You'll join our Software Engineering team, working specifically on the applications that our users run on their own computers, such as Raspberry Pi Imager. Day to day, this means designing, building, and maintaining cross-platform desktop software — writing and reviewing C/C++ code, diagnosing and fixing platform-specific issues across Linux, Windows, and macOS, and packaging and releasing builds for each platform. You'll work with a high degree of independence: we trust our engineers to own problems end-to-end and to make sound technical decisions, while collaborating closely with the rest of the team on design and direction. This is a hands-on engineering role rather than a management one.
This position is based on site at our offices in Cambridge, UK, with a minimum expectation of 80% in- office working. It is a full-time, permanent role.
About Raspberry Pi
Founded as a charity in 2008 and selling its first computer in 2012, today Raspberry Pi is two separate organisations in two locations:
- Here at Raspberry Pi Ltd, we build best-selling computers, microcontrollers, and support software for industrial and embedded customers as well as home users worldwide.
- The Raspberry Pi Foundation is a charity dedicated to enabling all young people to realise their potential through computing.
Key Responsibilities
We are looking for someone to perform the following tasks:
- Develop and maintain cross-platform desktop applications, including Raspberry Pi Imager and the Windows and macOS ports of Raspberry Pi Connect.
- Write clean, well tested, maintainable C and C++ across Linux, Windows, and macOS.
- Build, package, sign, and release software for multiple platforms (including macOS notarisation and Windows installers).
- Investigate and resolve platform-specific bugs spanning the application, OS, and occasionally lower layers of the stack.
- Contribute to architecture and design decisions, and take part in code review.
- Collaborate with colleagues across firmware, kernel, and applications to deliver vertically integrated features.