Blog

Montréal and GEODES

Chapter 4ResearchProgram RepairUniversité de Montréal

A research internship at Université de Montréal, working on how AI agents repair software, and how we know when they get it wrong.

Feb – Aug 2026 · Montréal

The GEODES research group gathered on a dock by a lake in summer 2026

In February 2026 I arrived in Montréal for a software-engineering research internship at Université de Montréal, in the GEODES group at DIRO, working with Professor Houari Sahraoui. It was my final ENSIA internship, and my first time doing research full-time.

Automated program repair

The topic was automated program repair (APR): given a bug, can a system produce a correct patch on its own? LLM-based agents have made this much more practical. They read the code, run tests, and iterate. But they also raise new questions that my internship focused on.

What should the agent read? Agents spend most of their budget reading code and context. I reviewed existing APR pipelines and found gaps in how they choose and use context. I then proposed a context-retrieval approach for agentic repair that keeps repair performance the same while using 14% fewer tokens. That work became my first manuscript, CROCode: Towards Frugal Coding Agents through Context Optimization, which has its own post.

Can the agent learn from the validator? When a patch fails, the validator’s feedback says something about why. I applied cross-task knowledge distillation to help LLMs generate better patches from that feedback.

Is a passing patch actually correct? A patch can pass every test and still be wrong, or break in production. I built an LLM-as-Jury, a panel of models that judges candidate patches, to catch these “plausible but incorrect” fixes.

Autumn trail near Montréal

The people

The photo at the top is the GEODES group in summer 2026. Research turned out to be far more collaborative than I expected: weekly discussions, people reading each other’s drafts, and a lot of “have you tried…” in the hallway.

By the end of the summer I knew I didn’t want to stop. That’s the next chapter.