Путь разработчика в Alto

Иван Ярославцев
Иван Ярославцев
13.08.19

    В Alto львиная доля деятельности - разработка веб-решений. Часто связанных с ecommerce и личными кабинетами. Интеграции между десятком поставщиков и интернет-магазином и умным распределением товаров по структуре — это про нас. При этом мы каждый год растем на 25-50% и всегда нуждаемся в новых разработчиках. Поэтому делаем все, чтобы:

    1. Отсеивать нужных.
    2. Быстро обучать тех, кого взяли.
    3. Поддерживать развитие тех, кто уже работает.

    Долгое время разработчиков нанимали только в офис, но это бутылочное горлышко, которое не дает расти. Несмотря на то, что находимся в Екатеринбурге, где много технических ВУЗов, в среднем, на закрытие вакансии уходило до 3-х месяцев для Junior PHP. Пробовали ускорять процесс, но в итоге взяли курс на удаленных разработчиков и не прогадали. Сам процесс перехода был болезненный, потому что механики взаимодействия нужны другие. Поэтому учились на ошибках и смотрели на опыт успешных компаний, которые изначально работают полностью удаленно: Basecamp, Манн-Иванов-Фербер, SkyEng.

    Как происходит отбор?

    После получения откликов, мы смотрим на профиль кандидата. Нет каких-то жестких правил, кроме нескольких звоночков:

    1. Нет совсем практического опыта - только череда сертификатов от GeekBrains и им подобным. Опыт хотя бы домашних проектов должен быть. Задачи, сделанные на курсе с наставником, совсем не показательные.
    2. Долгое время только на фрилансе. Тут кроме редких исключений. Как правило, люди «фриланс головного мозга» мыслят короткими проектами, не хотят погружаться в специфику работы компании и взаимодействовать с командой.
    3. Частая смена рода деятельности на 180 градусов. Например, был продажником, потом программистом, потом барменом, потом массажистом (кстати, реальный пример).

    Всех остальных кандидатов, при наличии небольшого (хотя бы 6 месяцев) практического опыта мы рассматриваем.

    Пример кода

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

    1. Мы не нагружаем тестовыми заданиями тех, кто изначально не подходит.
    2. Иногда по примеру можно быстро понять уровень программиста.
    3. Есть косвенные признаки опыта. Отправил ссылкой на репозиторий или архивом на почту? Есть ли там коммиты структурированные? Есть ли комментирование кода?

    После просмотра кода проводится небольшое видеоинтервью. Кроме редких исключений, просим кандидата хотя бы единственный раз показаться к нам лицом. На интервью мы узнаем:

    1. Почему кандидат решил стать разработчиком и какой его путь?
    2. Какие планы на ближайшие 3 года?
    3. Что нравится делать и в какой области планирует развиваться?
    4. Знания «околопрограммирования» git, базы данных, системы управления проектами.

    Тестовое задание

    Отправляем на почту кандидату тестовое задание. Сама по себе задача простая, но направлена на проверку навыков работы с CMS системами, с которыми предстоит работать. Если кандидат сможет сделать за указанное время, то сможет и дальше обучаться быстро. Задача ограничена по времени — 4 часа, при этом лучшие программисты делают задачу за 2,5. И если кандидат в это время не укладывается, кроме редких исключений, -- он не подходит. Редкое исключение — это когда потратил по времени больше, но сделал настолько продумано, что это время оправдано. 

    Иногда пропускаем данный этап, если у кандидата уже есть опыт в Prestashop или 1С-Битрикс. И он подтвердил это примерами кода. Если тестовое задание сделано и все хорошо, то отправляется оффер. Для удаленщиков — это ставка за час + премия при отработке 100+ часов в месяц. Для сотрудников в офис — фиксированная зарплата. 

    Оплачиваемые задачи

    Этот этап появился исключительно для удаленных работников. Специфика найма удаленщиков в том, что 60% не понимает: удаленная работа — это тоже работа, которая в себя включает:

    1. Присутствие в онлайне, т.е. возможность в рабочее время в течение часа ответить на сообщение или звонок.
    2. Ответственность за задачи. Нельзя, что-то начать делать, потом бросить и никак этот вопрос не решить. Задачу ждет клиент.
    3. Работа — это регулярный процесс. Если вдруг завтра ты решил строить дом на 3 месяца фулл-тайм, то как минимум это нужно согласовать и проговорить варианты. 

    Поэтому с кандидатом связывается менеджер проекта, показывает, как мы работаем в trello, как фиксировать время выполнения.

    PM выдает несколько задач на 8-10 часов. Бюджет на задачи невысокий, так как задача оценивается специалистом с опытом работы в данной CMS и не учитывает время на погружение.

    На данном этапе, кандидат может попробовать работу с нами и понять, подходит ему или нет. Но и мы проверяем, что с человеком можно работать. Менеджер по итогу проверки составляет чек-лист.

    Испытательный срок

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

    На данном этапе разработчик учится работать. Как бы это странно не звучало. Для этого он должен понимать: кто мы, что нам важно в работе, какая инфраструктура. И основы работы с нашими стэками. По итогам сдается тест в google-формах, в котором сразу видно тех, кто внимательно читал все инструкции, а кто решил срезать путь.

    Это обучение занимает не больше 2-х дней, после чего куратор начинает передавать программисту задачи. На первом этапе это что-то простое, несрочное и модульное. По мере того как человек справляется, «градус» повышается. Так же куратор не забывает проверить, чтобы кандидат записывал время в trello, так как на основе записанных часов формируется зарплата. 

    В конце недели с куратором подводят итог:

    1. Что получается, а что нет.
    2. Чего не хватает для комфортной работы.
    3. На что обратить внимание на следующей неделе.
    4. Какой прогресс по обучению — перед куратором стоит KPI, чтобы его ученик прошел экзамен.

    После испытательного срока

    После испытательного срока и успешной сдачи экзамена, кандидат на полных правах приступает к работе и проводит всю работу самостоятельно. На испытательном сроке отсутствует либо премия, либо зарплата на 5-10 тыс. руб. меньше. 

    Поздравление в общем чате. 

    Вся работа в Alto организована в trello на единой доске, куда после испытательного срока попадает разработчик. Где каждый видит все актуальные задачи по всем проектам. Мы постарались сделать так, чтобы разработчику не нужно было думать о том, какой проект делать следующим. А брать первую свободную задачу из списка. При этом мы максимально исключаем управление менеджера разработчиком. Это проблема большинства веб-студий, когда есть несколько менеджеров и каждый тянет одеяло на себя. Мы решили эту задачу через правило, что взаимодействие с разработчиками только через приоритеты в trello. А это по факту означает, что все приоритеты должны обсуждаться внутри менеджеров.

    Повышение квалификации

    Чтобы уровень знаний рос, мы применяем следующие инструменты:

    1. Закрытый телеграмм канал для программистов. 18 человек, которые как-то связаны с нашей компанией. Там много тех, кто уже даже не работает, но готов делиться знаниями.
    2. Возможность спросить у коллеги. Как правило, есть 1-2 специалиста, которые в чем-то разбираются лучше, чем остальные. Например, есть отдельный специалист по FrontEnd и team-lead, техлид по бэкенду.
    3. База знаний. Своя википедия на движке dokuwiki. Позволяет сохранять все наработки и решения. Доступ есть у каждого сотрудника. Каждый, без лишних согласований, может отредактировать или дополнить статью. Делается это просто и в формате markdown, который разработчикам уже знаком. В результате почти любую популярную задачу на престашоп можно найти в нашей википедии.
    4. База готовых решений. Любое решение, которое будем использовать больше 2-х раз, упаковываем в модуль. Для каждого модуля заводим свой репозиторий и настраиваем веб-хуку. При каждом коммите в master заново собирается архив и публикуется в наш каталог. На момент написания статьи готово больше 120 решений.
    5. Матрица компетенций. Таблица на 75 пунктов, по которой проверяются навыки разработчика. Это позволяет понять, куда нужно двигаться в ближайшем будущем и что нужно подтвердить для повышения. На скриншоте часть из этого файла.

     

    Оплата

    Отдельная наша гордость, что зарплата за 5 лет работы всегда во время. Удаленным сотрудникам, как отмечалось выше, оплачиваются зафиксированные часы в trello. Именно факт, который они наработали. Даже если они вышли за границы оценки задачи. Единственное ограничение, что мы расстаемся с теми, кто не может отрабатывать 100 часов в месяц. Многие к нам приходят, чтобы совмещать работу, мы готовы на это. Но если у человека нет этого времени, то работа становится невыгодной. Кроме случаев, когда у разработчика есть редкие компетенции.

    Мнения наших сотрудников

    За несколько месяцев до окончания университета, я понял, что нужно искать работу. Предприятие, на котором я работал до этого, закрылось, и я начал поиски. В одном из телеграм каналов, я наткнулся на объявление о поиске PHP программиста, сразу написал в ЛС, выполнил тестовое и меня взяли. В работе Alto больше всего меня впечатлила ответственность, с которой относятся к проектам. Никто не пропадает и не откладывает работу на завтра «потому что поссорился с девушкой» или «свет отключили». Самым большим барьером стал сам престашоп, в нем довольно таки сложный код. Это преодолевается только упорством и википедией. В дальнейшем планирую развиваться в направлении Bitrix'а, также изучаю разработку под операционную систему iOS, на языки Swift, планирую, что эти знания пригодятся.

    Борис, Junior разработчик, г. Донецк

    Получил приглашение на собеседование, по резюме выложенному в интернете. Сделал тестовое и начал работать. Что нравится? Да все просто: приятный коллектив, хорошее начальство и комфортные условия труда. Зарплата выплачивается  всегда вовремя по расписанию. При этом был единственный барьер, который состоит в недостатке опыта и знаний типовых проблем престашоп, а также некоторых нюансов внутренней экосистемы. Но все решается постоянной работой над нестандартными проблемами, написанием статей на основе собственного опыта с целью формализации и структурирования полученных знаний. Что дальше? Продолжать работу в компании, совмещая с учебной деятельностью, развиваться в направлении backend разработки.

    Эрнест, Junior разработчик, г. Екатеринбург

    Оставил резюме на сайте. После чего мне позвонили, спросили про предыдущий опыт работы и пригласили на начальное и техническое собеседования. После чего дали тестовое задание.
    Какие впечатления от работы и трудоустройства?
    Хорошие. Тестовое задание пришло по почте, но мне так же перезвонили, чтобы убедится, что я его получил. Во время испытательного срока было понятно, как я продвигаюсь, и что нужно сделать, чтобы испытательный срок пройти. Помогала и справочная информация внутри компании.
    Какие барьеры были и как ты их преодолел?
    Проблема была в том, что я совершенно не знал prestashop. Тут помогла документация, собранная в компании (официальная все-таки довольно куцая). Пришлось привыкать к работе с карточками задач и логированием времени, впрочем, эта проблема была небольшой и разрешилась без каких-то специальных усилий.
    Дальнейшие планы?
    Освоить навыки, необходимые для уровня middle-разработчика.

    Антон, Junior разработчик, г. Екатеринбург

    Будем рады вашим резюме, всегда рассматриваем разработчиков на позицию Junior и Senior. Отправляйте ваши резюме. Если вы считаете, что еще не готовы к такому и нужно набраться опыта, то по запросу на ivan @ altopromo.com отправляем программу обучения.