← Back to All Placements

Colby McKim

Verification Intern

Arm
Manchester

Summary

During my placement I developed several technical skills through the design and implementation of the Skeleton Testbench Generator. I gained a deeper understanding of the Media verification environment by studying existing testbench architectures, verification methodologies, and the development and testing flows used across the team. My Python programming skills improved significantly as I created scripts to automate the generation of verification environments and produce reproducible outputs. I also gained experience in AI-assisted software development by integrating Codex into the workflow, learning how to use large language models effectively while minimising their non-deterministic behaviour through structured prompt workflows and JSON-based configuration. In addition, I strengthened my understanding of software architecture by redesigning the tool into a modular, AI-driven system that could be adapted across different teams. Finally, I enhanced my debugging and testing skills by implementing an iterative workflow that automatically corrected errors until a valid, reproducible testbench was produced.

Role and Contributions

My role as a Media Verification Intern has focused on developing the Skeleton Testbench Generator. The tool was originally created to provide a consistent testbench structure across Media units and simplify the creation of verification environments. My initial work extended the existing GUI-based application to preserve its established workflow. After presenting it to senior engineers, the main feedback was that it would provide greater value if integrated directly into Codex. I therefore redesigned the project around an AI-assisted workflow. A key challenge was balancing the flexibility of large language models with the determinism required for verification. I addressed this with a structured generation process: 1. Users collaborate with Codex to define the testbench structure and configuration. 2. Codex records decisions in JSON files and generates a Python script. 3. Codex executes the generator, automatically resolving issues until the testbench is generated successfully. 4. The final output is a reproducible bundle containing the generated testbench, configuration files, and generation script. This workflow simplifies the user experience while ensuring consistent, reproducible results. A follow-up presentation received significantly more positive feedback, with engineers recognising its portability across teams, projects, and verification environments.

Technical Skills

During my placement I developed several technical skills through the design and implementation of the Skeleton Testbench Generator. I gained a deeper understanding of the Media verification environment by studying existing testbench architectures, verification methodologies, and the development and testing flows used across the team. My Python programming skills improved significantly as I created scripts to automate the generation of verification environments and produce reproducible outputs. I also gained experience in AI-assisted software development by integrating Codex into the workflow, learning how to use large language models effectively while minimising their non-deterministic behaviour through structured prompt workflows and JSON-based configuration. In addition, I strengthened my understanding of software architecture by redesigning the tool into a modular, AI-driven system that could be adapted across different teams. Finally, I enhanced my debugging and testing skills by implementing an iterative workflow that automatically corrected errors until a valid, reproducible testbench was produced.

Professional Skills

During my placement I developed a range of non-technical skills that have improved my effectiveness as an engineer. Presenting my work to senior engineers gave me confidence in my communication skills, requiring me to explain subtleties and what sets my work apart and then presenting this to a larger audience gave me confidence in public speaking. Feedback from these presentations also helped me develop adaptability, leading me to redesign the tool based on the needs of the end users. Working on an open-ended project improved my problem-solving and independent learning skills, as I had to explore unfamiliar concepts.

Tags

Software AI Verification