.NET Infrastructure Software Developer

Требуемые навыки

Разработка ПОСтарший (Senior) · C# · C++ · Java · Kotlin

Местоположение и тип занятости

Москва, Санкт-Петербург, Новосибирск · Полный рабочий день

Компания

Делаем эффективные инструменты для разработчиков

Описание вакансии

Отдел JetBrains .NET насчитывает более 130 человек, среди которых разработчики, тестировщики, технические писатели, инженеры поддержки, маркетинговые специалисты и девелопер-адвокаты. Вместе они работают над линейкой продуктов для .NET: ReSharper, Rider, профилировщики dotTrace и dotMemory, инструмент для оценки покрытия кода dotCover и декомпилятор dotPeek.

Продукты тесно интегрированы, и у них много общего кода. Например, все, что касается языковой поддержки, принадлежит продуктам ReSharper и Rider, но также используется декомпилятором dotPeek и профилировщиками dotTrace и dotMemory, позволяя им отображать код с привлечением множества умных возможностей. Декомпилятор, в свою очередь, встроен почти во все продукты, а профилировщики все больше и больше интегрируются в IDE.

Эти взаимосвязи отразились и на наших процессах. Весь исходный код лежит в одном репозитории (Git, размещенный в Space). Большая часть кода написана на C#, ядро профилировщиков написано на C++. Есть код на VB. NET, Managed C++ и F# — для «‎догфудинга»‎ соответствующей языковой поддержки. Интеграция Rider и IntelliJ IDEA написана на Kotlin. У нас большая команда, и прямые коммиты в master запрещены. Поэтому мы написали робота, который берет готовую ветку, пробует слить ее с master и запустить все тесты (более полумиллиона штук) и, если все хорошо, — вливает ветку в master. CI, естественно, организован с помощью TeamCity. В качестве CD мы используем Toolbox.

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

Вместе с командой тебе предстоит:

  • поддерживать, обновлять и развивать существующую билд-систему;
  • развивать систему автоматической конфигурации билд-агентов;
  • обеспечивать быструю и повторяемую сборку наших продуктов;
  • переводить наши сборки в облако, участвовать в создании территориально распределенной билд-системы;
  • поддерживать собственный сервер символов;
  • разрабатывать утилиты для облегчения работы с билд-системой;
  • следить за состоянием CI/CD-сервера, наших билд-агентов и выпуском новых версий продукта.

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

  • имеешь опыт работы с Git;
  • хочешь помогать и получаешь удовольствие от помощи коллегам;
  • имеешь опыт разработки на любом статически типизированном языке программирования от 3 лет;
  • имеешь опыт настройки и администрирования CI/CD систем;
  • понимаешь устройство систем сборок (MSBuild, Ant, CMake, Makefiles, Gradle);
  • а если потребуется, не побрезгуешь заняться админскими делами, разобраться как настроить тот или иной сервис, или написать небольшой шелл скрипт или скрипт для TeamCity на Kotlin;
  • умеешь проектировать и писать код, который легко читать и поддерживать;
  • понимаешь, как работает код, который ты пишешь: как он исполняется и какие алгоритмы за ним стоят.

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

  • имеешь опыт работы с разными операционными системами;
  • знаешь как оптимизировать инфраструктуру;
  • имеешь опыт участия в open-source проектах или ведения собственных проектов;
  • знаешь другие языки и другие парадигмы: Haskell, Python, Scala, Ruby и т.д.;
  • знаком(а) с технологиями создания компиляторов, анализа кода, генерации и инструментации байт кода;
  • имеешь опыт работы с Docker-контейнерами;
  • имеешь опыт работы с Unreal Engine 4.

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

  • несколько гигабайт исходных текстов на С#/ C++/ Java и Kotlin;
  • более полумиллиона тестов, которые запускаются на разных архитектурах от Mac и Linux до разных версий Windows с разными версиями Visual Studio и NET Framework / .NET Core;
  • полная сборка на TeamCity состоит из 238 отдельных билд-конфигураций.

Ваш отклик

Авторизуйтесь
Откликаться на вакансии могут только зарегистрированные пользователи.