«Флант» — это технологическая компания. Сейчас у нас порядка 60 человек и 7 команд. Что примечательно, практически все в той или иной мере инженеры — включая менеджеров, которые нет-нет, да и напишут строчку-другую кода.

Нашей отличительной чертой является постоянное изучение и развитие технологий — на данном этапе они преимущественно связаны с Kubernetes, но не ограничиваются им. Мы аккуратно обкатываем их на десятках проектов с самыми разными запросами, и это очень здорово расширяет кругозор каждого, кто с ними работает.

В этой статье я расскажу, как мы нанимаем новых сотрудников в полностью распределённую компанию и помогаем им влиться в наш «поток». Возможно, это натолкнет на мысли, как что-то улучшить в своих командах. К своему подходу мы пришли спустя годы проб и ошибок и на сегодняшний день уверены, что тем людям, которых наняли, можно дать рутовый доступ на клиентские серверы.


Поиски и знакомство


Найм в айти-компаниях — больная тема: на что только не идут команды, чтобы заполучить нового бойца. Мы пока что не нашли серебряной пули, которая помогала бы нанимать сразу и много инженеров, которые разделяют наши ценности: мы любим Open Source, тщательно выбираем, с кем работать, а затем выкладываемся по полной, чтобы решать настоящие (а не выдуманные!) проблемы.

Многие из тех, кто оказывается на собеседованиях или подходят к нам на конференциях, говорят, что смотрели наши выступления на YouTube, читали статьи на Хабре и/или пользуются нашими разработками с GitHub. Но секрет Полишинеля всего один: хочешь найти сотрудников в формирующуюся команду — ищи их, вручную, долго и упорно.

Все собеседования и прочие коммуникации (включая даже продажи) в нашей компании идут через Slack (больше для текста) и Google Meet (видео) — они показали себя лучше всего. До этого мы продолжительное время поддерживали self-hosted-инсталляцию BigBlueButton, а также продолжаем работать и со своей IP-телефонией, которая актуальна на случай аврала и оставшихся потребностей в общении по телефону. Для последнего достаточно зайти во внутренний справочник сотрудников, нажать кнопочку — и сервис наберет по телефону вас и адресата для разговора.



Если перейти от коммуникаций к прочим особенностям рабочего окружения, то в целом они формируются подходом что мы инженеры и не хотим, чтобы нам что-то мешало решать инженерные задачи.

  • График? Относительно свободный, если тебе надо пойти прогуляться — напиши в Slack-канал, убедись, что нет назначенных встреч и обещаний клиенту… и пожалуйста. Мы стараемся быть на связи с 11:00 до 19:00 по Москве, но в век победивших телекоммуникаций всё это решаемая задача.
  • Дресс-код? Просто соблюдайте рамки приличия. По-моему, это прекрасный опыт — ходить на работу в тапочках и шортах. Конечно, нам всё равно хочется видеть людей вживую и общаться очно. Поэтому минимум раз в год мы собираемся на корпоративе, с семьями. Разумеется, проезд (как и все командировки) оплачиваются компанией. А живущие в относительной близости от офисов (в Москве и Нижнем Новгороде) могут заглянуть в последнюю пятницу месяца, чтобы поесть пиццы, выпить чего-нибудь вкусного, поиграть в PS или просто похоливарить о технологиях.
  • К слову о холиварах: мы против авторитарности. Если вы говорите за дело, то можете хоть матом доносить свою мысль до технического директора. К чёрту формальности — сперва дело и правильные решения!

Найм: 0 этап — отбор


Как я успел сказать в самом начале, секрет поиска сотрудников видится нам в кропотливой и систематической работе по отбору резюме, размещенных в открытом доступе. Например, в том же Телеграме уже существует около 50 рекрутерских чатов, где можно искать кандидатов (самые полезные для нас — Devops_jobs, Telegram Job и Работа в IT). Кроме того, отлично зарекомендовал себя и всем хорошо знакомый hh… с одной особенностью: мы не ждем, пока кандидат откликнется сам на размещенную у нас вакансию, а отбираем резюме из базы, захватив таким образом даже тех, кто не находится в активном поиске работы, но готов рассмотреть интересные предложения.

В качестве примера приведём занимательную статистику о том, как совсем недавно за полтора месяца компания выросла на 7 DevOps-инженеров:

  • Мы отобрали около 150 резюме, подходящих нам по профилю, и провели 78 первичных интервью (далее я подробно расскажу, что включает в себя каждый из этапов найма).
  • По результатам интервью пригласили 32 кандидатов на второй этап — техническое задание. Успешно справившихся с ним ожидало финальное испытание — общение с тимлидами.
  • На этом этапе мы общались с 11 кандидатами и приняли положительное решение по 7 из них.

Найм: 1 этап — собеседование-знакомство


Когда мы связались с потенциальным сотрудником и выяснили, что он не против познакомиться, наш HR проводит первый этап собеседования.

Задача HR’а — соотнести бэкграунд кандидата со стеком технологий, с которым в данный момент работают наши команды. Хочется понять, что кандидату знакомо хорошо и какие направления остаются для него пока зоной развития и обучения. Если уже на этом этапе наши интересы не совпадут, мы не сможем предложить будущему сотруднику почвы для реализации, а он, вероятно, не захочет двигаться туда, к чему душа не лежит.

Гораздо больше, чем то, «кем вы хотите себя видеть через пять лет», мы хотим понять, какие проекты инженер считает самыми классными в своём опыте, что его драйвит, как он предпочитает организовывать своё рабочее пространство. Последний вопрос особенно актуален: для значительной части новичков работа с нами — это первый опыт удалённой работы.

Интервью занимает около 30-40 минут, и мы понимаем, смотрим ли в одном направлении с кандидатом и на что обратить внимание при дальнейшем общении.

Найм: 2 этап — техническое задание


На втором этапе новичок знакомится с этаким квестом для инженера на смекалку и технические знания. Гуглом пользоваться можно, так что больше всё же на смекалку.

По сути инженеру выдают виртуальную Linux-машину с хитрыми и не очень зловредами, сломанным софтом и пачкой заданий, основную часть которых нужно решить непосредственно на виртуалке. Инженеру предстоит победить драконов, продемонстрировав своё владение головой, консолью и гуглом. Мы не ставим обязательной задачи победить их всех и сделать это идеально, но хотим понять, как человек в принципе подходит к решению задач на практике, а не на словах.

Интернетом пользоваться можно не только по той причине, что тест ближе к реальным условиям, чем к школьному экзамену. В первую очередь мы проверяем базовые технические навыки и общий кругозор (в области Linux), а не знание какого-либо специфичного софта и его конфигурационных директив. Нам важно увидеть, что человек способен подходить к проблемам системно и имеет достаточно опыта, чтобы понимать, в каком направлении вообще копать. Один из типичных вызовов любого инженера «Фланта» — это сталкиваться с непознанным, постоянно учиться, поэтому гибкость ума имеет не последнее значение.


Типичная ситуация в тестовой виртуалке для кандидатов, успешно загрузивших систему

Не менее важной, чем техническая составляющая этого теста, является и «скрытая» его сторона — психологическая. Кандидатов, проходящих наше весьма продолжительное задание, мы просим описывать свои шаги и промежуточные результаты в Slack. Там же, как правило, можно уточнять какую-то информацию, получая обратную связь… Анализируя общее поведение кандидата, его реакцию на всплывающие проблемы, информативность и общий тон комментариев, соответствие действий требованиям задания и множество других подобных факторов, мы делаем по-настоящему значительные выводы:

  • Мотивирован ли этот человек на работу у нас?
  • Командный ли это игрок и предрасположен ли он к частой коммуникации?
  • Способен ли самостоятельно решать задачи?
  • Следует ли конкретным инструкциям?
  • Изобретателен ли в поиске технических решений?
  • …

Даже если не все характеристики становятся очевидными, мы как минимум получаем обобщённый психологический портрет, который обязательно учитываем при принятии окончательного решения (предварительно раскрывая волнующие нас вопросы на следующем этапе).

Задание у нас по-настоящему длинное — в среднем на него тратят около 9 часов (включая всевозможные обеды и прочие перерывы, если кандидат их по своему желанию делает). Несмотря на это, более 80 % прошедших тестирование позитивно высказываются об этом тесте и благодарят за него по своей воле (т.е. ещё до того, как мы запрашиваем обратную связь). Однако мы понимаем, что это слишком много — поэтому (и из-за нескольких других причин) в настоящее время готовим значительно обновлённую версию задания, которая будет не только короче, но и не менее увлекательной и, надеемся, эффективной.

Найм: 3 этап — финальное собеседование


Когда пройдено тестовое задание, наступает время общаться с тимлидами. Собеседуют непосредственно те люди, которые могут стать руководителями инженера. Мы отдельно учим наших тимлидов готовиться и проводить собеседования, чтобы общение не «завязло» в каких-то узких темах, было интересным обеим сторонам, и не вызывало сильного стресса. Расшатанные нервы — плохой помощник при ответе на вопросы.

Тимлид должен уметь задать технические вопросы, понять, в какой парадигме управления проектами жил кандидат, суметь рассказать о работе в компании и объяснить, каково будет житься в его команде. Ведь если кандидат пройдёт — тимлиду нужно понимать, как «встроить» человека в свою команду, на что обратить внимание в первую очередь. В среднем на такое собеседование уходит около часа.

После (и, будем откровенны, иногда даже во время — через краткий обмен мыслями в Slack) встречи тимлиды решают, кто из них хочет взять инженера к себе в падаваны и какой из команд человек именно с такими талантами будет полезнее (а команда — будет полезнее ему). Финальный шаг — отправка кандидату предложения о работе.

Заключение


На решении кандидата о принятии job offer первая часть нашего сотрудничества заканчивается. Если мы получили согласие, то начинается новый и очень захватывающий этап — выход на работу и последующая адаптация. Об этом я расскажу в следующей статье.

Комментарии (19)


  1. dirkar
    27.07.2018 11:15

    От компаний, в которых «менеджеров, которые нет-нет, да и напишут строчку-другую кода» нужно держаться как можно дальше.


    1. Hardcoin
      27.07.2018 11:49

      Можете как-то обосновать? Они вряд ли в критические области лезут. Может речь вообще об одноразовых башскриптах, что-то проверяющих.


      1. sevikl
        27.07.2018 12:17

        В этом ничего плохого нет, факт. А вот если в пятницу вечером менеджер внезапно накомиттил говна в мастер при включенном и отлаженном CI-CD — надо бить. причем не по рукам.


        1. shurup
          27.07.2018 12:38
          +2

          … но ведь это относится совсем не только к менеджерам :-)


        1. roscomtheend
          30.07.2018 10:44

          Менеджер может написать скриптик сбора нужных ему данных, а не просить программиста «Вааась, тутделнапятьминут, напиши, а» прямо в разгар работы над фичей.
          А накоммитить говна — это к программистам в компаниях, где тесты — дело программистов, а всякие кодыревьи — не барское. Вот там такое регулярно (не знаю как здесь, всякие «машины с поломанным софтом» — это вообще, кажется, не про программирование).


    1. may-cat Автор
      27.07.2018 13:16
      +1

      Речь идёт, главным образом, о том, что сейчас принято называть T-shaped компетенции.
      Конечно же, некомпетентные люди не коммитят в прод клиентам.


    1. andjel
      27.07.2018 15:17

      Если код проходит стандартное Code Review итп — то почему бы и нет?


  1. Wolf4ara
    27.07.2018 13:16
    +3

    да-да-да) а если не интересен, то внезапно пропадаете, как и всех компаний) ни ответа-ни привета(


    1. may-cat Автор
      27.07.2018 13:17

      Так не должно быть. Если вдруг это так — можете написать мне в личку на Хабре или в телеграм @i_tsupko.


      1. svk28
        27.07.2018 21:25

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


        1. may-cat Автор
          30.07.2018 12:13

          Искали ваши письма в почте по никнейму svk28/вашей фамилии имени, которые гуглятся по никнейму — не нашли. Можете уточнить, когда вы откликались и куда конкретно?

          Если ваш интерес к вакансиям во Фланте актуален — пожалуйста, сообщите.


    1. may-cat Автор
      27.07.2018 16:37
      +4

      Уточнил по вашей ситуации.
      Сожалеем, что в прошлом году наше сотрудничество не сложилось, поскольку вами было принято решение отказаться от оффера, предложенного Флантом. За прошедший год требования, предъявляемые к инженерам сильно изменились и мы сейчас не можем сделать вам предложение о работе. На созвоне в начале этого июля (обращаю внимание: это не был какой-то из этапов собеседования, просто созвон) мы обещали связаться, в случае если появятся предложения с нашей стороны. Их не было. Потом мы действительно упустили письмо от вас в почте. Посыпаем голову пеплом, на письма нужно отвечать.
      Кандидаты, которые проходят тест, всегда получают обратную связь по итогам теста.


  1. werklop
    27.07.2018 20:58
    +1

    даже тех, кто не находится в активном поиске работы, но готов рассмотреть интересные предложения

    Мотивирован ли этот человек на работу у нас?

    Понятное дело, что изначально нет, да и не факт, что потом, он же не в активном поиске. Какие ваши действия?


    1. shurup
      30.07.2018 11:22

      Если кандидат всё-таки прошёл первое интервью и взялся за прохождение задания, на что (как его сразу предупредили) требуется потратить много времени, — им всё-таки что-то движет. И обычно тут два направления этого движения:

      • или «спортивный интерес» (некоторые об этом нам говорили прямо и до, и во время, и после тестового задания),
      • или всё-таки интерес к компании.

      Причём первое иногда переходит во второе: «Раз тестовое задание так затягивает, то и работать, наверное, не скучно?». А иногда оно сводится к тому, что: «Извините, переоценил себя, тест не тяну, поэтому давайте я опыта наберусь и выйду на вас в другой раз» (на самом деле, конечно, причина может быть в другом, но объяснения будут скорее всего примерно такими).

      Каковы наши действия? Понять, перешёл ли кандидат в стадию интереса работы у нас, и продолжить с ним работу. Если этого интереса не появилось, то — в зависимости от результата + его общего «настроения» (от «Что за дурацкий тест у вас и с чего вы решили, что у меня столько времени, чтобы всё тут проходить?» до «Спасибо, это самое крутое задание, что я видел!») — в базу кандидатов, к которым можно вернуться через некоторое время, или всё.


      1. werklop
        30.07.2018 11:30

        Вроде выглядит логично и понятно, однако не всегда и не всех мотивирует только интересные задачи(число которых как правило, довольно низкое). Но это уже лирика…


  1. shadowlord
    30.07.2018 11:21

    Не планируете организовать публикацию тестов в свободном доступе для всех желающих? Если это виртуальные машины, можно было бы выложить образы с кратким описанием проблем, которые необходимо решить.


    1. shurup
      30.07.2018 11:29

      Была мысль так сделать, когда полностью обновим текущие задания (иначе новые кандидаты окажутся не в равных условиях). Теперь есть больше уверенности, что это будет интересно, спасибо за вопрос


  1. NickODimm
    30.07.2018 11:26

    Добрый день,
    Искал интересные предложения по работе, наткнулся на вот эту статью.
    Очень заинтересовал не зацикленный на MS подход к решению инфраструктурных задач.

    Увы, фраза на фото с Морганом Фриманом раскрыта очень слабо. Можно ли как-то обозначить уровни финансового вознаграждения будущих сотрудников? По моему опыту это вполне нормальная практика указывать прогнозируемый годовой доход кандидата.

    В силу того, что считается хорошим тоном иметь хотя бы общее представление о работодателе, сходил на ваш сайт. Компания которая в 2018 году предлагает веб-инфраструктуру «под ключ», на мой взгляд с высокой степенью вероятности понимает долю мобильных устройств в современном веб. На мой взгляд было бы разумно уделить немного времени собственному сайту и сделать адаптивную вёрстку. Возможно стоит и jquery «под капотом» обновить.

    Ещё не очень понял смысл форка ansible «к себе». Он у вас с ansible/ansible мерджится потом?

    Заранее благодарю за ответы.


    1. may-cat Автор
      30.07.2018 12:34

      Можно ли как-то обозначить уровни финансового вознаграждения будущих сотрудников?

      Постараемся осветить это во второй части статьи.

      На мой взгляд было бы разумно уделить немного времени собственному сайту и сделать адаптивную вёрстку. Возможно стоит и jquery «под капотом» обновить.

      Всё так, сайт очень устарел. Мы больше увлечены работой над проектами клиентов и backend-ом, руки не доходили.
      Конечно, мы понимаем, что это пора менять. Новая версия сайта сейчас в разработке.

      Ещё не очень понял смысл форка ansible «к себе». Он у вас с ansible/ansible мерджится потом?

      Забавно, но никто не помнит :) Вероятно, была какая-то задумка, но потом нашли более оптимальное решение.