Наша рубрика «Где работать в IT» — это интервью с интересными айти-компаниями, в которых они делятся подробностями о процессах своей работы. Представители индустрии отвечают на вопросы о найме, условиях, командах и технологиях.  В этом выпуске мы расскажем вам об Astra Linux (ООО «РусБИТех-Астра») — команде разработки российской операционной системы Astra Linux. Компания разослала наши вопросы по всем отделам, чтобы у вас сложилось полное понимание, как происходит процесс работы в каждом секторе вендора. Обо всех процессах в команде Astra Linux нам подробно рассказали: Ведущий инженер-исследователь Начальник отдела научных исследований Руководитель группы разработки графики, сектор прикладных разработок Руководитель группы разработки, сектор сетевых сервисов и автотестирования Руководитель группы, сектор разработки ядра и основ СЗИ Начальник отдела тестирования Заместитель руководителя департамента разработки Astra Linux Руководитель направления по развитию бренда работодателя Astra Linux — бренд российской ОС и флагманского продукта экосистемы IT-решений группы компаний «Астра». Разработчик — ООО РусБИТех-Астра, аккредитованная Минцифры России IT-компания.  Публичная оценка компании на Хабр Карьере в 2022 году — 4,76 из пяти. Самые высокие оценки сотрудников компания получила за интересные задачи, адекватную зарплату, отношения с коллегами, связь с топ-менеджментом, современные технологии, карьерный рост, признание результатов труда и за то, что компания делает мир лучше. Подробнее посмотреть оценки и почитать отзывы сотрудников можно в профиле «Астры» на Хабр Карьере. Андрей (ведущий инженер-исследователь): У нас рабочий график может различаться в зависимости от специализации сотрудника и подразделения, в котором он работает. В моем случае это удаленная работа с присутствием в офисе по необходимости. Дорога от дома до работы занимает два часа, и такой график позволяет наиболее рационально использовать свое рабочее и личное время. Дмитрий (сектор прикладных разработок, руководитель группы разработки графики): График свободный, но относительно фиксированный. Если человек решил работать с 11 до 20, то желательно и дальше придерживаться этого времени, чтобы все коллеги знали, когда он работает. Переработки по требованию бывают довольно редко, например, при выпуске релизов либо при оперативных задачах. Александр (сектор сетевых сервисов и автотестирования, руководитель группы разработки): Главное — как можно сильнее пересекаться в графике с остальными, чтобы вопросы решались как можно оперативнее. Александр (сектор разработки ядра и основ СЗИ, руководитель группы): В нашей группе сложился гибридный вариант: три дня в офисе, два дня удаленно. При необходимости график может корректироваться на ходу. По переработкам четкие правила не просматриваются. Иногда возникает очень срочная работа на выходных, но это случается редко. Гораздо чаще что-либо делается сверхурочно, просто потому что интересно или хочется успеть что-то доделать. Живое обсуждение в рабочем чате в полпервого ночи не редкость, но это потому, что какая-то задача увлекает, и сложно от нее оторваться. Денис (начальник отдела тестирования): В отделе тестирования график стандартный, с возможностью сдвига на 2-3 часа. Переработки редкие, обговариваются заранее и оплачиваются отдельно. Юлия (заместитель руководителя департамента разработки Astra Linux): В нашей команде есть ребята из разных регионов страны, с ними мы работаем дистанционно. В некоторых городах у нас есть офисы, и там уже режим работы складывается по договоренности с руководителем. Кому-то удобнее работать в офисе, кому-то — на удаленке или по гибридному графику. Юлия (руководитель направления по развитию бренда работодателя): Сейчас у нас  более 7 офисов. Самые крупные расположены в Москве, Санкт-Петербурге, Иннополисе, Нижнем Новгороде и Владивостоке. Мы активно растем и закупаем много новой мебели и техники для наших сотрудников, постепенно наполняем офисы приятными мелочами вроде фруктов, соковыжималок, кофеварок и прочего. В московском офисе есть несколько тренажеров и настольный футбол, чтобы можно было размяться в перерыве. Андрей (ведущий инженер-исследователь): На мой взгляд, условия вполне комфортные. Всем сотрудникам для работы из офиса или из дома выдают современное оборудование — это обычная практика. Те, кому необходима стендовая база, имеют возможность использования серверной техники и облачных ресурсов. Руководство компании заботится о современном техническом оснащении рабочих мест, понимая, что это основа качественной работы и результатов. В оборудованных кухнях всегда есть возможность разогреть еду в микроволновке, приготовить кофе или чай и спокойно пообедать. Дмитрий (руководитель группы разработки графики): В Москве мы работаем в кабинетах по 15-20 человек с большими окнами и без оупенспейса. Удобно, что офис рядом с метро. Для работы выдаются ноутбук и дополнительные мониторы, если они требуются. Денис (начальник отдела тестирования): Ко всему вышесказанному могу добавить, что в силу специфики работы в нашем отделе выдают мощные рабочие станции. Андрей (ведущий инженер-исследователь): Есть и широко применяется. Для организации совместной работы мы пользуемся автоматизированными системами. Это позволяет централизованно всё планировать и сохранять результаты так, что они доступны и другим членам команды. Дмитрий (руководитель группы разработки графики): У нас есть как полноценная удаленка для сотрудников из регионов, так и гибкий график с частичным посещением офиса. Денис (начальник отдела тестирования): В отделе тестирования есть, но это скорее исключение, чем правило. Юлия (руководитель направления по развитию бренда работодателя): Помимо стандартного социального пакета, который мы обеспечиваем в соответствии с трудовым кодексом, у всех сотрудников из IT-подразделений есть ДМС. Дополнительно каждый из нас может пользоваться бонусной программой BestBenefits, которая включает разные предложения и скидки в кафе, барах, ресторанах, магазинах и т.д. Дмитрий (руководитель группы разработки графики): Есть практика премирования за успешную работу. Андрей (ведущий инженер-исследователь): На мой взгляд, важнейшим аспектом является своевременный перевод аванса и зарплаты. За несколько лет работы в компании не припомню ни одной задержки.  Дмитрий (руководитель группы разработки графики): Мы работаем над множеством разноуровневых задач. Можно расти как вертикально, так и горизонтально. Также компания может оплатить курсы для повышения квалификации, например, сейчас у нас несколько человек проходит обучение последним стандартам С++. Владимир (начальник отдела научных исследований): У нас много самых разных возможностей: от обучения на курсах (причем их можно выбрать самому) за счет компании и до технических митапов «ТехСреда» и выездных внутренних конференций TechDays. На них можно пообщаться в неформальной обстановке на рабочие темы, да и не только.  В компании легко найти помощника, наставника в решении практически любой задачи. Например, мне еще не приходилось сталкиваться с вопросом, с которым я бы остался один на один. Даже если на него не находилось ответа здесь и сейчас, то все, к кому я с ним обращался, не оставались безучастными. С такими вопросами обращаются и ко мне, их совместное решение делает с каждым разом нас на голову выше. Владимир (начальник отдела научных исследований): На первом этапе – общение с HR, а в дальнейшем — с руководителем команды или направления, в рамках которого вы хотели бы попробовать свои силы, если являетесь начинающим или middle-специалистом в соответствующей области.  Если вы претендуете на позицию senior и выше, вам придется пообщаться с несколькими экспертами внутри компании. Если найдены точки соприкосновения, кандидату предлагается выполнить тестовое задание, которое позволит ему «пощупать» то, с чем придется работать в ближайшей перспективе, а нам — оценить все те возможности кандидата, о которых он забыл упомянуть при общении. Дмитрий (руководитель группы разработки графики): Одно собеседование и тестовое задание на дом. На собеседовании интереснее всего послушать про опыт кандидата: какие задачи и как он реализовывал, какие решения принимал и почему. Крайне интересен опыт работы с Linux. Александр (сектор разработки ядра и основ СЗИ, руководитель группы): Поиск резюме, собеседование, тестовое задание, предложение, выход на работу. На собеседовании я пытаюсь прежде всего понять, будет ли кандидату интересно заниматься теми задачами, которые у нас есть, и есть ли у него опыт работы с чем-то подобным. Дмитрий (руководитель группы разработки графики): Как правило, да, но бывают исключения, когда у кандидата есть релевантный код в открытых источниках. Тестовое задание — это реализация простого приложения либо добавление функционала в Qt пример и дебианизация результата. Обычно для специалиста с релевантным опытом тестовое задание занимает не больше 4-6 часов. Александр (сектор сетевых сервисов и автотестирования, руководитель группы разработки): Да. Это заранее известная нам задача со многими путями решения. Александр (сектор разработки ядра и основ СЗИ, руководитель группы): Тестовое задание — это задача на написание программного модуля. В процессе можно обсудить возникающие побочные вопросы, которые иногда оказываются интереснее самого задания. Юлия (заместитель руководителя департамента разработки Astra Linux): О сроках подготовки тестового задания мы всегда договариваемся с кандидатом, т.к. не только мы выбираем, но и нас, здесь важны партнерские отношения уже на этапе знакомства. Денис (начальник отдела тестирования): В отделе тестирования мы выдаем стандартные задания. Одно из них выглядит так: для ванильной версии Astra Linux 1.6 просим настроить веб-сервер в защищенном режиме с последующей демонстрацией успешной работы под уровнями и без. Также просим покрыть тест-кейсами известные утилиты и, конечно, написать баг-репорты на найденные в процессе всех работ баги. Дмитрий (руководитель группы разработки графики): Бывает, спрашиваешь у кандидата, какими технологиями он бы хотел заниматься и куда расти, а он называет совсем другой стек из другой плоскости, при этом про стек, на который пришел устраиваться, ни слова. Еще был один случай, когда человек шел по оживленной улице и из-за шума его было плохо слышно, ну и отвлекался он постоянно. Всё-таки считаю, что лучше для собеседования найти более спокойное и уединенное место. Александр (сектор сетевых сервисов и автотестирования, руководитель группы разработки): Что-нибудь из разряда компетенций «с потолка», вероятно, когда человек говорит о том, в чем не разбирается. Александр (сектор разработки ядра и основ СЗИ, руководитель группы): Если бы были такие фразы, это было бы слишком просто. Возникает настороженность, если кандидат злоупотребляет англицизмами. Больше симпатии вызывают люди, которые о сложном могут рассказать простым языком. Денис (начальник отдела тестирования): «Не работал с командной строкой». Дмитрий (руководитель группы разработки графики): У меня пока таких не было... да и в целом текучка довольно низкая: за 4 года в моем отделе наняли около 14 человек, ушел только один. Александр (сектор разработки ядра и основ СЗИ, руководитель группы): У нас был стажер, который пытался совмещать работу с учебой. Из-за этого многое делал в последний момент и впопыхах. Упершись в проблему, не задавал миллионы вопросов, а молча зависал. Андрей (ведущий инженер-исследователь): Периодически возникают ситуации, когда формируется команда для решения различных, порой нестандартных задач. Несколько раз со мной в команду попадали сотрудники, недавно пришедшие на работу. В таких случаях на каждом члене команды лежит ответственность за результат независимо от стажа его работы, и у каждого есть возможность проявить как свои лучшие индивидуальные качества, так и качества командного игрока. Очень часто после решения таких командных задач с новыми сотрудниками устанавливаются не только рабочие, но и дружеские отношения, создающие позитивную атмосферу. Дмитрий (руководитель группы разработки графики): Новичку назначается наставник, который оказывает всю необходимую помощь. Задачи ставятся по нарастающей сложности для постепенного вливания. Проводятся периодические совместные встречи, где мы получаем и даем обратную связь. Также у наставника есть чек-лист из множества пунктов, по которым он должен провести нового сотрудника. Денис (начальник отдела тестирования): У нас новичка ведет руководитель сектора. Новичку выдается задание с полным прогоном тест-кейсов на актуальном релизе, в ходе которого он знакомится со спецификой операционной системы, тест-дизайном, используемыми в тестировании инструментами и т.д. После чего ставятся уже «боевые» задачи. Юлия (заместитель руководителя департамента разработки Astra Linux): Мы используем гибкие методологии, т.к. они позволяют выстраивать внутренние процессы в командах так, чтобы взаимодействие было успешным. Компания стремительно растет, и это очень важно. Денис (начальник отдела тестирования): Самые разные: от трех до девяти человек, зависит от направления сектора. Все секторы сбалансированы по составу. Андрей (ведущий инженер-исследователь): У нас разные размеры команд, в моей практике численность варьируется от двух до шести человек. Это и обеспечивает возможность синергии для коллективной генерации решений, и не требует больших затрат на организацию эффективной работы. Дмитрий (руководитель группы разработки графики): Чем более ответственные и сложные задачи человек берет, тем выше его уровень. От сеньоров я также ожидаю проработки архитектуры, наставничества, решения сложных вопросов и т.д. Александр (сектор разработки ядра и основ СЗИ, руководитель группы): Не разбиваем. Есть опытные разработчики (2+ лет) и новички. Опытные обычно нашли себе интересную нишу и обладают более глубокими знаниями, полученными в результате решения нетривиальных задач. Новички поначалу задают много вопросов и знают мало ответов. Денис (начальник отдела тестирования): По опыту и знаниям, конечно, и по вовлеченности в различные внутренние проекты. Андрей (ведущий инженер-исследователь): Мне встречались различные случаи. В конечном счете успех зависит от организаторских способностей, которые могут быть и у «продакта» и у «технаря». Чаще возглавляют команды техлиды. Андрей (ведущий инженер-исследователь): В моем случае команды формируются на время решения задач, разнообразие которых велико, соответственно, и смена команды не редкость. Дмитрий (руководитель группы разработки графики): Под проект выделяется человек или собирается команда в рамках сектора, при этом периодически происходит ротация в этом же периметре. Смена сектора или отдела случается довольно редко: как правило, это уже другой стек технологий и задачи другого плана, но такие переходы тоже бывают. Денис (начальник отдела тестирования): Нечасто, но это возможно. Чаще появляются новые направления, куда уходят опытные сотрудники из ручного тестирования. Андрей (ведущий инженер-исследователь): В моем случае важнее мотивация на решение задачи, умение и желание учиться, осваивать новые технологии. Наглядно проявляется принцип: «кто хочет, ищет способ, а кто не хочет, ищет причину». Дмитрий (руководитель группы разработки графики): Чем больше нужно взаимодействовать с другими людьми, тем софт-скилы  важнее, например, для руководителей, и наоборот, если ты удаленный сотрудник с обособленными задачами. Александр (сектор разработки ядра и основ СЗИ, руководитель группы): На мой взгляд, более важно умение найти нужную информацию и разобраться в чем-то новом, чем конкретный предыдущий опыт. Денис (начальник отдела тестирования): Конечно, лучше всего, когда они сбалансированы, но в нашем деле перевес у хард-скилов. Андрей (ведущий инженер-исследователь): В моем случае перебора с собраниями и совещаниями нет. Большинство вопросов решается с помощью корпоративного мессенджера, ВКС (видеоконференцсвязи) и электронной почты. Корпоративный мессенджер эффективно выполняет функцию коллективного разума, когда на заданный кем-либо в чате вопрос достаточно быстро выдается компетентный ответ. Дмитрий (руководитель группы разработки графики): У разработчиков мало собраний, обычно одно-два в неделю: еженедельный митап сектора и рабочие собрания по требованию, например, для синхронизации по проекту. Александр (сектор сетевых сервисов и автотестирования, руководитель группы разработки): У нас не очень много собраний, но если у человека проблема, сразу стараюсь созвониться, чтобы узнать причину и его мнение. Александр (сектор разработки ядра и основ СЗИ, руководитель группы): Собраний проводится немного, обычно когда обсуждение в переписке становится чрезмерно запутанным из-за большого количества действующих лиц или сильного расхождения мнений. Бывают и скучные собрания ни о чем, но редко — чаще всего это означает, что позвали не тех, кого нужно было. Но мы всегда можем узнать о необходимости нашего присутствия на встрече заранее. Денис (начальник отдела тестирования): Так как большинство сотрудников всегда в офисе и в живом общении, собрания проводятся редко, в основном для того, чтобы донести всем какую-либо важную информацию. Андрей (ведущий инженер-исследователь): Основными причинами выгорания чаще всего бывают перегруз в работе или деятельность, к которой не лежит душа. С перегрузом справляемся перераспределением нагрузки за счет набора новых сотрудников, совершенствования структуры компании и делегирования полномочий. Конечно же, помогают и увлечения спортом, и другие хобби. Смена направления деятельности сотрудников не редкость в компании, поскольку спектр решаемых задач постоянно растет, что дает сотрудникам возможности для расширения кругозора и применения своих талантов. Дмитрий (руководитель группы разработки графики): Меняю проект, если человек устал над ним работать. Ходим в отпуск как минимум один раз в год. Общаюсь с сотрудниками один на один, чтобы узнать, что беспокоит, а потом работаю с этим. Александр (сектор сетевых сервисов и автотестирования, руководитель группы разработки): Переключаю на интересные им задачи. Юлия (заместитель руководителя департамента разработки Astra Linux): Два раза в год мы выезжаем за город на TechDays, собираемся на летний и новогодний корпоративы, на которых можно обсудить в неформальной обстановке важные вопросы или просто отдохнуть с коллегами. Сотрудники Astra Linux делятся на небольшие команды, каждая из которых под свою задачу выбирает наиболее подходящие инструменты. Андрей (ведущий инженер-исследователь): В моей практике чаще всего применяется Python, но всё зависит от решаемых задач. Были случаи, когда для разработки компонентов информационных систем приходилось использовать более десятка различных языков программирования. Дмитрий (руководитель группы разработки графики): У меня: С++, Python, Qt, QML, KDE, GTK, Linux. Александр (сектор сетевых сервисов и автотестирования, руководитель группы разработки): Полный стек. Чаще с С++, Bash, для внутренних скриптов — Python. Денис (начальник отдела тестирования): Shell, Python. Дмитрий (руководитель группы разработки графики): Обязательно у новых сотрудников и стажеров, далее — по требованию. Стараемся двигаться в сторону архитектурного ревью и автоматических проверок. Александр (сектор сетевых сервисов и автотестирования, руководитель группы разработки): Если кто-то сомневается в работе своего патча, разбираем ситуацию. Александр (сектор разработки ядра и основ СЗИ, руководитель группы): Четкой политики нет: написанный код обсуждается с коллегами по мере необходимости, иногда — в формате merge-request-ов gitlab Денис (начальник отдела тестирования): Обязательная перекрестная проверка. Александр (сектор сетевых сервисов и автотестирования, руководитель группы разработки): У нас своя система развертывания и тестирования. Потом передаем задачу в отдел тестирования. Александр (сектор разработки ядра и основ СЗИ, руководитель группы): Проводится статический и динамический анализ кода, но он находит только довольно специфические ошибки. Тестируются выпуски ОС целиком. В последнее время значительно выросла автоматизация тестирования. Юлия (заместитель руководителя департамента разработки Astra Linux): Выпуская сертифицированные операционные системы, мы опираемся на организацию тестирования в рамках ГОСТ 56939 по разработке безопасного программного обеспечения. Помимо этого мы тестируем оборудование от вендоров, находящееся на длительной поддержке. Александр (сектор сетевых сервисов и автотестирования, руководитель группы разработки): В задачах отражаются все нюансы решения проблемы. Если доработка серьезная, то информация появляется на Wiki. Денис (начальник отдела тестирования): Есть собственное пространство в Confluence, куда заносится любая полезная для работы отдела информация. Юлия (заместитель руководителя департамента разработки Astra Linux): Всё зависит от специфики отдела или рабочей группы. В части задач доля легаси-кода достаточно высока, но есть и направления разработки с нуля. Дмитрий (руководитель группы разработки графики): В целом, количество новых проектов преобладает над старыми. Старые по мере надобности рефакторятся, переписываются или выкидываются. Александр (сектор сетевых сервисов и автотестирования, руководитель группы разработки): Наследуемый код у нас в основном весь, и на него мы делаем исправляющий проблему патч.  Помогаем строить карьеру в IT