This article is published in the February 2025 issue.

Undergrad Award Winner Q&A: Transforming Software Engineering with Large Language Models


By Alejandro Velasco Dimate (CRA-E Fellow, College of William & Mary) and Emma McDonald (CRA-E Fellow, University of Alberta)

Federico Cassano, B.S. in Cybersecurity and Economics, Northeastern University

This Q&A highlight features Federico Cassano, a Finalist in the 2024 CRA Outstanding Undergraduate Researchers award program. Federico is an undergraduate student at Northeastern University majoring in Cybersecurity and Economics. 

How did you get started with research?

I got into research because I wanted to contribute to science and create knowledge that could help others. It started by emailing the professor from my first CS course, Arjun Guha, to see if I could get involved in his work. He connected me with one of his Ph.D. students, and I worked on a project that used satisfiability to solve dependency constraints in package managers. I mostly helped with the software side of things, but also got to contribute to writing the paper, which made the whole experience really engaging and eye-opening. Later, I discovered my passion for programming languages, and during a summer project with my professor, I got the chance to evaluate language models across different programming languages. Even though the models were not as advanced as they are now, I was amazed by their potential, and that experience inspired me to focus my research on the intersection of programming languages and machine learning.

What can you tell us about your research?

My research focuses on using deep learning, particularly large language models (LLMs), to make software engineering more efficient and accessible. These models are incredibly powerful, because they can generate code from instructions or explain code in plain language. But one of the big challenges is that they perform really well with popular programming languages, like Python or JavaScript, but struggle with less common ones. That gap got me curious, so I started digging into why this happens and how to fix it. One of my projects looked at how well these LLMs work across a wide range of programming languages, and we found that their performance drops significantly for languages that are not widely used, mostly because there is less training data available. To tackle this, I worked on improving model performance for underrepresented languages. At first, we tried existing approaches, like training the models on extra data sets specific to those languages, but that did not really help. So we went back to the drawing board and came up with a transfer learning technique. This allowed the model to use what it already knows about popular languages to do better with less common ones. Our work was published at OOPSLA, which was a big milestone for me. Even more exciting, the technique was adopted by the StarCoder 2 project, a collaboration between Nvidia and ServiceNow, to enhance their model’s abilities with underrepresented languages. It has also been exciting to see similar ideas influence other labs, like the team at Meta working on their Llama 3 model. Seeing my work make a real-world impact has been such a rewarding experience.

What can you tell us about your research collaborators?

I am part of Arjun Guha’s research group, where I have had the chance to work on a variety of exciting projects. The team I work with often changes depending on the project, which has given me the opportunity to collaborate with a wide range of people. For example, I worked closely with Francesca Lucchetti, a Ph.D. student from Italy, and we really clicked as a team. These collaborations have been a big part of my research journey and have helped me grow both technically and personally. Outside of that, I also co-founded a small, independent research group with my roommate: GammaTau. We take on projects that are not tied to any formal academic program, which allows us to explore creative and experimental ideas. It has been a fun and rewarding way to complement the work I do within Arjun Guha’s group. These experiences, both in structured and independent settings, have been instrumental in shaping my research and the way I approach problem-solving.

What aspects of doing research do you most like?

What I enjoy most about doing research is the chance to connect with other researchers. There is something special about those conversations where you share ideas, talk about your work, and see the excitement in someone’s eyes as they discuss their own projects. That kind of passion and energy is hard to find in other areas, and it is what makes research so rewarding for me. On the other hand, I am not a big fan of the traditional paper-writing process. While it is important, it feels like an outdated way to share knowledge. I think there is a lot of potential to improve how we exchange information to make it more efficient and meaningful for everyone involved.

What qualities make a successful researcher? 

I think a successful researcher needs to approach problems with a first-principles mindset. It is not enough to simply know about previous work; you need to deeply understand how it works, why it works, and what its limitations are. This level of understanding is essential because research builds on existing knowledge. I like to think of knowledge as a growing circle. Each new piece of research expands the circle in a specific direction. To make a meaningful contribution, you need to understand where the circle is growing and ensure that your work is adding something new and valuable.

Do you have any advice for other students also interested in deep learning research?

My biggest advice is to reach out to your professors and ask if they have projects you can get involved in. Many are open to working with undergraduate students, which is a great way to learn and gain mentorship. At the same time, it is also possible to take an independent path. I know people who have pursued research on their own, studying the literature and starting projects without an advisor, and they have been successful. Some areas, like interpretability in language models, do not require a lot of resources, which makes them accessible for independent work. Whether you collaborate with a professor or go solo, the most important thing is to stay curious, keep learning, and look for ways to contribute.

Learn More and Get Involved

The CRA Outstanding Undergraduate Researchers Award program highlights exceptional students like Federico Cassano who are making significant contributions to computing research. We encourage you to explore the bios of past award winners on the CRA website to see the range of impactful work being done by undergraduate researchers.

Each fall, CRA opens the call for nominations for this prestigious award. Faculty members, department chairs, and other institutional representatives are invited to submit nominations to recognize outstanding undergraduate researchers at their institutions. Stay tuned for more details later this year, and consider nominating a student who has demonstrated excellence in research.