
— Чем занимается команда Опт-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 стали выполняться быстрее. Для разработчиков схема данных стала проще, а запросы отчётов упростились. Это положительно сказалось на производительности.
— Какой у тебя стиль руководства?
— Скорее, демократичный и не совсем формальный. Я не очень люблю микроменеджмент и дергать людей, чтобы они логировали каждую мелочь.
Мои сотрудники должны быть ответственными и самостоятельными, быстро реагировать на проблемы и баги. Важно, чтобы люди не боялись принимать решения, понимали процессы в компании и внутри команды, могли драйвить задачу сами.