Qualcomm Technologies International, Ltd (QTIL)
Cambridge
I completed a placement within the Voice and Music Tools team at Qualcomm Technologies International, Ltd (QTIL). The team develops and maintains a Python-based debugging tool used by engineers to support the development and debugging of QTIL audio chips. Specifically, I maintained and developed features for the debugger tool, as well as the CI infrastructure supporting its testing and delivery. Throughout, I worked alongside other experienced engineers, gaining practical experience of working within a professional environment. My placement provided exposure to common practices within software development such as debugging, automated testing and continuous integration, while also allowing me to develop soft skills such as my communication. Overall, the placement allowed me to apply knowledge from my studies to real-world engineering problems and develop a stronger understanding of professional software engineering practices.
During my placement, I contributed to the development and maintenance of a Python-based debugging tool and its CI infrastructure. A significant area of my work involved improving the tool’s coredump loading performance by redesigning the existing mechanism to use lazy loading so data was only fetched when required rather than during startup. I also contributed to the CI infrastructure by implementing and maintaining jobs, resolving issues affecting automated testing and introducing a job that automatically emailed links to test results, making outcomes more accessible to engineers. Furthermore, I added a script to use a YKUSH3 USB hub to control connected devices as part of automated CI testing. Alongside these projects, I fixed bugs and investigated issues across the debugging tool. This involved using version control and submitting changes for review and integration. I regularly collaborated with experienced engineers to investigate problems and understand unfamiliar parts of the system. Through these contributions, I significantly improved my Python skills, gained practical CI/CD experience and progressively took greater ownership of my work.
From implementing features in the debugger tool and seeking guidance from experienced engineers, I developed my Python programming skills significantly. I also gained practical experience with CI/CD, automated testing and version control. In addition, I developed a stronger understanding of the importance of properly developing and running unit tests to identify how changes to a system can affect the wider functionality of the tool. Through working with a production codebase, I enhanced my software problem-solving skills by learning to investigate issues more systematically and considering the impact of the solutions I implement before introducing them.
During my placement, I improved my communication and collaboration skills through working with other engineers on my team, participating in regular team meetings to discuss issues as well as standups to discuss blockers and progress. This resulted in me becoming more confident communicating technical issues clearly, asking relevant questions and seeking guidance when necessary. I also developed greater independence and ownership of my work, learning to manage tasks effectively while recognising when collaboration was needed. Through working with colleagues from different technical backgrounds, I became more comfortable adapting this communication style and considering different perspectives when solving problems.