At JetBrains, we are passionate about the way AI transforms software engineering.
The Machine Learning (ML) division at JetBrains Research explores ways to use ML techniques and agentic approaches to help developers and enhance software development processes. We aim to improve ML adoption for code by turning the latest academic advances into practical applications.
This page presents an overview of our research teams and collaboration opportunities.
This team focuses on tasks around code modeling and code generation.
A set of benchmarks for tasks that require project-level information to solve: code completion, generation, summarization, error fixing, and more.
An initiative aimed at organizing, fine-tuning, training models for Kotlin, as well as researching how to make the most of limited data for less popular languages.
The practice of studying, evaluating, and developing models that use project-wide information through retrieval techniques, expanding the input size, and optimal context building.
This team is working on training generative models on the history of software project evolution.
This team's goal is to enable better decision-making for JetBrains AI agents.
The two main directions of its research are:
With the emergence of code-fluent LLMs, programming practices are changing. At the same time, the environments need to change to provide an optimal human-AI experience (HAX) in the IDE.
Work in this direction includes prototyping AI functionality integration into existing programming environments and developers' workflows, ensuring intuitive and efficient experiences.
This research area involves exploring how programmers use and perceive AI assistants, identifying the challenges they face and the benefits these tools bring, to better align AI with the real-world needs of developers.
Our efforts in this field include identifying, evaluating, and adjusting critical aspects of AI assistants' output, from correctness to understandability, while also ensuring these tools truly support developers in their tasks.
Federated learning for software engineering tasks
To effectively apply machine learning to software development requires vast, real-world codebase insights, and traditional centralized methodologies often compromise data privacy. To tackle this, we're exploring federated learning techniques for efficient, privacy-preserving solutions.