Наша рубрика «Где работать в IT» — это интервью с интересными айти-компаниями, в которых они делятся подробностями о процессах своей работы. Представители индустрии отвечают на вопросы о найме, условиях, командах и технологиях. В этом выпуске мы расскажем про компанию DatsTeam, которая разрабатывает рекламные платформы, игры, мобильные приложения и финтех-решения. В команду продуктовой разработки входят более 300 разработчиков, PM, PO, инфраструктура, DevOps, SecOps, QA. Сотрудники работают распределённо из разных гео. Основные стеки — JAVA Spring, PHP Symfony, React, iOS, Android. А ещё в выпусках мы рассказываем об оценках компаний на Хабр Карьере, чтобы вы были в курсе, за что их любят (или нет?) сотрудники. Кстати, если вы тоже оцените своего работодателя, то это поможет тем, кто ищет работу в IT. → оценить работодателя Обо всех процессах в компании нам подробно рассказали: Principal IT Recruiter CHRO   People partner TeamLead PM Frontend-разработчик Datsteam — группа компаний, которая разрабатывает собственные продукты: рекламные и игровые платформы, мобильные приложения, платёжные сервисы и финтех-решения и владеет собственным рекламным агентством в сфере Affiliate-маркетинга. Продукты охватывают рынок с обширной географией.  В DatsTeam одна из самых успешных команд коммерческой разработки, где более 300 разработчиков смогли сделать карьеру. Средняя продолжительность работы в компании в команде разработки — 2,5 года, но лиды и техлиды работают в компании по 5, 7, 10 лет.  Публичная оценка компании на Хабр Карьере в 2023 году — 4,66 из 5. Сотрудники особенно ценят DatsTeam за комфортные условия труда, отношения с коллегами и возможность профессионального роста. Подробнее посмотреть оценки и почитать отзывы сотрудников можно в профиле DatsTeam на Хабр Карьере. Какой в вашей компании сложился рабочий график и какое отношение к переработкам? Дарья Андреева: Мы гибко подходим к вопросу графика, учитывая распределённость команд. У нас восьмичасовой рабочий день, плюс перерывы на отдых на своё усмотрение в комфортное для сотрудника время, но важно планировать время так, чтобы не пропускать митинги, дейли, синки. Часы рабочей активности с 10:00 до 19:00 (если ориентироваться на московское время), но кто-то начинает в 9:00, а кто-то — в 12:00. Важно быть доступным для связи в рабочее время и успевать выполнить свою часть задач, а об остальном всегда можно договориться с лидом.Переработки случаются, в основном по желанию и иногда ввиду необходимости. Если что-то «падает», то наша культура предполагает, что сотрудник задержится и решит проблему, а компания оплатит затраченное на это время. Но если хочется поработать и подзаработать в выходные или праздничные дни, то и такая возможность есть.  Какие бытовые условия ждут нового сотрудника на рабочем месте?  Ирина Амирсултанова: Прежде всего, хочется рассказать про московский офис, он находится в центре, на ст.м.Тульская (МЦК — Верхние Котлы). Не так давно мы сделали ремонт, поэтому тут очень приятно работать. Всем необходимым для работы обеспечим, от кофе по утрам до регулярных встреч с пиццей и не только.  Бонус нашего офиса — летняя большая терраса на крыше, на которой традиционно весело проходят главные события, например, день рождения компании и день разработчика. На веранде можно полюбоваться видами Москвы, поиграть в настольные игры или пинг-понг, покурить кальян или просто поработать на свежем воздухе.  Есть ли возможность удалённой работы? Дарья Андреева: Да, конечно. В этом плане у нас в компании полная свобода. У нас распределённая команда, которая работает из разных гео, сотрудники путешествуют и встречаются, группируются по месту, помогают друг другу по бытовым вопросам, организуются на тимбилдинги. Есть офис в Москве, который всегда открыт и рад видеть коллег, предпочитающих офлайн-общение. Но уже несколько лет основной формат работы, который выбирают сотрудники, именно удалённый. Мы выстроили рабочие процессы и коммуникацию таким образом, чтобы не зависеть от необходимости личного присутствия сотрудника в офисе. Всё, начиная от оформления и предоставления оборудования, мы можем сделать дистанционно. Более того, мы не привязываемся к гео, и каждый сотрудник сам решает, из какой точки мира он будет работать сегодня.  Какой социальный пакет получают сотрудники? Дарья Андреева: У нас есть ДМС по России, рассрочка на годовые абонементы в несколько популярных сетевых фитнес-клубов, занятия йогой, клуб любителей яхтинга и бесплатное посещение одного из лучших сквош-клубов Москвы. Чтобы занятия проходили веселее и помогали знакомиться с новыми коллегами, у нас появились внутренние комьюнити, к которым можно присоединиться в любое время и заниматься спортом вместе. Так, сотрудники из одного города могут встретиться на ежегодном забеге или поиграть в футбол после работы, а если сделать это не позволяет расстояние, то всегда можно заглянуть на тренировку по йоге в Zoom. Наши ребята из бегового клуба на удалёнке пробегали уже и Босфор, и Великую китайскую стену :) Периодически проходят недели ЗОЖ, участники и победители получают баллы, на которые потом выбирают себе подарки в корпоративном интернет-магазине Datsteam Store. И это не только красивый брендированный мерч, но и даже техника. Самая популярная покупка у самых активных участников всевозможных турниров — это AirPоds :) Изучение английского как никогда популярно, поэтому мы расширили партнёрские программы и подобрали несколько курсов от Skyeng, MAPL, Skillbox. А для тех, кто хочет практиковаться чаще или поддерживать текущий уровень, есть внутренний разговорный клуб для уровней А2-В1 и В2-С1. Помимо этого, у нас много других корпоративных предложений на образовательные платформы и для сотрудников, и для их близких. Начиная от профессионального обучения (Яндекс.Практикум, Skillbox) до поиска себя в новых хобби (мастер-классы по кулинарии, лепке, обучение игре на музыкальных инструментах, съемке Reels, рисованию и прочее). А чтобы хорошо отдохнуть, мы подготовили набор скидок для путешествий и развлечений с семьёй.  Какие бонусы, премии и компенсации предусмотрены в компании? Дарья Андреева: Мы закладываем весь доход сотрудников в окладную часть, пересматривая размер по мере роста компетенций и грейда. Мы анализируем рынок и индексируем зарплаты, поддерживая конкурентный уровень.  Сейчас мы совершенствуем и автоматизируем процедуру Performance Review на новом корпоративном портале для разработчиков CoDev, чтоб она стала непрерывной, это значит, что сотрудник может в любой момент при достижении целей пройти оценку и претендовать на более высокий грейд и более высокий доход в соответствии с грейдом.  Какие есть перспективы для образования и личного развития у сотрудников? Дарья Андреева: Все сотрудники разработки участвуют в Performance review, на котором составляется план развития и анализируется карьерный трек в компании, также они получают обратную связь от коллег, лидов, СТО непрерывно. Это автоматизировано на корпоративном портале. Также проводим One-to-one, и на них можно заранее обсуждать промежуточные результаты и скорректировать вектор развития. У нас можно расти в разных направлениях, многим ребятам нравится наращивать техническую экспертизу, не переходя на роль менеджера. Много кейсов, когда сотрудники переходили в другой отдел и продолжали работу уже по смежной специальности. Ну а если хочется расти вверх, то у нас есть внутренние курсы для тимлидов от нашего CIO. Ирина Амирсултанова: У нас есть Академия DatsTeam — коллекция материалов для самостоятельного изучения. Тут аудио- и электронные книги, курсы, записи встреч, видео. Мы всегда поддерживаем желание развиваться в качестве спикера или создавать крутые проекты для ИТ-сообщества. Во сколько этапов проходит наём, и что на них ожидает соискателя? Дарья Андреева: Мы оптимизировали процесс найма, и сейчас у нас два основных этапа, которые проходят все кандидаты. Всё начинается со знакомства с рекрутером, на котором становится понятно, насколько мы мэтчимся по ценностям и ожиданиям, мы обсуждаем опыт кандидата и особенности проекта. Техническое интервью проводят тимлиды команд, в которых открыт поиск. Ребята знакомятся с кандидатом, рассказывают про команду и задачи, также задают технические вопросы и проверяют hard skills во время лайвкодинга. Для некоторых позиций могут добавляться дополнительные этапы. Например, иногда мы предлагаем решить тестовое задание перед техническим интервью, если понимаем, что у нас формируется большой пул кандидатов. Это позволяет быстрее оценить навыки кандидата и не тратить своё время и время кандидатов на ожидание встречи. Или для поиска управленческих позиций мы добавляем дополнительные встречи с командой и руководящим составом. Всё опционально. Мы стараемся не растягивать процесс поиска, при этом сохраняя качество найма. Даёте ли вы тестовое задание кандидатам? Как оно устроено? Мариэтта Парсекян: Мы редко используем практику тестовых заданий. У нас может быть скрининг из 5-10 вопросов до техинтервью. На техинтервью по ряду позиций используем лайвкодинг. Как отличается подход к найму в зависимости от позиции и стека? Мариэтта Парсекян: Если позиция более высокого грейда (синьор, тимлид или сложный стек, например JAVA), то и требования к позиции выше, и процесс найма сложнее, в первую очередь, более сложный отсев на этапе резюме. Какая фраза от кандидата на собеседовании точно заставит вас выкинуть его резюме? Мариэтта Парсекян: Мы не выкидываем резюме, а просто завершаем процесс на каком-то этапе, всегда с обратной связью. Что-то токсичное, вне рамок адекватного общения, оскорбления коллег или бывшего работодателя — и мы завершим переговоры.  Кого последнего вы уволили и почему? Мариэтта Парсекян: В течение года мы проводим аудит работы команд наших продуктов, чтобы оценить их качество и эффективность. Последним уволили low performer- разработчика с очень низкой производительностью и низкой оценкой по Performance Review.  Как происходит онбординг нового сотрудника? Ирина Амирсултанова: В день выхода новичка с ним связывается онбординг-менеджер и проводит по всем этапам: оформление, выдача техники и подключение, добавление к чатам и даже небольшой квест по корпоративному порталу. Это происходит онлайн или офлайн в офисе по желанию, а дальше передаём лидам, которые заранее подготовили пул задач для новичков. У нас классный welcome-пак :) Все новички проходят игровой welcome-курс и welcome-задачи, которые позволяют познакомиться ближе с компанией, узнать про наши процессы, инструменты и как у нас тут всё устроено. Вторая часть онбординга — техническая, её проводит лид команды. Какая методология разработки у вас используется и почему? Мария Кербс: Мы применяем agile-методологии (Scrum, Kanban), но адаптируем их под себя. Сейчас все больше применяем Aeilus — это методология управления потоком ценности, разработанная нашим CIO Виктором Большаковым. Каковы размеры и структуры команд? Мария Кербс: Все наши команды кросс-функциональные, размер стандартный — two-pizza-size, 4-8 человек. Состав зависит от специфики продукта, но там точно есть бэкенд-, фронтенд-разработчики, тестировщики, в некоторых командах есть дизайнеры или аналитики. По каким критериям вы разбиваете разработчиков на джунов, мидлов и синьоров? Мария Кербс: Грейд определяется на собеседовании, но затем в процессе работы и роста он может быть пересмотрен при Performance review. Сейчас мы работаем над автоматизацией Performance review: наполняем компетенции из хард-скилов вопросами, чтобы разработчики самостоятельно могли пройти тестирование и узнать свой грейд по скилу. Общий грейд складывается из грейдов по ключевым компетенциям. Кто чаще возглавляет команды, продуктовый специалист или технический? Мария Кербс: Команды разработки возглавляет технический специалист. В продуктовой команде все имеют свои роли и право голоса, поэтому нельзя сказать, кто именно её возглавляет. Фасилитирует команду проджект-менеджер. Как часто люди меняют команды? Мария Кербс: Не очень часто, но такое происходит, так как мы не хотим ограничивать сотрудников в росте и роде деятельности. В целом, любой сотрудник может перейти в ту команду, где ему интереснее технология/тематика/возможности/темпы и т д. Бывает и так, что целая команда, закончив работу над одним продуктом, может перейти в другой. Что важнее, софт-скилы или хард-скилы? Ирина Амирсултанова: Их баланс и синтез. Конечно, надо иметь софты и уметь применять их грамотно, ведь у разработчиков много коммуникаций. Но техническая составляющая не менее важна, нужно быть хорошо подкованным. В то же время на одних хардах далеко не уедешь. Как много собраний у вас проводится? Есть ли особые подходы к ним? Мария Кербс: Это зависит от сотрудника/команды и стадии разработки проекта. Но стандартно это скрам-мероприятия + рабочие встречи. Мы не проводим собрания ради собраний, у каждой встречи есть повестка и фасилитатор. В то же время у нас политика открытых дверей: ты можешь договориться и созвониться с любым коллегой или руководителем на любую тему. Ирина Амирсултанова: Наш отдел корпоративной культуры придумал интересную инициативу — кофе по средам. Ребята регистрируются на портале, их рандомно разбивают по парам, они созваниваются и общаются онлайн, как бы они могли столкнуться на общей кухне в офисе у кофемашины или кулера. Как вы боретесь с выгоранием сотрудников? Мария Кербс: Не выгорать — это важно в первую очередь для самого сотрудника, поэтому мы стараемся побуждать их всегда открыто говорить о своих сложностях или усталости. Стараемся не перегружать людей монотонной или, наоборот, слишком сложной работой, прислушиваться к их пожеланиям и предложениям. Также на нашем пространстве разработки CoDev есть статистика активностей сотрудника и нотификация, если замечено подозрительно много активности, например, по выходным или в целом. Отвечает Давид Арутюнян Какие языки, фреймворки и библиотеки используются на проекте? Новые проекты у нас написаны на TypeScript, но есть часть проектов, которые написаны на JavaScript, сейчас они переводятся на TypeScript. Все сайты и веб-приложения написаны на React. React сложно назвать фреймворком, это больше библиотека, позволяющая удобно структурировать код в компоненты, использовать шаблонизацию за счёт JSX и управлять состоянием. Этого слишком мало, чтобы использовать в production-grade решениях. Как минимум нужны роутинг, хранилище и т.д. Соответственно, мы используем, наверное, самый популярный в данный момент React фреймворк — Next.js. В его уже есть file-based роутинг, серверный рендеринг, оптимизация изображений и ещё много клёвых фишек. Не хватает только хранилища данных, и для этого мы используем redux вкупе с redux-saga. Это позволяет нам вынести слой логики из слоя представления. Мы пошли даже дальше и всю логику вынесли в отдельную библиотеку, теперь можем спокойно переиспользовать её на новых проектах. Но это не значит, что поголовно все проекты написаны с использованием Next.js. Старые проекты и админки до сих пор используют старый подход. Они не используют никакой фреймворк, и весь роутинг и хранение данных полностью лежит в зоне ответственности приложения. Если говорить о бэкенд и мобильных приложениях, то используется широкая палитра технологий. На бэкенде используются языки PHP, Java, C#, 1С, Kotlin, Golang, Rust, а также по необходимости Python, Lua и другие. Для разработки мобильных приложений используются нативные технологии Java/Kotlin и Swift/Objective-C. Что вы можете рассказать об архитектуре проектов? В данный момент архитектура новых проектов позволяет ускорять time 2 market за счёт того, что многие части кода у нас уже написаны и отлажены, и мы просто их переиспользуем, но, к сожалению, в данный момент это касается только бизнес-логики проектов. В дальнейшем мы, конечно же, планируем вынести базовые компоненты и общие элементы (такие как форма регистрации, баннеры и т.д.) в отдельную библиотеку, но с возможностью кастомизации. Это позволит нам доставлять фичи и множить вайтлейблы ещё быстрее! В других командах у нас практикуются разнообразные подходы к архитектуре Monolith, Serverless, SOA, Microservices. Это связано с тем, что в разработке и поддержке находится множество разнообразных продуктов, и у наших команд разработки широкая автономия в принятии архитектурных решений. Однако эти решения контролируются СТО. Какая у вас принята политика код-ревью? У нас всё просто: все смотрят код у всех, т.е. полное cross-review. Каждый имеет право оставлять комментарии в мёрдж-реквестах всех других коллег. Каждая команда самостоятельно определяет сложность этого процесса. В финтех-проектах построже с код-ревью. Как тестируется код? Мы используем Cypress. С помощью него мы пишем интеграционные тесты нашего UI. Cypress позволяет декларировать набор инструкций для браузера, которые он будет затем выполнять, ожидая определённое поведение. Но в основном, бОльшая часть тестирования приходится на ручных тестировщиков и отдел QA. Также отдел QA пишет тест-кейсы, по которым мы, в свою очередь, тоже можем писать автотесты. Ещё в системе контроля версий используются статические анализаторы кода, что помогает тимлидам обеспечивать его высокое качество. На некоторых проектах этот процесс является частью CI, что может включать дальнейшие шаги по автоматическому функциональному тестированию. Кроме этого, в компании богатый опыт использования различных инструментов тестирования продукта Gherkin, K6, BrowserStack, и есть отдел автоматизированного тестирования. Кстати, недавно у нас проводился багатон DBug, в рамках которого было найдено и исправлено большое количество багов. Как устроен процесс документации и ведения базы знаний на проектах? Вся документация ведётся в Confluencе. Там находятся все ТЗ на все фичи, которые мы разрабатываем. Наши аналитики составляют объемные ТЗ с описанием api, схем обмена данными и бизнес-процессов. У нас есть штатные DBA для управления базами данных. Для таких объёмов данных, как у нас, конечно, процессы миграций и изменения структуры данных отдельно контролируются тимлидами и СТО. Каков процент легаси-кода на проекте и как часто разработчики занимаются его рефакторингом? Я бы сказал, что процент легаси-кода на наших проектах довольно невелик, но есть проекты, которые целиком представляют из себя легаси-код. В данный момент, как мне кажется, это все проекты, написанные на JavaScript, но «заслуживающие» рефакторинга на TypeScript. Также есть задачи с пометкой «техдолг». Команда проекта их не игнорирует и закрывает по мере возможностей так, чтобы не навредить бизнес-процессам. Но надо отметить, что продуктов у нас много разных, и ситуация может отличаться. Тем не менее, каждый СТО, ответственный за свой набор продуктов, регулярно ставит цели по снижению уровня техдолга.  Помогаем строить карьеру в IT