«МойСклад»: интересная компания с правильной атмосферой
Почему нужны разработчики
Семь лет назад в команде «МоегоСклада» было всего 12 человек, которые по очереди отвечали на звонки в поддержку, исправляли ошибки и находили время на внедрение дополнений к релизу. К 2016 году компания выросла до 32 сотрудников. А после ситуация на рынке резко изменилась: организации и ИП начали массово переходить на контрольно-кассовую технику нового поколения, а налоговые службы — собирать всю информацию о кассовых операциях компаний. Из тени вышли целые отрасли малого бизнеса: развитие пошло бешеными темпами. Поэтому самое узкое место у проекта, как и у всех на этом рынке, — скорость разработки.
Сейчас в «МоемСкладе» больше 100 сотрудников. В отделе разработки — 56 человек, включая тестировщиков и аналитиков. Большая часть программистов работает с Java/Scala-стеком, ещё одна команда пишет мобильные приложения под iOS и Android на Java/Kotlin/Swift.
Офис находится у метро «Технопарк», а через несколько месяцев компания переедет в новое большое помещение, расположенное в соседнем корпусе. От метро 4–5 минут пешком и до нового, и до старого офисов.
Кто нужен команде
Вся компания построена ради продукта: он должен быть хорошим, удобным и простым. Большинство пользователей — малый и реже средний бизнес. Команда старается автоматизировать все торговые процессы и внедрять изменения, которые упрощают жизнь клиентов. Это не блокчейн, это понятный софт, который нужен людям — в частности тем, которые хотят визуализировать деятельность своего интернет-магазина или автоматизировать работу розничного. Проект быстро развивается, потому что есть хорошая обратная связь от пользователей.
Основной фокус в поиске — Java-мидлы, но senior- и junior-разработчики тоже приветствуются. В отличие от банков, в компании нет трудностей с безопасностью и невероятно длинного процесса согласований. В отличие от гигантов с потребностями Java-разработки, в «МоемCкладе» инициатива наказуема внедрениями предложений, продвижением или повышением.
Чтобы разобраться в «МоемCкладе» и понять особенности работы с торговлей и самого продукта, нужно немало времени, поэтому компания ищет разработчиков, которые задержатся в компании надолго. И, соответственно, создаёт условия, чтобы технологической команде жилось очень хорошо.
Процесс разработки
1. Новые задачи — от пользователей и продактов
Спринты длятся две недели. По словам руководителей, Scrum в компании «уже хорошо работает, но ещё не на 100%»: то есть Agile без религии, фанатизма и характерных ритуалов.
Новые задачи для разработки появляются из двух источников — линии поддержки или из бэклога. Приоритеты задач в бэклоге определяют раз в четыре месяца. На встрече собираются те, кто общался с клиентами, и те, кому важно менять продукт: руководители, продажники, аналитики, аккаунт-менеджеры, руководитель службы поддержки и все, кто сталкивается с реальностью. Далее из бэклога команды получают по одной-две задачи на спринт до следующего обновления.
Также задачи приходят от третьей линии поддержки и от команд разработки — изменения вроде рефакторинга или перехода на новые версии фреймворков.
2. У всех есть шанс добраться до ядра
![«МойСклад»: интересная компания с правильной атмосферой «МойСклад»: интересная компания с правильной атмосферой](https://hhcdn.ru/icms/10154283.png)
Архитектурная команда в «МоемCкладе» довольно маленькая: три человека, включая разработчиков-архитекторов и QA Lead (ответственного за качество). При этом все команды работают с довольно глубокими изменениями.
Практика показала, что если изолировать интересные штуки в одной команде, то остальные не растут. Поэтому «ништяки» достаются всем, и влезть в уровень ядра можно даже с мобильной разработки.
Над бэкофисом работают четыре команды. Две продуктовые, которые делают фичи для пользователей, ещё одна команда делает API, которое используют продукты и сторонние интеграторы. Они же делают кучу интеграций, поддерживают связи с банками и CRM.
3. DevOps — зона развития
Когда возникает спор о выборе метода решения, команда сначала пытается договориться внутри с помощью логики. Тимлид не бог, право окончательного голоса только у технического директора (он же соучредитель). Поэтому подавляющее большинство споров решается аргументированно, в тот момент, когда получается убедить команду. Можно привлекать руководителей других команд как арбитров.
Релизы сейчас накатываются руками с практически полной остановкой сервиса, потому что последние два года для рынка были настолько бешеные, что заниматься DevOps не было времени. Сейчас компания проводит автоматизацию и настраивает CI/CD. У нового сотрудника есть возможность приложить руку и к этой части продукта.
Вся вошедшая в прод функциональность покрывается автотестами, есть свой фреймворк для их создания. Но основная задача тестировщиков — ручное и исследовательское тестирование, создание тест-кейсов и документации.
Проекту «МойCклад» 11 лет, и, конечно, в нем есть легаси-код — нужно быть к этому готовым. Устаревший код постепенно перепиливается, процесс идет со стабильной скоростью.
Как проходят собеседования
Первое и главное для команды «МоегоCклада» — понять профессиональный уровень разработчика, его знание основ программирования. Например, процесс поиска Java-мидла выглядит так:
1. Первое собеседование
Никаких предварительных заданий: надо просто прийти в офис. На собеседовании дают задачи на основные структуры данных, нужно показывать код или псевдокод на листочке, чтобы показать образ мыслей. Никаких «чем пузырёк отличается от квиксорта». Только практические вещи.
Есть опрос по ключевым технологиям, в том числе SQL: как работают транзакционные модели, например. Человек, который не может описать особенности работы транзакций в реляционной базе, не подходит.
2. Второе собеседование
Его задача — оценить уровень работы с кодом в команде. Разработчику дают не очень хорошо написанный код: классы и интерфейсы на нескольких страницах. Код работает, но там куча плохих решений. Кандидату предлагают написать список того, что улучшит всё это на уровне, например, дизайна классов.
Джун не справится. Сеньор обязан справиться. Между этими состояниями есть мидлы, но есть и джуниоры, которые выполняют это задание сильно лучше мидлов. Они обычно вырастают очень быстро, потому что в «МоёмСкладе» признаются только профессиональные заслуги. Например, пару недель назад на конференции тимлидов выступала девушка, которая полтора года назад пришла в компанию джуном. Тестирование возглавляет девушка, которая пришла на должность джуниора и за 4 года выросла до руководителя.
В почете смышленые студенты, пускай даже без опыта работы. Если получается пройти задание на рефакторинг, сразу — добро пожаловать и боевые задачи. Примеров десятки: после того же МИФИ даже без опыта вполне реально быстро обучиться.
3. Тестовое — только для джунов
Для мидлов и синьоров нет «домашнего проекта», а для джуниоров есть домашнее задание. Оно не особо сложное, но большинство сыпется на том, что не в состоянии дочитать ТЗ и оформить задание должным образом. Там написано по шагам, что делать, но 70% кандидатов присылают решение не с тем сборщиком, не с тем выводом и так далее. При собеседовании на уровень джуна также могут помочь опенсорс-проекты или выложенный код: если повезет, они спасут от домашнего задания.
Первые боевые задачи у новых сотрудников появляются на второй-третий день.
Занимаются работой, а не бюрократией
Основатели писали код в одиночестве несколько лет, пока компания была маленькой. Дальше эта традиция сохранилась. Все тимлиды участвуют в разработке, а проджектов, которые только двигают листочки по доске, в команде нет. «МойСклад» вообще недолюбливает менеджеров среднего звена.
Никакого назойливого тимбилдинга и прочих корпоративных формальностей в компании нет. «МойСклад» — это логово милых интровертов. Здесь поощряют выступления на конференциях, есть 5 дней «отпуска без больничного» в год, когда можно просто не прийти. Зарплата стабильно пересматривается раз в год и чаще — в зависимости от успехов сотрудника. Многие сотрудники работают в компании больше 5 лет, а значит, им удалось создать комфортную среду для общения и развития.
Присмотритесь к их вакансиям. «МойСклад» — интересная компания с правильной атмосферой.
![«МойСклад»: интересная компания с правильной атмосферой «МойСклад»: интересная компания с правильной атмосферой](https://hhcdn.ru/icms/10154285.png)