Senior Software Engineer

Cambridge, UK office-based or hybrid

About the company

We are a UK-based R&D subsidiary of our German parent company Maschinenfabrik Reinhausen GmbH, who are a specialist in the design and manufacture of power electronics for high power applications such as power transmission and renewable energy generation.

In Cambridge, we develop technology and contribute to industrial product developments. We are currently a small, friendly team looking to expand our software capability.

Role Summary

We are looking for an enthusiastic software engineer, experienced in embedded processor development. The role will involve working on various embedded systems and contributing to the full software development lifecycle. We work on a mixture of R&D and product developments as required by our parent company.

As a team, we develop systems primarily targeted at power electronics applications. We mostly work remotely but come together as required at our office for lab-based work or some face-to-face time. You can choose the working arrangement that suits you best – fully office-based or mostly remote. The only thing we ask is that you are able to attend the office when required for lab-testing.

We regularly work alongside our colleagues in Germany and therefore occasional travel is required. They are based in Regensburg, Bavaria, which is a rather nice place to visit and close to Nuremberg and Munich.

Our embedded systems range from small microcontroller (e.g., STM32) based bare-metal applications up to larger embedded Linux systems running on multi-core SoCs (e.g., Xilinx Zynq Ultra-scale). Therefore, there is a good variety in the work ranging from programming hardware peripherals to writing multi-threaded user-land applications or kernel drivers for Linux. We do a lot of interesting work with communications protocols and so experience or an interest in this would be good.

We have legacy code written in C, which needs occasional support, and we are looking at writing more C++ as we move forward. Maybe we will look at Rust? Alongside the embedded software, we have PC tools written in C#, many scripts written in Python, Bash and Awk etc. We don’t expect you to be an expert in any of these scripting languages but being able to modify or create tools using them will be required.

We generally develop on Linux computers and use a variety of toolchains. We use Git for source control and Redmine/Jira for change management (depending on the project). We use various debuggers and try to develop in an IDE/editor agnostic fashion where possible so you can use your favourite tools.

Being able to communicate is important, as the role will involve liaison with FPGA and power electronics engineers in order to elicit requirements for the code. We often work in an agile way although some projects for industrial applications will require more process: documentation, test etc.

If this all sounds good, then we would love to meet you and show you more of the interesting work that we do here. We recognize that the traditional technical quiz-style interview doesn’t work for everyone, so we invite applicants to share with us their preferred way to show off their technical skills. (We can still do an embedded C test if you like!) You can bring some code that you’ve written to discuss, or we can give you a few technical challenges to do, which we’ll leave you alone with Google to complete.

About You

Essential Skills