PhpStorm is the most popular PHP IDE. Written in Java/Kotlin and built on the IntelliJ Platform, it was first released back in 2010. Since then, PHP has undergone many changes and is still evolving, which is why we're adding support for new PHP features in the IDE all the time. We are now in search of a Java developer to join our team. There are a lot of fun tasks to be done. Together with the PhpStorm team, you will get to work on enhancing the daily life of nearly a million PHP developers.
How we develop PhpStorm
We are looking for a candidate with a strong technical background and at least 3 years of Java/Kotlin development experience. It is important for the candidate to be able to think beyond their own tasks. In our flat team hierarchy, the same people are responsible for both decision-making and implementation. We expect you to be ready to bring any tasks to the table (maybe involving users as well) and possibly adjust them if that would benefit the end user.
We try to strike a balance between rigor, which is essential to keep such a huge product stable, and freedom, to make processes seamless and allow us to create cool and useful new things.
We have no micromanagement. Each team member is fully responsible for their part of the system. This requires a sense of responsibility and being organized, while also giving all of us more freedom.
PhpStorm source code is written in Java and in Kotlin. Knowledge of PHP is optional: you can get by with PHP specifications and the PHP source code.
What tasks we have in store
Right now we're focused on developing tools for code analysis and automatic code conversion. This involves the IDE parsing the syntax trees of code in the editor and identifying potential problems in the code and ways to enhance it. Code analysis can be local, such as finding unused local variables, or global, such as finding violations of inheritance rules when extending one class with another. Because PHP is an interpreted language, code analysis for PHP is especially helpful as it lets us find errors before running the program.
Automated refactorings are another important area of focus for us. PHP is very flexible, and writing a perfectly accurate implementation of the Extract Method or even Inline Variable refactoring is far from trivial.
As an example, here's what we worked on for our last major release: https://www.jetbrains.com/phpstorm/whatsnew/2020-3/
We continue working to enhance the performance of PhpStorm. The IDE needs to be really fast to process user files, which can sometimes be huge. We use the profiler and regression testing regularly.