Arm
Cambridge
My placement at Arm has let me work on two very different projects: improving a performance-monitoring tool used by Windows-on-Arm developers, and speeding up software used in large-scale data search. I have shipped a feature to a public software release, made measurable improvements to real-world performance, and grown considerably in how I communicate, give feedback, and work within a team. The experience has given me real clarity on my career direction, confirming a strong interest in engineering that works close to the hardware, while keeping me open-minded about the breadth of engineering fields I have encountered along the way.
I am on a six-month placement at Arm's Cambridge office, working on software that helps Windows run well on Arm-powered computers. My main project is WindowsPerf, an open-source tool that helps engineers understand how efficiently a computer is using its CPU. Alongside this, I have been optimising DiskANN, a library used to search huge datasets. For WindowsPerf, my contributions include designing and shipping a new feature that lets WindowsPerf monitor many more aspects of a computer's performance concurrently. As for DiskANN, the optimisations that I have demonstrated to the engineers have showcased up to an 8x performance improvement for some tasks.
Both projects required me to learn unfamiliar material quickly. I studied how modern processors are built and how to measure their performance, and taught myself a new programming language, Rust, to work on code that runs close to the hardware. I learned to break large problems into stages: researching, designing, building, testing, and evaluating. My performance-monitoring feature required reasoning about multiple things happening at once, and about avoiding bugs that could crash the whole computer. Speeding up DiskANN pushed me to think creatively, experimenting with different approaches and using specialist tools to see exactly how my code ran on the processor, one instruction at a time.
Presenting my optimisation work to other engineers taught me to explain technical ideas at a pace that let people follow along, and to leave room for questions. Reviewing colleagues' code taught me how to give feedback that is honest and useful while being considerate of the effort behind someone's work. Splitting my time between an independent project and a collaborative one showed me the contrast between working individually and coordinating closely as part of a team, and I became noticeably more confident reaching out to others for help. Contributing to an open-source project also shaped how I communicate with a wide, varied audience, and getting to know engineers across the company gave me insight into fields far beyond my own.