Релиз-инженер
Мы обратились к представителям компаний с вопросами о том, какие требования они предъявляют к соискателям вакансий релиз-инженера
1. Какими знаниями и навыками должен обладать релиз-инженер?
2. Каков инструментарий релиз-инженера?
3. Каковы требования компании к уровню образования потенциальных сотрудников?
4. Какие требования предъявляются к опыту работы?
5. Есть ли особые требования, которые обусловлены спецификой деятельности компании?
Денис Силаков, начальник отдела технологических разработок и сопровождения компании «РОСА»
1. Релиз-инженер в компании «РОСА» должен хорошо ориентироваться во всем многообразии программного обеспечения, существующего в мире Linux. Необходимо знать, какие приложения могут быть использованы для выполнения типичных задач тех или иных категорий пользователей. При наличии нескольких альтернативных программ необходимо уметь сделать обоснованный выбор в пользу одной из них – в «РОСЕ» мы придерживаемся принципа «одна задача – одно приложение», и наличие взаимозаменяемых приложений в выпускаемом дистрибутиве не приветствуется.
2. В нашем представлении, релиз-инженер – это уже не рядовой сотрудник, а опытный специалист, который сам способен подобрать наиболее подходящий для себя инструментарий.
3. В условиях «РОСЫ» релиз-инженеру пригодятся системный подход и умение проводить тщательный анализ большого количества программных продуктов. Поэтому скорее всего мы обратим внимание на людей с естественно-научным либо техническим образованием, и высшее образование будет большим плюсом. Впрочем, в «РОСЕ» мы в первую очередь смотрим на компетенции и возможности потенциальных сотрудников; наличие диплома одного из ведущих вузов даст нам надежду на встречу с достойным кандидатом, однако не будет рассматриваться как достаточное условие приема на работу.
4. Потенциальный кандидат на должность релиз-инженера в «РОСЕ» должен прежде всего чувствовать себя в мире свободного ПО как рыба в воде. Специфика свободного ПО такова, что для этого вовсе не обязательно иметь опыт работы в какой-то компании – его вполне может заменить опыт участия в создании того или иного открытого проекта. В частности, в мире немало дистрибутивов Linux и других крупных проектов, выпускаемых исключительно силами добровольцев. Человек, приложивший руку к выпуску релизов таких проектов, будет иметь хорошие шансы и в нашей компании.
5. Специфика «РОСЫ» заключается в том, что основные наши продукты – дистрибутивы ОС Linux – содержат большое количество компонентов, создаваемых сообществом. К ним, в частности, относятся и ключевые составляющие ОС – ядро Linux, система управления сервисами systemd, графическая среда KDE и другие. Каждый из этих компонентов имеет свой жизненный цикл, и одной компании сложно влиять на периодичность их релизов и набор свойств, которые войдут в очередную версию (во всяком случае, нет возможности в приказном порядке потребовать реализации конкретных запросов к определенному сроку).
Безусловно, разработчики компании готовы самостоятельно дорабатывать те или иные компоненты, однако их ресурсы не безграничны. Поэтому одна из основных задач релиз-инженера в нашей компании – определить, какие версии каких сторонних компонентов войдут в очередной релиз и какие доработки сторонних решений необходимо произвести силами компании. С учетом многообразия таких компонентов и частоты выпуска новых релизов многих из них эта задача отнюдь не тривиальна.
Илья Агеев, QA Lead, компания Badoo
1. В Badoo релиз-инженер должен понимать процесс от постановки задачи до доставки результата пользователю. Уметь объяснить другим, как правильно надо делать и почему именно так. Должен знать систему контроля версий вплоть до мелочей. Для Git, например, должен понимать, почему нельзя делать rebase кода после push, что такое «стандартный гит-флоу» и почему на самом деле он никакой не стандартный. Релиз-инженер также должен понимать, что веб-приложения, сервисы, мобильные приложения – это разный подход к разработке, тестированию, сборке и выкладке. И то, что хорошо подходит в одном процессе, не всегда приемлемо в другом.
2. Это Git, TeamCity и JIRA. Плюс нами же разработанный робот, который объединяет и упрощает работу с этими системами. Робот написан на PHP, поэтому хочется, чтобы релиз-инженер также имел опыт программирования на каком-нибудь скриптовом языке, чтобы совершенствовать систему и дальше. Будет очень здорово, если кандидат имеет опыт написания хуков для систем контроля версий и настройки кастомных workflow в багтрекерах.
3-4. Никаких особенных требований к образованию и опыту работы мы не предъявляем. Если кандидат знает все, что нам надо для работы, и готов впитывать новые знания и навыки, мы готовы брать сотрудников без высшего образования и опыта работы релиз-инженером вообще. В нашей практике есть примеры, когда человек, никогда прежде не встречавшийся с релиз-инжинирингом, но имеющий опыт разработки, успешно вливался в наш коллектив и решал наши задачи. С другой стороны, бывало, что на интервью приходили «мастодонты» с блестящим резюме и регалиями, но совершенно нам не подходили.
5. У нас две выкладки в день, в каждой из выкладок примерно 30-40 задач. Это много и, несмотря на то что большинство рутинных задач автоматизировано, зачастую тяжело. Это не значит, что надо работать по ночам и выходным, совсем нет. Выкладки проходят в рабочее время – в 11:00 и 16:00, за два часа до выкладок в релизных ветках наступает код-фриз. Надо, чтобы релиз-инженер обеспечивал своевременные билды, вовремя понимал, что релиз готов, и без задержек разливал код. Соответственно человек должен быть аккуратным, пунктуальным и бескомпромиссным.
Марина Алексеева, директор по работе с персоналом «Лаборатории Касперского»
1. Отличное знание платформ Windows, опыт системного администрирования, знание процесса разработки программного обеспечения, умение читать исходный код (С++, Perl, shell Unix).
2. MSBuild, TFS, Cmake, shell, Python, Perl, Jenkins, teamsuit, nant, make.
3. Кандидаты на эту позицию обязательно должны иметь высшее техническое образование.
4. В «Лаборатории Касперского» рассматриваются кандидаты с опытом от трех до шести лет. При этом мы приветствуем кандидатов с опытом работы системным администратором или инженером-программистом.
5. Знание Msbuild
Юрий Волошин, менеджер продуктов «1С-Битрикс»
1. Релиз-инженер, или менеджер продукта, как в «1С-Битрикс», должен хорошо знать структуру продукта, над которым он работает, а также зависимость одной его составляющей от другой. Кроме того, свободно ориентироваться в схожих продуктах на рынке и отслеживать все изменения, а также понимать сильные и слабые стороны этих изменений. И, конечно, понимать, для чего они вносятся.
Сложно найти человека, обладающего нужным количеством знаний. Поэтому приходится его, как сотрудника технической поддержки или тестировщика, «натаскивать» до требуемого уровня.
Помимо российских игроков, важно отслеживать тенденции развития иностранных рынков, так как чаще всего у нас наблюдается некоторое отставание. Для этого пригодится знание языка.
2. Знания менеджера будут сильно зависеть от продукта. Для продуктов «1С-Битрикс»: операционные системы Linux и Windows, OS X-окружения для установки продукта, PHP (хотя бы на базовом уровне), Apache, MySQL, Nginx.
Без уверенных базовых знаний операционных систем, языков программирования и серверов, умения их настраивать, специалисту будет сложно работать. Естественно, сотрудник также должен иметь опыт работы с IDE для PHP (например, PhpStorm), с багтрекерами и системами управления версиями.
Для менеджера продукта важно понимание того, как будет собираться фидбек, собирать его, готовить статьи для публикаций, понимать потребности клиентов, а также использовать данный продукт в бизнесе.
3. Конечно же, профильное ИТ-образование приветствуется. Но, если кандидат обладает знаниями, перечисленными выше, образование не будет играть решающую роль при приеме на работу.
4. Чем больше опыт, тем лучше. Пусть даже опыт получен при работе с другими продуктами либо при реализации других проектов (опять же не имеет значения, на каком продукте).
Для «1С-Битрикс» я бы «вырастил» сотрудника из менеджера технической поддержки или тестировщика, если знания конкретного продукта у кандидата нет.
5. У каждой компании будут свои требования. Кому-то необходимы знания PHP, а кому-то – iOS и умение программировать под нее. Все зависит от компании, которая ищет себе сотрудника.
Подготовил Игорь Штомпель