.NET Infrastructure Software Developer
Требования
Местоположение и тип занятости
Компания
Описание вакансии
Условия работы
Отдел 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 отдельных билд-конфигураций.