CI engineer в Core at 2ГИС

Наши проекты:
Сердце наших мобильных приложений — кроссплатформенное ядро, насчитывающее сотни тысяч строк кода на C++. Для такого большого проекта становятся критически важными вопросы скорости сборки, удобства инструментов статического анализа, unit- и ui-тестирования, бенчмарков, стабильности и отказоустойчивости инфраструктуры CI.
Большинство наших внутренних сервисов живут в локальном облаке OpenStack, инфраструктура для них разворачивается с помощью Heat шаблонов, а конфигурируются они с помощью Ansible — всё «одной кнопкой». Хранение и ревью кода отдано на откуп Bitbucket Server, за сборку отвечает Jenkins, нотификации о важных событиях отправляются в Slack. Разные сервисы связываются воедино с помощью REST API и скриптов на Python и Groovy, а так же плагинов на Java для Jenkins и Bitbucket Server. Код собираем кучей компиляторов под настольные и мобильные ОС, для мониторинга предупреждений компиляторов и статических анализаторов используем SonarQube. Переводим систему сборки с GYP на CMake, временно используя обе. Для UI-тестов на девайсах и эмуляторах используем STF и набор инструментов на Python для упрощения работы с ним. Любим удобный доступ ко внутренним ресурсам, графикам, отчётам, поэтому постоянно развиваем свой интранет.
Мы ищем:
человека, который вместе с нами будет развивать и поддерживать инфраструктуру CI и инструменты, используемые разработчиками в повседневной работе. Знание всего используемого технологического стека не обязательно, важно желание разбираться в неизвестные вещах, не бояться погружаться в новые технологии, улучшать существующие инструменты и автоматизировать рутинные процессы. С приобретением опыта мы ожидаем получить классного специалиста-автоматизатора, эксперта в своей области.
Будет здорово, если вы:
- имеете опыт работы с Linux/Windows на уровне продвинутого пользователя: уверенное владение консолью, понимание принципов работы файловых систем, сети, процессов операционной системы;
- имеете знание и опыт работы с bash и Python;
- имеете знание одного или нескольких промышленных императивных языков программирования таких как Java, C++, C#;
- владеете git на хорошем уровне;
- имеете базовые знания HTML/CSS/JS;
- желаете развиваться в направлении CI/DevOps-инженера.
Плюсами будут:
- опыт работы с серверами непрерывной интеграции (Jenkins, TeamCity, Bamboo);
- опыт работы с системами оркестрации (Ansible, Puppet, Chef, Salt);
- опыт работы с системами мониторинга (Zabbix, Prometheus);
- опыт использование Docker, подготовки собственных docker-образов;
- опыт использования OpenStack как IaaS-решения: написание шаблонов для разворачивания окружения, взаимодействие через API, подготовка собственных Cloud-Init-образов;
- навыки конфигурирования серверов с помощью IPMI-консоли;
- опыт конфигурирования nginx;
- знание Java;
- знание C++;
- понимание принципов работы одной или нескольких систем сборки проектов на C++ (cmake, ninja, msbuild, xcodebuild);
- знакомство с инструментами статического анализа C++-кода;
- опыт автоматизации тестирования;
Немного об R&D 2ГИС:
В Новосибирске у нас два больших офиса: этаж в Технопарке и одиннадцать этажей в Сан-Сити. У нас нет дресс-кода и строгого графика. Кто-то приходит в 9, кто-то в 10, а кто-то — когда удобно ему и команде. Главное, чтобы ты выполнял задачи в срок и был на связи с коллегами.
Мы используем современные технологии и любим о них говорить. Выступаем на конференциях и сами их организуем. Заработную плату готовы обсуждать индивидуально.