Internships
Register
Copyright © 2000—2025 JetBrains s.r.o.

Improve the “Extract method” refactoring for C#

Description

C# IDEs from JetBrains currently lack an option to simultaneously extract a function and substitute similar code in a file with the new function. The feature is popular in Java and Kotlin and would give you a real production experience while providing value to C# developers all over the world.

You will need to compare the refactoring’s implementations in Java and C#, learn about the differences between the languages and come up with compromises about where to limit the scope of the refactoring suggestion - for example:
    Does it make sense to consolidate more code by introducing an extra parameter?

    Is it worth adding a type parameter to match a similar block of code?

    Is it worth consolidating code if the change will erase the difference in variables’ names?

The task gives an opportunity to work with a complex problem area in an existing commercial project. You will gain experience working with existing large code bases and making incremental improvements to them in a responsible and maintainable manner. In case of a success, your project will be integrated into the project and save hours of work to thousands of developers across the globe.

Requirements

Programming skills in C#, Java or Kotlin

Strong analytical approach, attention to details

Nice-to-have:
Experience with parsers, AST, compiler APIs or LSP

Admission

Internship projects 2025-2026

Contact details

internship@jetbrains.com

Preferred internship location

Armenia
Cyprus
Czechia
Germany
Netherlands
Poland
Serbia
UK

Technologies

C#
.NET

Area

Development

Internship timing preferences

Flexible start

Candidate graduation status

Final-year students preferred