Северьян Дученко

Северьян Дученко

Тимлид команды Опт-core

—  Чем занимается команда Опт-core?

—  У нас есть большая команда Опт, которая решает разнообразные задачи по развитию и поддержке сервиса МойСклад. Здесь два направления: Опт-biz и Опт-core.

Опт-biz занимается онлайн-заказами, маркировкой и ЭДО, а Опт-core — более техническими задачами, связанными с ядром учета товаров и остатков, адресным хранением, складской логистикой.

Задачи в Опт-core более сложные, поэтому у нас больше разработчиков уровня Senior, а в Опт-biz — Middle. Сейчас в команде Опт-core 11 человек: разработчики, тестировщики, аналитик, продакт, скрам-мастер, дизайнер.

Основной язык программирования — Java, работаем по спринтам. Специфика команды в том, что мы занимаемся full-stack разработкой. МойСклад — сервис с большой историей, и мы постоянно обновляем стек технологий. Например, при моем активном участии мы «переехали» с 8 на 11 версию Java, а теперь планируем переход на 17. На сегодняшний день в числе наших инструментов EJB, WildFly, GWT, PostgreSQL.

—  Какими должны быть компетенции у сотрудника, чтобы он вам подошел?

—  Все зависит от потребностей команды. Чаще мы ищем разработчиков уровня Middle и Senior. На роль Junior — реже, но тоже практикуем, чтобы не терялся навык обучения кадров внутри команды. Сейчас у нас трудится разработчик, который пришел в МойСклад студентом без опыта, а теперь он — сильный Middle.

Требования к соискателю на роль Junior — знание основ Java и SQL на среднем уровне, умение писать несложные запросы. Приветствуется наличие опыта разработки pet-проектов. Важно быть мотивированным, целеустремленным и уметь общаться.

Главное на начальном этапе — не пытаться найти всю нужную информацию самостоятельно, а привлекать старших коллег и задавать им вопросы, чтобы быстрее нащупать верное направление решения задачи.

Также не стоит фокусироваться на определенном типе «простых» задач. Если в работе встречается что-то непонятное и сложное — это возможность получить ценный опыт. Коллеги не бросят, подскажут и помогут, а сотрудник «прокачает» свои навыки. Когда становится комфортно решать сложные задачи — это признак того, что разработчик перешел на уровень Middle.

С разработчиками уровня Senior сложнее. Если от Middle-разработчиков мы ждем уверенных технических навыков, так называемых hard skills, то для уровня Senior также важны soft skills. Такие специалисты должны уметь поставить задачу разработчикам и решать сложные задачи самостоятельно, иметь хороший технический кругозор.

Помимо роста в уровне компетенций у разработчиков есть возможность сменить команду и стать тимлидом нового направления.

За 3 года, пока я работаю в МоемСкладе, у нас открылись направления Производства, Маркировки, Global для выхода на мировые рынки, и «донором» кадров для них стала команда Платформа (сейчас Опт-core). У нас сложные задачи, и люди быстро развиваются, растут как в уровне компетенций, так и в доходах.

—  Как проходит адаптация новых сотрудников в команде Опт-core?

—  Большая часть сотрудников у нас работает удаленно, но когда принимаем в команду нового коллегу, я стараюсь выйти в офис и познакомиться с ним лично. Далее у него появляется ментор из команды, от которого новичок в первую очередь получает знания, как устроены процессы в компании, о структуре проекта и используемых инструментах. Затем постепенно переходят к небольшим задачам: собрать код, подебажить, запустить тесты.

И начинается реальная работа: мы выдаем сотруднику тикет, он изучает постановку задачи, смотрит, как это соотносится с git flow, тем, как у нас принято управлять исходным кодом, тестировать и релизить.

—  С какими подразделениями компании вы больше всего взаимодействуете?

—  В МоемСкладе плоская структура управления. Мы свободно общаемся с другими командами, когда нужно.

Например, если хотим добавить в API какую-то функциональность, то можем скинуть на ревью команде API. Или когда добавляем функциональность для английской версии МоегоСклада, то даем переводы на ревью команде Global.

В компании есть гильдия дизайнеров, один из которых — постоянный член нашей команды. Есть скрам-мастер, который является частью нашей команды и в то же время работает с другими. С нами регулярно общается технический директор: ставит задачи или интересуется, как мы их выполняем.

—  Назови три главных качества, которыми должен обладать разработчик?

—  Первое и основное — любить писать код.

Второе — быть жадным до знаний, постоянно развиваться и узнавать новое в области, в которой хочешь стать хорошим специалистом. Просто читать книги недостаточно — нужно применять полученные знания на практике.

Третье важное качество, без которого прогресс немыслим — это смелость браться за сложные задачи и решать их.

—  Почему тебе нравится работать в МоемСкладе?

—  У нас интересная и быстро развивающаяся предметная область: в компании постоянно появляются новые направления, продукты, интеграции.

А еще привлекает открытость руководства МоегоСклада: с сотрудниками делятся результатами нашей работы, и мы видим подтверждение в цифрах, что темп роста компании действительно высок.

—  Расскажи о самом сложном и интересном проекте

—  Пожалуй, это изменение способа хранения цен в базе, которые наследуются между товарами и модификациями. Нужно было аккуратно подправить существующую функциональность, чтобы она не сломалась, и при этом изменить схему хранения уже накопленных исторических данных.

Было сложно и интересно. Под чутким руководством команды Архитектура мы добавляли к нашей библиотеке для работы с очередями функциональность таймеров отложенного срабатывания, которые потом использовали в нашем сервисе для автоматизации действий пользователя. Благодаря слаженной командной работе мы справились!

После проведения работ пользовательские запросы остатков через API стали выполняться быстрее. Для разработчиков схема данных стала проще, а запросы отчётов упростились. Это положительно сказалось на производительности.

—  Какой у тебя стиль руководства?

—  Скорее, демократичный и не совсем формальный. Я не очень люблю микроменеджмент и дергать людей, чтобы они логировали каждую мелочь.

Мои сотрудники должны быть ответственными и самостоятельными, быстро реагировать на проблемы и баги. Важно, чтобы люди не боялись принимать решения, понимали процессы в компании и внутри команды, могли драйвить задачу сами.