Why did you choose to study at Imperial?
I grew up in the sticks and was torn between choosing music or computers to study at university as I enjoyed playing both saxophone and computer games. I ended up taking maths, music, and physics at A-level so that I could prolong my indecisiveness until eventually my physics teacher (noticing my passing interest in London for its music scene) told me to get a grip and apply to study Computing at Imperial. I did what I was told and I'm very thankful for his advice.
The deal was sealed after the interview day, as I came away both impressed with the facilities on offer, but also with a sense that I had been challenged in new ways rather than simply regurgitating from a textbook. They had forced me to think!
Tell us about your time at Imperial
I joined Imperial with very low confidence and having never written a line of code in my life. When I left, I had a sense of self-belief, a passion for computer science, and a feeling of accomplishment. Much of this was down to sheer hard work, but that was only possible because of the support network in place and the friends I made during the long hours spent hacking in the lab.
Can you tell us what you’ve done since Graduation?
Following an industrial placement at Arm during my time at Imperial, I joined full-time as a Graduate Engineer working on open-source system
software to support its CPU architecture. I quickly found myself drawn into Linux kernel development and, as luck would have it, I got the opportunity
to co-author the port to 64-bit Arm while the technology was still under wraps. My interest in low-level software led me to explore aspects of concurrency and weak memory ordering, in turn leading me to co-author some papers on the subject and ultimately produce a formal specification of the
Armv8 memory consistency model as part of the official architecture.
A decade on, I left my Distinguished Engineer position at Arm to join Google's Android systems team in London, where I continue to focus on the Linux kernel. I have been fortunate enough to work with the open-source community for all of my career, consequently co-maintaining a number of kernel subsystems as well as speaking regularly at conferences. It's quite a kick knowing that my code is running in literally billions of devices, but of course, my family blames me if anything in the house stops working.
How has what you learnt at Imperial helped you in your career so far?
Although the course contents played a crucial role in teaching me about computer science and its practical application, the real skill that I picked up at Imperial was the ability to learn. With technology changing so rapidly, it is absolutely vital to be able to pick up new skills and understand new developments quickly and independently.
That being said, the first year logic course felt like it rewired my brain and I think everybody on the planet should be forced to take it.
What would be your advice for current students?
Make connections, work hard, never stop learning and, most importantly, do something else in your free time. I had a lot of fun running the real ale society.