«Флант» — это технологическая компания. Сейчас у нас порядка 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 мерджится потом?

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