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.
Programming skills in C#, Java or Kotlin
Strong analytical approach, attention to details
Nice-to-have:
Experience with parsers, AST, compiler APIs or LSP