Senior Software Developer (IntelliJ IDEA, VCS Integration)

Санкт-Петербург

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

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

  • Умеешь и любишь решать сложные и по-настоящему интересные задачи;
  • Имеешь опыт разработки на Java от 5 лет;
  • Умеешь проектировать и писать код, который легко читать и поддерживать;
  • Хочешь работать над юзабилити и придумывать решения, действительно удобные для сотен тысяч пользователей IntelliJ IDEA;
  • Понимаешь, как работает код, который ты пишешь: как он исполняется и какие алгоритмы за ним стоят;
  • Умеешь работать в команде (открыт для других точек зрения и можешь аргументированно отстаивать свою позицию);
  • Не останавливаешься в своём развитии, изучаешь и пробуешь новые подходы и технологии;
  • Испытываешь профессиональную гордость от результатов своей работы.

И особенно если ты:

  • Имеешь опыт участия в open-source проектах или ведения собственных проектов;
  • Понимаешь, что такое системы контроля версий и зачем они нужны, и не боишься интерактивного ребейза в гите.

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

  • Наша основная задача — сделать интеграцию с системами контроля версий такой, чтобы с ними было работать удобно и комфортно. В частности, сделать WTF-эффект от их использования минимальным.
  • Все существующие VCS нередко кажутся сложными или неудобным, особенно поначалу. Мы стараемся сделать работу с VCS понятной и безопасной для новичков, но при этом не лишить опытных пользователей мощи нативного тула, а даже дать им дополнительные возможности.
  • Больше всего мы работаем над юзабилити. Нужно проанализировать, какие сценарии работы есть у пользователя, зачем именно ему нужна такая-то фича, и реализовать её наилучшим образом, нередко совсем другим, чем изначально хотел пользователь.
  • При этом такой мощный и удобный инструмент должен ещё и быстро работать и памяти поменьше есть и вообще вести себя незаметно. Соблюсти здесь баланс — отдельная сложность и прелесть работы над VCS.
  • Конкретная задача, которую мы предлагаем — сделать первоклассную интеграцию с GitHub: управление пулл-реквестами, поддержка ревью и комментариев в коде. Также есть множество других замечательных задач в поддержке Git: например, интерактивный ребейз, которым не больно пользоваться.
  • Также ты сможешь взяться за практически любую подсистему или за реализацию новой, придуманной тобой фичи.

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

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

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