Senior Software Developer

Москва

IntelliJ IDEA – лучшая среда разработки для Java и других языков программирования, создаваемая нами с душой и страстью для других программистов. Первая версия продукта была выпущена в 2001 году, с тех пор новые версии выходят ежегодно, и сейчас IntelliJ IDEA используют сотни тысяч программистов по всему миру.

Мы хотим видеть тебя в своей команде,

если ты:

  • Умеешь и любишь решать сложные и по-настоящему интересные задачи

    • хочешь улучшить IntelliJ IDEA и знаешь как именно
    • имеешь опыт разработки на Java от 5 лет;
    • умеешь проектировать и писать код, который легко читать и поддерживать;
    • понимаешь, как работает код, который ты пишешь: как он исполняется и какие алгоритмы за ним стоят;
    • умеешь работать в команде (открыт для других точек зрения и можешь аргументированно отстаивать свою позицию);
    • не останавливаешься в своём развитии, изучаешь и пробуешь новые подходы и технологии
    • испытываешь профессиональную гордость от результатов своей работы
  • И особенно если ты:
    • имеешь опыт участия в open-source проектах или ведения собственных проектов;
    • знаешь другие языки и другие парадигмы (Haskell, Python, Scala, Ruby, etc.);
    • знаком(а) с технологиями создания компиляторов, анализа кода.

Какие задачи мы решаем:

  • Задачи, которые ставятся перед программистами, можно разделить на два типа. Первые тип – задачи, связанные с обработкой большого объема исходного кода. IDE должна на лету обрабатывать введённый код, подсвечивать в нём ошибки, предлагать варианты автодополнения, помогать быстро переходить между связанными элементами, поддерживать автоматическое выполнение рефакторингов. Второй тип задач – интеграция IDE со сторонними инструментами: компиляторами, отладчиками, системами контроля версий, серверами приложений. Пользователю должно быть удобно работать со всеми этими инструментами, не покидая IDE
  • Ты сможешь взяться за практически любую подсистему или за реализацию новой, придуманной тобой фичи.

Как устроено внутри:

  • Большая часть исходного кода написана на Java. Пока что используется Java 6 (из-за трудностей с последующими версиями Java на MacOS), но переход на Java 8 уже начинается. Есть части, написанные на Groovy и Kotlin, сейчас в основном это тестирующий код. Несколько небольших утилит, тесно взаимодействующих с операционной системой, написаны на C++ (например, утилита, которая следит за изменениями файлов на диске и сообщает о них IDE).
  • Для автоматического тестирования используются JUnit-тесты, которые после каждого изменения запускаются на сервере TeamCity.
  • Сборка осуществляется при помощи собственного расширения билд-системы Gant, которое позволяет переиспользовать информацию о структуре проекта из конфигурационных файлов самой IDEA.

 

Откликнуться на вакансию
Расскажите нам немного о себе в свободной форме, напишите, почему вас заинтересовала вакансия. Мы будем рады изучить ссылки на ваши проекты, блоги или другие важные документы, которыми вы захотите поделиться.

Ваше резюме или портфолио: