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

Convert Tuple to Named Type Refactoring for ReSharper/Rider

Description

Developers often start with a structural tuple types because it's sufficient for local code, but as the data flows across method boundaries or becomes part of a public API, tuples hurt clarity and evolution: unnamed positional members hide intent, adding or reordering elements is brittle, there's no place for argument validation, etc.

This project delivers a highly voted feature request for ReSharper/Rider — refactoring that converts tuple-like types, such as System.Tuple<> or System.ValueTuple<> into a first-class named type.

Using ReSharper's PSI (Program Structure Interface, the code model) you'll build an action with a small UI that generates a new type declaration and updates all usages while preserving the original semantics.

Requirements

  • Programming skills in C#, Java, or Kotlin

  • Fundamentals of PL/compilers: AST, types

  • Problem-solving: can turn a rough spec into a prototype

  • Communication: written/spoken English and willingness to collaborate asynchronously

Nice-to-haves:

  • Hands-on IDE tooling (ReSharper/Rider/IntelliJ)

  • Basic use of profilers to validate performance

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