IntelliJ IDEA is the most advanced development environment for Java and other programming languages. Launched in 2001 with new versions released every year, IntelliJ IDEA is used by hundreds of thousands of developers around the world, and we put our heart and soul into making it an enjoyable experience for them.
The Scala plugin makes IntelliJ IDEA the most convenient and popular Scala IDE. We still have room for development and strive to make Scala support even better.
We’ll be happy to have you on our team if you:
- Are eager to solve challenging tasks.
- Have at least 3 years of development experience in Scala and/or other functional languages.
- Can design and write code that is easy to read and maintain.
- Understand the code you write and the algorithms behind it.
- Have strong teamwork skills: you are open to diverse viewpoints and can support your opinion with sound reasoning.
- Are willing to grow as a professional, to explore and apply new approaches and technologies.
- Feel proud of the work you do.
We’ll be super excited if you:
- Have participated in open-source projects or developed projects of your own.
- Are familiar with compiler development and code analysis technologies.
What tasks we tackle:
- The tasks that we have at hand can be broken down into three categories:
- Tasks related to Scala code analysis. Unlike other teams, we do not use compiler data and calculate everything ourselves. The language is constantly evolving, and we must be ready to support the new opportunities that it provides.
- Application of the obtained data to various IDE features, such as refactorings, code completion, various hints, etc.
- Integration with external tools: the compiler, debugger, build system, test frameworks, as well as supporting new features of the IntelliJ IDEA platform.
- You may take on the task of improving any of the subsystems or implement new features of your own design.
How we work:
- Source code is stored in Git repositories, most of which are available on GitHub.
- Most of the source code is written in Scala, for project builds we use sbt.
- For effective team collaboration, we employ our own products: Upsource for code review, TeamCity for test auto-running and product integration, YouTrack for tracking bugs and features.