При поиске своего первого места для работы начинающие разработчики как правило не знают, как правильно выбирать компанию, что спрашивать на собеседованиях и на что обращать внимание. Мы подробно разбираем, как устроена работа программиста у наших компаний-партнеров, чем они занимаются, какие применяют инженерные практики и как отдыхают. Первая статья — про компанию inSales и разработчиков, которые в ней работают.
- Что такое InSales?
- Структура компании
- Как устроена разработка в inSales
- Публичная активность и Open Source
- Кого нанимаем и как проходят собеседования
- Как устроен онбординг
- Что мы предлагаем разработчикам
Что такое InSales?
inSales — полностью продуктовая компания, мы создаем платформу для управления онлайн-торговлей. Фактически мы делаем единый инструмент для всех каналов продаж: свой сайт, маркетплейсы, социальные сети и мессенджеры. Это позволяет получить заказы отовсюду, управлять остатками продукции, ценами, контентом, клиентской базой, скидками, дизайном сайта. Перечислять можно до бесконечности.
Все возможности, которые пока наш продукт самостоятельно не умеет делать, либо сейчас находятся в разработке, либо приходят к нам с помощью сотни различных интеграций — у нас есть открытое документированное API, поэтому любой разработчик может сделать на нём что-нибудь полезное для интернет-магазинов. Еще у нас есть своя партнерская система и несколько мобильных приложений.
Структура компании
Мы на рынке уже более 13 лет — за это время компания выросла с трех человек до 140, и все еще мы продолжаем расти. Руководство разработкой все это время осуществляется именно основателями компаниями, которые сами являются программистами.
Структура в InSales максимально горизонтальная:
К руководству компании может обратиться любой сотрудник
В отделе разработки используется матричная структура — мы делимся на небольшие продуктовые команды по разным направлениям
У нас есть уютный офис в центре Москвы, куда можно прийти поработать и пообщаться, но все процессы мы строим таким образом, чтобы любой разработчик мог работать удаленно.
Как устроена разработка в inSales
Мы используем огромное количество технологий с применением лучших инженерных практик, которые можно найти в IT.
Наши основные используемые технологии — Ruby on Rails, PostgreSQL, Vuetify, React Native.
Весь код проекта находится под контролем версий (Git). Подключен CI для прогона тестов, линтеров и других автоматических проверок.
Деплой в одну кнопку, любой разработчик может сам выкатить свой код, когда он готов, если все автоматические проверки прошли. Кроме того, в одну кнопку можно задеплоить код на максимально близкий к продакшену стейджинг, чтобы потестировать самому или отдать на тестирование менеджеру продукта или нашему отделу тестирования.
У нас есть настроенные инструменты для отслеживания ошибок, времени ответа платформы, поиска по логам, мониторинга работы платформы и базы данных. Мы стараемся предоставить разработчикам все инструменты, которые помогут им делать их работу лучше.
У нас достаточно высокие нагрузки на Rails-бэкенд — порядка 80 тыс. запросов в минуту, и большие объемы данных (50 TB пользовательских данных). Поэтому для работы платформы используется около 500 CPU ядер и 3 TB оперативной памяти.
Мы стремимся к коллективному владению кодом, поэтому документируем сложные части проекта и важные архитектурные особенности, поощряем вопросы в чате команды/отдела, так как считаем, что стыдных вопросов быть не должно. Мы стараемся придерживаться единого стиля кода, используем Rubocop и подобные инструменты.
Development-окружение разворачивается в докере одной командой — оно приближено к условиям продакшена, там есть необходимый минимум данных, с которым можно экспериментировать. За редким исключением, что-либо менять вручную в конфигурации окружения не приходится — обычно конфигурация меняется через код проекта. Постоянным улучшением dev-окружения занимается SRE-отдел вместе с инфраструктурной командой.
У нас есть внутренние гайдлайны о покрытии тестами. Почти весь новый код, который пишется сейчас, покрывается тестами. Мы не тестируем разве что интерфейсы. Наличие тестов контролируется во время код-ревью. Обычно оно происходит в рамках продуктовой команды, где мы стараемся делать ревью всего кода, за исключением каких-то мелких фиксов. Требования к пулл-реквестам также задокументированы — это и помощь тем, кто только учится делать код-ревью, и шпаргалка для новых разработчиков.
Также у нас прописаны все компетенции, которые мы ждем от всех разработчиков компании.
Разработка в inSales разделена на продуктовые, проектную и инфраструктурную команды. Продуктовые команды сейчас пробуют жить преимущественно по SCRUM, есть спринты, ретроспективы и другие ивенты. Проектная команда и инфраструктурная — по канбану. Ретроспективы у нас были уже давно и без SCRUM, мы видим в них отличную возможность для непрерывного улучшения процессов, а также для сбора обратной связи от команды.
Публичная активность и Open Source
Наши публичные проекты можно найти здесь. Мы поддерживаем проекты на Open Source и с удовольствием в них коммитим, особенно если это нужно для решения наших текущих задач.
Читайте другие статьи в блоге: 20 советов для будущих программистов, которые ищут свою первую работу в IT: как получать удовольствие от собеседований
Кого нанимаем и как проходят собеседования
Мы нанимаем разработчиков всех уровней, но вакансии открываем, конечно, по наличию потребностей.
В случае с начинающими разработчиками, мы с удовольствием берем на работу питонистов, готовых переучиться на Ruby. Чаще всего разработчики, готовые к смене языка, обладают многими качествами, которые нас привлекают: понимание, что язык — это всего лишь инструмент, гибкость мышления, готовность постоянно учиться новому, высокий уровень адаптивности.
Наш процесс собеседований состоит из нескольких этапов. При этом мы стараемся быть более гибкими и где-то ускоряем этот процесс.
В случае с опытными разработчиками часто достаточно одного интервью, чтобы понять, подходим ли мы друг другу. Для начинающих разработчиков у нас есть тестовое задание в Coderbyte и два технических интервью. Первое интервью — со старшим разработчиком и HR. Второе — с CTO и/или парой старших разработчиков. Иногда устраиваем live-кодинг, если есть какие-то сомнения.
От новых разработчиков мы ждем соответствия нашим компетенциям, желания учиться, работать в команде и делать классный продукт.
Как устроен онбординг
Мы серьезно относимся к процессу онбординга наших новых сотрудников. И особое внимание уделяем начинающим разработчикам, так как обычно у них нет опыта коммерческой разработки или работы в компании в целом.
Онбординг начинается сразу после принятия оффера.
Все организационные вопросы мы решаем заранее — до выхода разработчика на работу, при необходимости заказываем технику с нужными характеристиками для комфортной разработки. Создаем ему все учетные записи, отправляем будущему сотруднику приветственную презентацию о компании и чек-лист с инструкцией по нашим корпоративным системам и ответами на все самые часто задаваемые вопросы.
В первый рабочий день сотрудник HR-отдела встречает нового работника, координирует процесс подписания трудового договора и прочих документов, проводит экскурсию по офису, знакомит с сотрудниками компании лично и размещает приветственный пост на внутреннем портале компании.
Каждому джуниору мы назначаем ментора, выдаем учебные материалы и ждем от него вопросов к команде. Во время испытательного срока ментор отвечает на вопросы, следит за прогрессом обучения, помогает декомпозировать задачи и дебажить, направляет и дает обратную связь, проводит регулярные встречи один-на-один.
В течение первых недель разработчику нужно освоить азы Ruby, ознакомиться с руководством Rails и начать работать над первыми задачами. Это может быть как учебный проект с нуля, если у компании есть потребность, которую такой проект может закрыть, или наши коммерческие задачи.
После завершения испытательного срока через три месяца ментор продолжает курировать сотрудника и отвечать на все его вопросы.
Что мы предлагаем разработчикам
Безопасная рабочая среда
У нас классный дружный коллектив, все общаются на «ты», мы стараемся избегать токсичности и быть добрее друг к другу. У нас низкий процент текучести, а некоторые сотрудники даже возвращаются обратно в компанию. Более 95% наших старших разработчиков приходили к нам в команду еще джуниорами (эта статистика за последние пять лет).
Прозрачность трудовых отношений
Мы заключаем трудовой договор с сотрудником в первый рабочий день в соответствии с ТК РФ. Заработная плата выплачивается два раза в месяц, в определенные дни.
График работы
Удалённая работа 5/2 с гибким началом и концом рабочего дня. Это позволяет работать у нас разработчикам из любого региона России, а для джуниор-разработчиков, обучающихся параллельно в университете, мы готовы предложить неполную рабочую неделю от 20 часов.
Офис
У нас современный уютный офис в стиле лофт, со своим атриумом, вкусным кофе и свежими фруктами. Офис находится в пешей доступности от станций метро Комсомольская, Красные ворота и Бауманская в Москве.
Возможность роста и развития
Мы приветствуем желание сотрудников развиваться и расти в профессиональном плане и способствуем этому. Компания оплачивает обучение сотрудников, посещение профильных мероприятий и конференций.
Забота о сотрудниках
У нас заботятся о здоровье сотрудников — как ментальном, так и физическом. После прохождения испытательного срока у каждого сотрудника есть возможность пользоваться услугами ДМС, включая стоматологию, и онлайн-консультациями с психологом.
Корпоративные мероприятия
Два раза в год мы проводим общие корпоративные мероприятия, на которых собирается вся наша команда. Помимо этого мы устраиваем мини-мероприятия: квесты, пейнтбол, выезды на природу, играем в настолки и онлайн-игры.
Все вакансии в inSales можно посмотреть на сайте компании, а также в рекрутинговых сервисах. Если вы не нашли подходящую вакансию, но вам очень хочется работать в InSales, то можно отправить резюме напрямую в HR департамент job@insales.ru. И везде пишите, что вы — из Хекслета.
Никогда не останавливайтесь: В программировании говорят, что нужно постоянно учиться даже для того, чтобы просто находиться на месте. Развивайтесь с нами — на Хекслете есть сотни курсов по разработке на разных языках и технологиях