Здесь мы планировали текст о том, что наша большая цель – стать лучшей в стране продуктовой IT-компанией. В бэклоге – десятки проверенных идей продуктов с просчитанной экономикой и пройденным этапом CustDev. Недостающее звено нашей амбициозной цепочки – разработчики, которые создадут эти продукты. Люди, которых мы ищем сейчас, которых отбираем перманентно почти всегда.
Но мы решили не рассказывать про золотые горы, потому что нам нужны не кладоискатели, а те, кто любит работать и достигать результата. Поэтому здесь статья о том, что такое разработка в ROCKET и кто такой человек-ROCKET на позиции разработчика. Прочтите и, если найдете созвучные для вас мысли, отправляйте свое резюме.
Немного очевидных фактов
Разработка в ROCKET – это, в первую очередь, веб-разработка. Не десктоп, не мобильные версии, не чисто серверная разработка. Мы работаем с браузерными приложениями, у которых есть фронт и бэк. И довольно часто в вакансиях описываем full-stack разработчиков. Потому что нам интересно, когда человек может закрыть задачу целиком, отгрузить полноценный результат в соответствии с бизнес-требованиями к продукту.
Почему мы не разделяем задачи на FrontEnd и BackEnd? Потому что мы – за разумный баланс между Agile-подходом и опытом зрелого, прогрессивного бизнеса. «Фронт» и «бэк» вечно спорят между собой. Мы не раз видели, как бэкэндеры отдают работу в другом формате, убежденные, что фронтэндеры сами там все адаптируют. Full-stack дает нам более качественную стыковку и хороший продукт.
Итак, разработка в ROCKET глобально делится на 4 типа:
- кастомная разработка для наших клиентов,
- модули и виджеты (stand alone или созависимые),
- стартапы (новые продукты),
- внутренняя разработка, направленная на поддержание или улучшение цифровой инфраструктуры компании.
Думаем, нет необходимости подробнее разбирать каждый тип. Поговорим о более интересных особенностях работы в ROCKET.
Особенности разработки в ROCKET
Первый миф, который хотелось бы развенчать: у нас не авральная система, мы не сидим по ночам с энергетиками в обеих руках. При этом мы работаем для крупнейших в своем сегменте российских компаний. Среди наших заказчиков – Додо, Сбермаркет, Восточная горнорудная и многие другие. Разработчики ROCKET напрямую общаются с топ-менеджерами и основателями компаний клиентов, проводят виртуальные сессии с людьми, которые многие видят только на экранах своих гаджетов.
Если вас по каким-либо причинам пугает работа с внешними заказчиками, есть внутренние продукты ROCKET – сложная, но классная история для скрупулезных людей, которые изнутри помогают масштабированию нашей компании.
На 50% мы работаем с самостоятельными (Stand Alone) приложениями, другие 50% приложений – созависимые, те, которые не могут существовать без amoCRM, Asana или других сервисов.
Большинство наших продуктов – классические веб-приложения средней сложности. Среди них есть решения, которые никак не связаны с данными. Они, например, взаимодействуют с интерфейсом amoCRM. В таких случаях сложность для разработчика лишь в том, что необходимо интегрироваться со сторонними сервисами. Получается, что мы отвечаем за свой продукт (безошибочно написали то, что теперь работает стабильно), и за то, как нашему приложению отдают информацию другие продукты.
Важно понимать, что решению не обязано быть хитровыдуманным, чтобы быть полезным. Малая сложность часто несет высокую ценность. Как музыка на гитаре: не обязательно перебирать струны со скоростью 200 тапов в секунду, чтобы получилась красивая мелодия.
Какие инструменты мы используем
Стек ROCKET – один из самых интересных вопросов для того, кто планирует с нами работать.
Мы ищем людей, которые работают на максимально схожем стеке. Но допускаем вариативность, если кандидат быстро обучается и обладает гибким мышлением.
Node.js
Эта платформа имеет для нас ряд преимуществ по сравнению с PHP, который мы ранее использовали в legacy-проектах:
- производительность,
- асинхронность,
- менеджер пакетов npm,
- возможность для fullstack-разработчиков писать код на клиенте и на сервере.
Node.js – достаточно зрелая платформа, которую можно использовать для серверных приложений средней и большой сложности. Она дает скорость в работе и при прототипировании и позволяет выполнять несколько операций одновременно. Поддерживает скрипты автоматизации, умеет взаимодействовать с операционной, файловой системами. Там можно написать все, что угодно, и это будет иметь высокую масштабируемость.
Nest.js
Основной серверный фреймворк в большинстве проектов. Мы предпочли его Express.js (хотя для небольших проектов используем и его), потому что:
- у него модульная архитектура,
- он использует концепцию провайдеров,
- ориентирован на ООП-стиль,
- поддерживает TypeScript и кастомные декораторы,
- содержит внушительный набор инструментов, поддерживаемых разработчиком фреймворка.
Vue.js
Для фронтенда мы используем прогрессивный фреймворк Vue.js. Главные достоинства, которые мы выделили для себя:
- однофайловые переиспользуемые компоненты (шаблон, бизнес-логика, стили),
- отсутствие необходимости писать код на JSX (в Vue.js это опция, а не необходимость),
- вся необходимая экосистема (Router, Vuex, Cli, DevTools),
- на наш взгляд, менее крутая (по сравнению с другими реактивными фреймворками) кривая обучения, что обеспечивает более легкий вход для новичков.
Другие инструменты
В качестве постоянного хранилища данных мы в ROCKET используем реляционные СУБД: PostgreSQL и MySQL. Для временного хранилища – Redis. Ant Design – если нам нужно использовать UI-киты. А для сборки фронтенда используем Webpack в чистом виде либо Vue CLI.
Что должен уметь разработчик в ROCKET
Не очень любим слово «должен», оно пугает начинающих специалистов и вызывает агрессию у опытных. Каких людей мы ищем? Тех, с кем можно выстраивать долгосрочное партнерство.
Но есть и более конкретные пожелания к кандидатам.
Мы ищем:
- Людей, обладающих Hard skills по нашему стэку. Как говорит технический директор ROCKET Иван Фокин, «можно быть сто раз приятным, но если ты не умеешь писать код, то какая разница, насколько ты приятный». Полное совпадение по стэку редко бывает. Но есть схожие инструменты и мы помогаем с адаптацией, если видим способности и готовность к трансформации.
- Очень самостоятельных ребят. Разработка в ROCKET – это поиск решений. Нужен навык поиска информации. В задаче точно будут неизвестные и потребуются умения, которыми вы еще не обладаете. И здесь не подойдет логика «Столкнулся с проблемой, иду к тимлиду спрашивать».
- Разработчиков, которые успели поработать в команде. Многие разработчики – интроверты, а многие фрилансеры – игроки-одиночки. Но в продукте важно уметь строить качественную коммуникацию, иначе процесс затянется, а качество продукта пострадает.
- Людей, у которых есть разный опыт в IT. Мы обращаем более пристальное внимание на тех, кто работал с нужными нам сервисами в качестве Project-, Product-менеджера или разработчика. Это значит, человек знает продукт и ему не нужно объяснять его суть. Это не решающий фактор, но один из важных.
- Как девушек, так и парней. Уточняем это, потому что есть стереотип, что разработка – мужское занятие. У нас в ROCKET есть классные кейсы с девушками, которые с позиции Junior быстро пришли к уверенному Middle+. Они не менее талантливые, чем парни, но еще и не конфликтные, обязательные, исполнительные.
Важно сказать, что мы ищем людей, которые потенциально способны стать тимлидами. Поэтому на старте мы всегда анализируем, есть ли у кандидата навыки менеджмента. Прикладываем много усилий, чтобы сотрудники росли.
Кто не сможет работать разработчиком в ROCKET
Банально, но, в первую очередь, у нас не приживается высокомерие. Которое, по каким-то причинам, часто присуще миру разработки. В ROCKET сильная внутренняя культура продуктивной и уважительной коммуникации. Задачи не скидывают друг на друга, а передают, когда сделали все от себя зависящее. На каждом этапе стараются сделать максимум, чтобы результат соответствовал ожиданиям и наступал в срок.
Не задержатся в команде люди, которые видят правильным только свое решение и не умеют принимать критику, договариваться. Разработчик может быть очень талантливым, во всем разбираться, но если с ним сложно прийти к компромиссу, он будет тормозить процесс. Плюс, в проекте важно делать то, что нужно заказчику (внутреннему или внешнему). Если тешить личные амбиции, с головой уходить в творчество, сделаешь хорошо кому-то (себе, скорее всего), но не тому, кому нужно было.
И третья категория людей, на которых мы не делаем ставку – золотоискатели. Люди, которые хотят заработать денег, но не получают удовольствия от процесса. В разработке же много платят. Но, почему-то, мало кто смотрит на обратную сторону медали: это монотонная работа, когда ты днями сидишь в текстовом редакторе и пишешь код. И, если вы не видите своей миссии в том, чтобы с помощью кода решать сложные задачи бизнеса по всей стране, помогать искусственному интеллекту развиваться и улучшать показатели команд, спросите себя, готовы ли вы заниматься этим 30 лет только ради денег.
Как люди становятся разработчиками в ROCKET
За последний год мы полностью перевернули процесс найма. Сделали бота в amoCRM, который собирает интересных нам кандидатов, заносит их данные в систему и инициирует общение.
Раньше мы общались с теми, кто откликается. Сейчас первым этапом предлагаем выполнить тестовое задание. Если у кандидата есть вопросы, он пишет их боту, а наш менеджер на них отвечает. Если вопросов нет – приступаем к тестовому.
Небольшое задание, которое проверяет навыки FrontEnd и BackEnd разработки. В условиях есть некоторые послабления: «фронт» можно делать, используя любые инструменты.
Дальше мы берем несколько дней на проверку и, если все хорошо, инициируем общение. Такой подход сильно сужает воронку найма. Многие не хотят тратить свое время на компанию, с которой незнакомы. Некоторым приходится сначала узнать о нас больше, самим себя заинтересовать, изучить наш сайт, чтобы решить, выполнять ли тестовое.
Но для нас это просто решение не тратить время на незаинтересованных людей. Если человеку все равно, где и как работать, это не наш человек. А если наш, то он успешно выполнит задание и будет приглашен на виртуальную сессию знакомство. Дальше его ждет стажировка с наставников и первые рабочие задачи.
При этом путь каждого сотрудника все равно уникальный. Но неизбежно успешный, если вы этого хотите и готовы работать.
Небольшая история про Сашу и Лешу, чтобы дать вам веру, что и у вас получится.
Алексей в идеале знал Vue.js, но имел только начальные навыки работы с Node.js, а Александр, наоборот, имел огромный опыт с Nest.js и прислал одно из самых сильных результатов по тестовому заданию за всё время, но на фронте обладал экспертизой только с Angular. И Алексей, и Александр сейчас – в команде ROCKET. Заполнить пробелы по навыкам в период адаптации, если кандидат заинтересован и обучаем, не составит труда.
У нас есть авторский обучающий курс по разработке, который покупают даже интеграторы amoCRM, чтобы прокачивать навыки своих команд. Вам этот курс будет доступен бесплатно, как и огромный опыт всех наших сотрудников.
Немного о глобальном
Все хотят заполучить хороших разработчиков. Перспективных, гибких, сговорчивых, ответственных. Мы точно знаем, что не все хорошие разработчики – наши. Поэтому окончательно перестали заманивать комфортной лаунж-зоной, наличием персональных увлажнителей воздуха и ол инклюзивом в виде печенюшек и свежего кофе. Нам важно, чтобы человек соотнес наши ценности со своими.
ROCKET – третий в списке сильнейших партнеров amoCRM и третий на рынке CRM-интеграторов в России. Мы знаем, какие продукты нужны компаниям, потому что каждый день слушаем их запросы и анализируем их боли. В списке наших клиентов – мировые гиганты. Масштабы их процессов не получится отразить ни на одном майндмэпе. И они доверяют нам улучшение и развитие своих компаний.
Бэклог разработки – это десятки готовых идей. Реализовать задуманное и стать лучшей продуктовой IT-компанией в России – наша цель. Потому что в услугах мы можем помогать сотням компаний, а в продуктах – десяткам тысяч.
Мы расширяем команду разработки ROCKET. И если то, что вы прочитали, близко вашим принципам и ценностям – откликайтесь на вакансию.
Мы строим лучшую продуктовую IT-компанию в России. Вы с нами?