Arm
Sheffield
I completed my industrial placement at Arm in a team that checks chip designs before they are manufactured. The placement introduced me to the scale of engineering work in industry, where changes are reviewed carefully and tested through large simulation environments. Much of my work was about understanding whether the team’s tests were exercising the behaviours they were meant to cover, and what the results did or did not prove. I worked on tasks connected with simulation evidence, test coverage, automation and consistency checking across technical documents and source files. As the placement progressed, the work became less prescribed, so I had to decide what evidence to collect and how to narrow down unclear problems. I also learnt how important clear communication is when several engineers need to trust the same result.
My role was to improve part of the team’s verification process. I extended an existing method for measuring test effectiveness so that it covered more detailed behaviours, then investigated cases where expected results were still missing. This involved creating focused tests, reviewing simulation output, comparing intended behaviour with what was actually possible, and updating the measurement approach when the original expectation was not realistic. I also contributed to internal tooling. I helped make generated verification checks easier to manage by working on automation for removing and regenerating them more safely. In a separate task, I created an AI-assisted comparison tool that brings together related technical information from different places and highlights differences for engineers to review. My contribution was therefore a mix of debugging, evidence gathering, automation and tool development.
I developed my understanding of hardware verification and learnt how simulation-based testing is used in industry. I used SystemVerilog and learnt UVM in a much larger environment than I had worked with before. I also gained practical experience with test coverage: how it is planned, how it is collected, and how to investigate a result that looks wrong or incomplete. I became more confident reading simulation traces, using waveforms, running focused tests and adding temporary logging to follow behaviour through different parts of a test environment. I also used profiling tools to check simulation performance and wrote scripts to automate repetitive engineering tasks. Through the AI-assisted comparison tool, I learnt how to structure a technical audit so that evidence, assumptions and unresolved cases remain visible.
I became better at dealing with unclear problems. Earlier in the placement, I could spend too long trying to solve something by myself before asking for help. I gradually developed a more useful approach: reproduce the issue, reduce its scope, collect the relevant evidence, and then ask a specific question and made discussions shorter and more productive. I also improved how I responded to feedback. In code reviews, I learnt to test suggestions and explain what I found, rather than accepting or rejecting comments too quickly. The placement gave me more experience communicating with engineers outside my immediate team, especially when I needed to understand who owned a source of information or why a decision had been made. Presenting advice to new interns also helped me adapt my explanations for people with less background knowledge.