Наша рубрика «Где работать в IT» — это интервью с интересными айти-компаниями, в которых они делятся подробностями о процессах своей работы. Представители индустрии отвечают на вопросы о найме, условиях, командах и технологиях.
В этом выпуске мы расскажем вам о команде разработки программного комплекса Termidesk, мультиплатформенного продукта для организации безопасной и удаленной работы сотрудников (OOO «УВЕОН — ОБЛАЧНЫЕ ТЕХНОЛОГИИ», входящий в ГК «Астра»).
А ещё в выпусках мы рассказываем об оценках компаний на Хабр Карьере, чтобы вы были в курсе, за что их любят (или нет?) сотрудники. Кстати, если вы тоже оцените своего работодателя, то это поможет тем, кто ищет работу в IT.
Кто отвечал на вопросы
Обо всех процессах в команде Termidesk нам подробно рассказали:
Сергей
СЕО
Дмитрий
Руководитель отдела серверной разработки
Роман
Руководитель отдела интеграции с партнерами
Сергей
Заместитель руководителя отдела тестирования
Максим
Руководитель отдела внедрения и сопровождения
Анатолий
Руководитель отдела разработки клиентской части
Ирина
Менеджер по развитию бренда работодателя
Алла
HR-менеджер
О компании
Termidesk — унифицированное мультиплатформенное решение, позволяющее управлять полным жизненным циклом виртуальных рабочих мест. Разработчик — OOO «УВЕОН — ОБЛАЧНЫЕ ТЕХНОЛОГИИ», входит в группу компаний «Астра».
Публичная оценка ГК «Астра» на Хабр Карьере в 2022 году — 4,77 из пяти. Самые высокие оценки сотрудников компания получила за интересные задачи, адекватную зарплату, отношения с коллегами, связь с топ-менеджментом, современные технологии, карьерный рост, признание результатов труда и за то, что компания делает мир лучше. Подробнее посмотреть оценки и почитать отзывы сотрудников можно в профиле «Астры» на Хабр Карьере.
Об условиях работы
Какой в вашей компании сложился рабочий график и как относитесь к переработкам?
Ирина (менеджер по развитию бренда работодателя): Начало рабочего дня гибкое, об этом можно договориться с командой и руководителем.
Роман (руководитель отдела интеграции с партнерами): Режим работы свободный. Главное условие — присутствовать на общих созвонах, которые проводятся преимущественно до 12:00 по МСК. Заниматься интересной задачей в свободное время никто не запрещает, но с другой стороны, я всегда напоминаю коллегам, что не стоит овертаймить. Лучше отдохнуть и потом со свежими силами решить задачу.
Дмитрий (руководитель отдела серверной разработки): Рабочий график обычный — 5/2. При необходимости часть рабочих часов можно отработать в выходные, если на буднях потребовалось потратить время на что-то другое. Переработки пока не требовались.
Сергей (заместитель руководителя отдела тестирования): График работы слегка плавающий вокруг штатного времени работы (9.00-18.00): в среднем 8.30-17.30. Переработки допускаются, но нежелательны.
Какие бытовые условия ждут нового сотрудника на рабочем месте: мебель, техника, тип помещения, искусственное или естественное освещение, дополнительные удобства в офисе?
Сергей (CEO): Наша команда распределенная, центральный офис находится в Москве на ст. метро «Проспект Вернадского». При трудоустройстве мы обеспечиваем сотрудников всем необходимым оборудованием для выполнения своих задач.
Максим (руководитель отдела внедрения и сопровождения): В Москве есть комфортный офис с доступной городской инфраструктурой. Есть чай, кофе, снеки. Рабочее место можно обустроить по желанию, конечно, в разумных пределах.
Сергей (заместитель руководителя отдела тестирования): Удобные кресла, ноутбуки, мониторы.
Есть ли возможность удаленной работы?
Ирина (менеджер по развитию бренда работодателя): У нас работают коллеги из разных городов и часовых поясов, есть полностью удаленная команда с разницей во времени +4 часа от Москвы. Здесь главное — продуктивность, а не то, где ты находишься. Московская часть команды работает в гибридном формате.
Сергей (заместитель руководителя отдела тестирования): В нашей команде возможность удаленной работы обеспечивается виртуальной инфраструктурой, облачными сервисами, широким использованием ВКС (видеоконференцсвязи). Однако на этапе вхождения в команду желательно постоянное присутствие, а после того как новички втягиваются, мы организуем периодические встречи в офисе, чтобы поддерживать общий рабочий контекст.
Какой социальный пакет получают сотрудники?
Ирина (менеджер по развитию бренда работодателя): Всем нашим коллегам доступна программа ДМС, а также сервис подписки на корпоративные скидки BestBenefits, который дает возможность наиболее выгодно посещать рестораны, путешествовать, делать покупки и т.д. И, конечно, компания предоставляет сотрудникам социальный пакет в соответствии с трудовым законодательством.
Какие бонусы, премии и компенсации предусмотрены в компании?
Сергей (CEO): Оценка эффективности работы сотрудников может иметь различные подходы: от формирования целей на квартал/полугодие/год и контроля их достижений до внезапных благодарностей за рационализаторские предложения. И также мы не ждем, пока сотрудники будут просить улучшений условий компенсации: инициативных, творческих и целеустремленных коллег стараемся поддерживать разными способами.
Роман (руководитель отдела интеграции с партнерами): Компания компенсирует приобретение оборудования и литературы. Также есть возможность обучения за счет работодателя, посещения профильных конференций.
Какие есть перспективы для образования и личного развития у сотрудников?
Ирина (менеджер по развитию бренда работодателя): Направлять сотрудников на обучение — регулярная практика в нашей группе компаний. Для этого нужно всего лишь выбрать подходящую содержательную программу и обратиться в отдел обучения. Плюс мы каждую неделю встречаемся на «ТехСреде» — внутреннем техническом митапе, где коллеги делятся опытом и кейсами друг с другом. И пару раз в год собираемся большим коллективом всей группы компаний на корпоративной конференции TechDays.
Роман (руководитель отдела интеграции с партнерами): Онлайн-курсы и курсы повышения квалификации, наставничество, обмен опытом, еженедельные технические вебинары.
Максим (руководитель отдела внедрения и сопровождения): Мы используем любые возможности для расширения кругозора в сфере VDI, виртуализации, разношерстной инфраструктуры. Есть и самообразование, и возможность пройти профильные курсы.
О найме
Во сколько этапов проходит наём и что ожидает соискателя?
Алла (HR-менеджер): Сначала мы всегда рассказываем кандидату про продукт и роль позиции, на которую человек собеседуется. Затем идет блок вопросов от HR и техническая часть собеседования.
Дмитрий (руководитель отдела серверной разработки): После общих вопросов рассказываем о компании и организации рабочего процесса. Проверяем знания соискателя различными техническими вопросами.
Роман (руководитель отдела интеграции с партнерами): Основное собеседование в один этап: выясняем уровень компетенции и задаем общие вопросы. Общение происходит в формате беседы. Никакого официоза, все лампово и душевно, но с техническим уклоном.
Даете ли вы тестовое задание кандидатам? Как все устроено?
Алла (HR-менеджер): В каждой команде свои особенности. Есть направления, где в силу специфики работы тестовое задание является обязательным для всех. Отправляем его кандидату после собеседования. Также есть позиции, где тестовое задание необязательно. Но если по итогам собеседования у нас есть сомнения, например человек не ответил на важные теоретические вопросы, то мы можем его попросить выполнить тест или прислать пример своего кода. В первую очередь мы смотрим на стиль кода и то, как кандидат подошел к выполнению задания. Лайфкодинга на собеседованиях нет.
Роман (руководитель отдела интеграции с партнерами): В нашей команде, как правило, тестовое задание не дается. В основном все понятно в рамках беседы.
Как отличается подход к найму в зависимости от позиции и стека?
Роман (руководитель отдела интеграции с партнерами): В основном — глубиной технических вопросов, для более высоких позиций ожидаются более глубокие знания.
Например, от кандидата на позицию junior ожидаю услышать вопрос: «А как сделать правильно?». Хорошо, когда человек интересуется принципами, по которым работает, например, git.
Специалист middle-уровня понимает работу фреймворков и на тот же вопрос: «А как сделать правильно?» может дать ответ и объяснить, почему он сделал именно так.
Максим (руководитель отдела внедрения и сопровождения): У нашего отдела несколько направлений работы. В зависимости от направления задаются необходимые вопросы. Они формируются в основном из опыта администрирования информационных систем, опять-таки по направлениям архитектуры/эксплуатации сетей, серверов, виртуализации, контроллеров домена, СХД.
Какая фраза кандидата на собеседовании точно заставит вас выкинуть его резюме?
Роман (руководитель отдела интеграции с партнерами):
«Оно работает, но я не знаю, как. Мне, если честно, даже не интересно. Главное — чтобы работало».
«Я нашел команду в гугле и теперь ее использую. А что, плохая команда?».
«Мне абсолютно понятен этот мир. Я работаю уже N лет и все знаю».
Сергей (заместитель руководителя отдела тестирования): «Я сюда не учиться, а работать пришел». Нам не по пути с людьми, которые не стремятся к профессиональному росту и развитию.
Анатолий (руководитель отдела разработки клиентской части): «Я все знаю».
Кого последнего вы уволили и почему?
Роман (руководитель отдела интеграции с партнерами): Никого. Все с удовольствием работают.
Дмитрий (руководитель отдела серверной разработки): Увольнять пока не приходилось. Некоторые разработчики перешли в другие команды — в рамках группы компаний всегда есть возможности для развития.
Как происходит онбординг нового сотрудника?
Дмитрий (руководитель отдела серверной разработки): Технический директор проводит ознакомительную ВКС (видеоконференцсвязь). Ставится серия небольших задач для ознакомления с проектом и подготовкой рабочего окружения.
Максим (руководитель отдела внедрения и сопровождения): Знакомим с внутренними сервисами, проводим обучение по работе с нашим продуктом и с платформами виртуализации и их инфраструктурой.
Роман (руководитель отдела интеграции с партнерами): Онбординг проходит очень подробно и интересно. Рассказываем о продуктах и направлениях. После этого сотрудникам, как правило, не терпится приступить к задачам и поработать сразу по всем направлениям.
О команде
Какая методология разработки у вас используется и почему?
Дмитрий (руководитель отдела серверной разработки): Ориентируемся на agile. Работа двухнедельными интервалами над серией относительно небольших задач для оценки прогресса продвижения к цели и внесения корректировок при необходимости.
Роман (руководитель отдела интеграции с партнерами): Наша команда использует Kanban. При наличии некоторого объема задач применяем SCRUM. Все зависит от того, каким способом будет эффективнее решить задачи. Методологию выбираем всей командой после обсуждения.
Сергей (CEO): Специализация разработчиков по направлениям, темам, фреймворкам. Команда Termidesk работает над широким спектром важных составляющих комплексного решения: агент гостевой ОС, клиент подключений, сама программа подключения к удаленным рабочим местам (VDI Viewer), удаленный помощник, шлюз подключений. Проводим исследования и реализуем различные подходы в части оптимизации полосы пропускания. Дополнительно приходится синхронизировать работы над нашими продуктами с работой над продуктами других отделов как нашей компании, так и всей группы компаний «Астра».
Каковы размеры и структуры команд?
Сергей (CEO): Структура команд или отделов примерно одинакова: есть руководитель, его заместитель и несколько градаций специалистов. По размерности команд — сейчас у нас насчитывается 6 отделов разработки, в каждом примерно по 5 человек. До конца этого года планируем вырасти в среднем на 100%.
По каким критериям вы разбиваете разработчиков на джунов, миддлов и сеньоров?
Сергей (CEO): В целом мы руководствуемся опытом сотрудников в выбранном направлении. Безусловно, шириной кругозора, постоянным стремлением к развитию и способностью решать новые для сотрудников и актуальные для нас задачи.
Роман (руководитель отдела интеграции с партнерами): Уровень сотрудника зависит от того, насколько хорошо человек понимает ту информацию, которой пользуется, и насколько хорошо ориентируется в предметной области.
Кто чаще возглавляет команды: продуктовый специалист или технический?
Сергей (CEO): «В человеке должно быть все прекрасно: и лицо, и одежда, и душа, и мысли». Если ответить по существу, то в работе над нашим продуктом невозможно обеспечить качество, не понимая фундаментальных принципов его работы. Поэтому все руководители обладают ярко выраженным техническим складом ума. Но управлять командами, безусловно, также нужно уметь, и мы все в этом отношении помогаем друг другу.
Как часто люди меняют команды?
Роман (руководитель отдела интеграции с партнерами): В нашей команде в этом нет необходимости. У нас много взаимодействия с другими отделами, так как занимаемся интеграцией, в том числе внутренней.
Плотно взаимодействуем с отделом серверной разработки, так как пишем плагины для сервера, работаем с отделом разработки клиентской и агентской частей.
Ведем несколько проектов и проводим ротацию задач, чтобы сотрудник не засиделся в одном проекте и не заскучал от однотипной работы.
Что важнее: софт-скилы или хард-скилы ?
Сергей (CEO): Иногда мы вынуждены отказывать сильным кандидатам, которые не умеют слышать коллег. Но еще не делали предложений и тем кандидатам, которые не обладают минимальными знаниями и компетенциями, которые предусматривают наши вакансии.
Роман (руководитель отдела интеграции с партнерами): Очень важен баланс в скилах: софт-скилы должны дополнять хард-скилы, а хард-скилы — укреплять софт-скилы.
Как много собраний у вас проводится? Есть ли особые подходы к ним?
Сергей (CEO): Каждая команда внутри сама определяет количество и частоту собраний. Если вопрос может быть решен оптимальным образом без организации встречи — он должен решаться так: быстро и правильно.
Роман (руководитель отдела интеграции с партнерами): Собираемся три раза в неделю. Как правило, это брейншторм или синхронизация и два стендапа. Планируем час, но можем и за 15 минут все обсудить, а иногда можем до двух часов обсуждать особо интересные темы. Увеличение и уменьшение количества встреч обговариваем всей командой, всё зависит от рабочей необходимости. Можем заменить активность: например, вместо брейншторма провести синхронизацию или сделать внеочередную ретроспективу.
Дмитрий (руководитель отдела серверной разработки): Два раза в неделю обсуждаем текущие задачи и один раз в неделю планируем задачи на новый отрезок времени.
Как вы боретесь с выгоранием сотрудников?
Сергей (CEO): Я надеюсь, нашим сотрудникам это не угрожает: задачи расписаны на несколько релизов вперед, часто они совсем не похожи друг на друга и представляют собой вызовы для профессионалов своего дела с уклоном в исследования.
Роман (руководитель отдела интеграции с партнерами): Проводим one-to-one, есть опция «замена задачи» (дается задача из другого направления), в трудных задачах устраиваем созвоны и совместно разбираем возникшие сложности с демонстрацией экрана.
О технологиях
Какие языки, фреймворки и библиотеки используются на проекте?
Роман (руководитель отдела интеграции с партнерами): Основным языком является Python. Из фреймворков — Django Rest Framework, FastAPI, Swagger, dbus-python, pywin32. Немного применяем Ansible и Docker. Планируем использовать Terraform из Python-кода и click для построения cli-интерфейсов.
Сергей (заместитель руководителя отдела тестирования): testo, bash, jq.
Дмитрий (руководитель отдела серверной разработки): Python, django, django rest framework.
Анатолий (руководитель отдела разработки клиентской части): Python 3, С/С++, Qt5, библиотеки с открытым исходным кодом.
Что вы можете рассказать об архитектуре проектов?
Роман (руководитель отдела интеграции с партнерами): В основном это клиент-серверные решения, ориентированные на распределенность, отказоустойчивость и высокую доступность.
Какая у вас принята политика код-ревью?
Роман (руководитель отдела интеграции с партнерами): В основном, это один ревьюер на всю команду. Иногда применяем peer-review. Т.е. член команды делает ревью кода и сравнивает с общими рекомендациями, исправляет самые очевидные ошибки и отдает на основное ревью. Таким образом, вся команда погружается в код и имеет представление о том, что происходит в соседних проектах.
Анатолий (руководитель отдела разработки клиентской части): Предварительная проверка приложениями, далее — ручная.
Как тестируется код?
Сергей (CEO): После систем автоматического тестирования на стадии разработки продукция проходит стадию автоматизированного и ручного тестирования в профильном отделе, а далее тестировщиками становятся сами исполнители, т.к. в процессе разработки мы пользуемся своим же решением в выполнении повседневных задач.
Роман (руководитель отдела интеграции с партнерами): Автотесты в GitLab pipeline. Применяем как позитивные, так и негативные тесты. Пишем модульные, функциональные и системные тесты, когда это необходимо.
Анатолий (руководитель отдела разработки клиентской части): cppcheck, flake8, code review.
Как устроен процесс документации и ведения базы знаний на проектах?
Роман (руководитель отдела интеграции с партнерами): Документация понятная и структурированная. Новая возможность или полезная информация оформляется в виде статей. Их может писать каждый сотрудник, пополняя таким образом базу знаний. Это всегда приветствуется. А еще есть раздел с предложениями и пожеланиям. Каждая идея обсуждается в команде и если все согласны, то принимается в работу.
Каков процент легаси-кода на проекте и как часто разработчики занимаются его рефакторингом?
Роман (руководитель отдела интеграции с партнерами): В нашем отделе весь код новый. Мы закладываем время на ревизию, рефакторинг и тестирование. Стараемся улучшать не только читаемость кода, но и его функционирование.
Анатолий (руководитель отдела разработки клиентской части): ~35%. Рефакторим редко, если этого требует добавление нового функционала.
alixplisov
Круто! Всегда интересно читать как сотрудники большой компании из разных подразделений отвечают на вопросы каждый со своей точки зрения.