Embecosm is one of the world's leading organisations for research into compiler technology. Embecosm
Type of Placements Offered
• 12-month placements • Summer and 6-month MEng placements also offered (to students doing a 12-month placement before or after)
(1) Requires 12-month placement. Additional summer or 6-month MEng placements in other years also offered; (2) Must either be studying software / computing or otherwise be able to show excellent programming skills; (3) Must hold a current passport; (4) No first year students; (5) Students must have permanent right to work in the UK after graduation
At least one new scholarship
Who we are and what we do
Embecosm is a global service provider with offices in the United Kingdom, Germany and representatives in USA and Asia. We deliver major projects involving open source compiler tool chains, embedded operating systems and silicon chip modelling, spanning the smallest deeply embedded processors to the largest high-performance computing systems, including those using RISC-V and ARM processors. We are increasingly using artificial intelligence, machine and deep learning as part of our offerings.
Among other tools, we support GCC, LLVM, Verilator, SystemC, Embedded Linux, FreeBSD and FreeRTOS. Our services include porting tools to new targets, implementing new board support packages (BSPs) for operating systems and architectures and maintaining and supporting existing tools and BSPs. Embecosm is one of the worlds leading organisations for research into compiler and operating system technology.
What you could be doing during your work placement
During your time at Embecosm, you will work on developing open source compilers or operating systems for customers, usually one or two of the following: GCC, LLVM, Verilator, Linux, FreeBSD or FreeRTOS. You should expect to spend up to 25% of your time with customers, very often outside the UK (one scholar spent time in California, Austria and Belgium during their placement). The work will be as part of one of Embecosm’s engineering teams, so you will receive close mentoring. You will also be expected to contribute to public projects during your time at Embecosm.
Meet one of our Scholars
University: University of Bath
Degree Course: MEng Computer Systems Engineering
What appeals to you about Electronics?
Electronics is fundamentally a hugely varied industry, but as soon as you look deeper, everything is very interconnected. This means that if you’re interested in digital, analog, hardware or software, there’s almost always something that you can learn from the study of Electronics. I have always been very interested in pure software, but it is the study of Electronics that provides the context to be able to implement and understand much more exciting applications of software.
Why did you want a scholarship with Embecosm?
Embecosm provides compilers and toolchains for hardware companies, which aligned perfectly with my interest in the boundary between hardware and software. In terms of the experience I could gain from my placement, I was really excited to learn more about how a large and complex piece of software such as a compiler is designed and how it all fits together.
What type of work have you been involved with during your placement?
I have been implementing, testing and fixing various aspects of C and C++ compilers for embedded targets, mainly focusing on the backend. The backend transforms a simplified intermediate language into optimal machine code for the processor, which could mean minimising the amount of instruction memory needed, the execution time of the program or even the energy usage. I have also attended two international conferences on the topic of compilers (GNU Tools Cauldron) and open source hardware design (OrConf).
What are your interests outside of work?
In my spare time I do a lot of cycling, whether it is training, racing or just enjoying the ride.
Meet one of our Engineers
Job Title: Compiler Engineer
Why I chose my degree programme
At university I studied a course covering both computer science and electronic engineering. I chose this because I like to understand how systems work from a high level (software) down to the low level fundamentals (how electronics work) to have a good understanding of all the various levels and then be able to solve problems across those different levels.
I particularly enjoyed studying the parts where there is a cross-over between the two disciplines, for example, computer architecture and how this can be implemented in HDLs.
Why I chose Embecosm
It is my enjoyment of low-level software/high-level electronics that lead me to my current employer, because compiler development requires a good understanding of how the various parts of computer architecture are implemented in hardware.
My experience at Embecosm
In my current role I develop backends for compilers, targeting our customers’ particular compilers. This involves optimizing the instructions generated by the compiler to minimise time, size or energy usage and building various tools to improve the experience of software developers. It is the latter part I enjoy the most as it requires me to think about and solve problems at a whole system level.
What I enjoy outside work
Outside of work, I run a video gaming community with some friends from secondary school. I also enjoy travelling and taking photos of the things I find.