Great research happens together

Most of our research runs jointly — with international university groups, software engineering and machine learning communities.

22

Active collaborations

Ongoing joint research across software engineering, AI, education, testing, and developer tools, from early exploration to applied work.

20

Institutions

A research network spanning universities and labs, bringing together different expertise and perspectives.

10

Countries

Our collaborators are in ten different countries across the world, including Europe, Asia and North America.

Selected collaborations

TU Delft · The Netherlands

2023
Active

Automatic Model Choice for Code Completion

A graduation project in the AI4SE Lab asked how an IDE can decide by itself which AI model suits a given code-completion task. Larger models give better suggestions at higher cost; smaller ones are cheaper and less capable. The resulting mechanism makes that trade-off from the complexity of the task, and it was deployed across all JetBrains products — a student project in Delft now running for millions of developers.

TU Delft
2023
ActiveDL4Code @ ICML 2026

LLM Adaptation for Coding Tasks

Large software projects often depend on older versions of libraries, even as APIs continue to evolve across releases. This creates a challenge for LLMs: they must maintain knowledge of multiple API versions, not merely the latest or most common one. However, current LLMs are trained on temporally mixed corpora and lack explicit mechanisms for such version-specific reasoning, leading to anachronistic errors - calling APIs as they exist in a different library version. To systematically evaluate this phenomenon, we introduce LibEvoBench, a multi-task benchmark spanning multiple versions of widely used Python libraries, along with a new metric, the Software Evolution Understanding Score (SEUS), to measure models' consistency when working with evolving APIs. Our results show that state-of-the-art models are largely version-oblivious: performance degrades for evolving APIs, while for stable APIs it remains the same across versions. Moreover, simply specifying the target version provides no benefit, while relevant documentation significantly boosts models' accuracy. These findings highlight a systematic limitation of current training paradigms and motivate new approaches for temporally grounded knowledge in code generation.

arXiv
2023
ActiveITiCSE 2026

Intelligent Teaching Assistant in Programming Education

Introductory programming (CS1) courses often struggle to support students' understanding of program execution. While visualizations can make execution processes explicit, their effectiveness depends on design and context, and empirical evidence for AI-generated visualizations remains limited. We propose Generated Animated Traces (GATs), AI-generated, analogy-based, narrated animations that coordinate source code, execution state, and conceptual analogies. We conduct a study at two institutions in CS1 courses (Python, N=961; Java N=151) comparing GATs to textual explanations. We measure immediate learning performance and experience, end-of-course engagement and exam performance. Results show that GATs can yield selective benefits for immediate learning, but benefits are context-dependent and short-term. We observe that GATs' influence on performance is moderated by learner engagement profiles. This finding underscores the importance of personalized approaches.

arXiv
2023
ActiveFSE 2026

Interactive and Aligned IDEs in the LLM Era

Benchmarks are essential for unified evaluation and reproducibility. The rapid rise of Artificial Intelligence for Software Engineering (AI4SE) has produced numerous benchmarks for tasks such as code generation and bug repair. However, this proliferation has led to major challenges: (1) fragmented knowledge across tasks, (2) difficulty in selecting contextually relevant benchmarks, (3) lack of standardization in benchmark creation, and (4) flaws that limit utility. Addressing these requires a dual approach: systematically mapping existing benchmarks for informed selection and defining unified guidelines for robust, adaptable benchmark development. We conduct a review of 247 studies, identifying 273 AI4SE benchmarks since 2014. We categorize them, analyze limitations, and expose gaps in current practices. Building on these insights, we introduce BenchScout, an extensible semantic search tool for locating suitable benchmarks. BenchScout employs automated clustering with contextual embeddings of benchmark-related studies, followed by dimensionality reduction. In a user study with 22 participants, BenchScout achieved usability, effectiveness, and intuitiveness scores of 4.5, 4.0, and 4.1 out of 5. To improve benchmarking standards, we propose BenchFrame, a unified framework for enhancing benchmark quality. Applying BenchFrame to HumanEval yielded HumanEvalNext, featuring corrected errors, improved language conversion, higher test coverage, and greater difficulty. Evaluating 10 state-of-the-art code models on HumanEval, HumanEvalPlus, and HumanEvalNext revealed average pass-at-1 drops of 31.22% and 19.94%, respectively, underscoring the need for continuous benchmark refinement. We further examine BenchFrame's scalability through an agentic pipeline and confirm its generalizability on the MBPP dataset. All review data, user study materials, and enhanced benchmarks are publicly released.

arXiv
2023
ActiveICST 2026

Observability and Fault Injection for LLM-Based Multi-Agent Systems in Software Engineering

Large Language Model-based multi-agent systems are increasingly explored for software engineering tasks, but they remain difficult to inspect, debug, and evaluate under controlled failures. We present llmmas-otel, a lightweight and framework-agnostic tool that combines OpenTelemetry-based distributed tracing with fault injection for LLM-based multi-agent systems in software engineering workflows. The tool instruments agent executions with trace-aligned telemetry across workflow phases, agent steps, inter-agent communication, tool calls, and LLM invocations, and supports targeted fault injection at selected interaction points. This makes it possible to compare baseline and faulty executions in a reproducible way and inspect the effects through aligned traces and run artifacts. We describe the motivation, architecture, implementation, current capabilities, and initial validation of the tool on a minimal demo workflow and a real LLM-based multi-agent system for software development.

IEEE
2023
ActiveQRS 2026

A Metamorphic Testing Approach to Diagnosing Memorization in LLM-Based Program Repair

LLM-based automated program repair (APR) techniques have shown promising results in reducing debugging costs. However, prior results can be affected by data leakage: large language models (LLMs) may memorize bug fixes when evaluation benchmarks overlap with their pretraining data, leading to inflated performance estimates. In this paper, we investigate whether we can better reveal data leakage by combining metamorphic testing (MT) with negative log-likelihood (NLL), which has been used in prior work as a proxy for memorization. We construct variant benchmarks by applying semantics-preserving transformations to two widely used datasets, Defects4J and GitBug-Java. Using these benchmarks, we evaluate the repair success rates of seven LLMs on both original and transformed versions, and analyze the relationship between performance degradation and NLL. Our results show that all evaluated state-of-the-art LLMs exhibit substantial drops in patch generation success rates on transformed benchmarks, ranging from -4.1% for GPT-4o to -15.98% for Llama-3.1. Furthermore, we find that this degradation strongly correlates with NLL on the original benchmarks, suggesting that models perform better on instances they are more likely to have memorized. These findings show that combining MT with NLL provides stronger and more reliable evidence of data leakage, while metamorphic testing alone can help mitigate its effects in LLM-based APR evaluations.

arXiv

Ways we can work together

Academic partnerships

We work with university groups on joint research — from focused studies and co-authored papers to PhD supervision and multi-year collaborations.

Research internships

We host early-career researchers and students for hands-on research, often turning internships into thesis work, publications, or longer collaborations.

Industry partnerships

We collaborate with technology partners and work together on topics of interest. In these partnerships, our research can help to improve models, tools, and developer workflows.

Open source

We publish benchmarks, datasets, tools, and research code so others can reproduce our results, extend them, and use them in their own work.

From our researchers

We wanted to know how a team's conversations change once GenAI is in the room. That is not a question usage data can answer — it needed a group that studies developers at work, and a year of doing it properly.
Agnia Sergeyuk
Agnia Sergeyuk
Team Lead, Human-AI Experience
Eye tracking inside a VR coding prototype was not something we could have built on our own. It took a studio that does this for a living, and a willingness to throw the first version away.
Ilya Zakharov
Ilya Zakharov
Senior Researcher
I arrived from TU Delft for a few months and stayed. Almost everything I know about running a study I learned on a live project rather than in a course.
Roham Koohestani
Roham Koohestani
Researcher

Start a conversation

Partner with us

Tell us who you are, the problem you're drawn to, and what a first step might look like. A rough idea is plenty — we'll take it from there.

collaborations@research.jetbrains.org
Join as a researcher

Early-career researchers from anywhere in the world work alongside our teams through research internships, many of them fully remote.

See research internships