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

Привет, Хабр! Меня зовут Семён, и я обычный SWE (tm). За много лет работы я многих нанимал и к себе в команды, и к партнёрам. А ещё больше собеседовался в «стартапы на троих» и в стартапы на 500+ людей. За это время успел собрать некоторый опыт в рекрутинге на рынке РФ.

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

Также вас не ждут карточки с вопросами к компании – я искренне убеждён, что каждый должен написать себе свои, исходя из хотелок от работы, жизни и вообще ;)

Процессы

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

HR-секция

Как правило, первый человек, который встречает кандидата со стороны компании – рекрутер или hr. Конечно бывают исключения, когда на вас сразу выходит лид/СТО/CEO, но это заявочка на индивидуальный хантинг, а моя заметка всё же про найм «с рынка», так что оставим исключения за скобками.

Сразу уточню, что не разделяю мнение – «рекрутеры не нужны» . Делегировать часть рутинных процессов потокового найма может оказаться крайне продуктивно, особенно если мы говорим о найме специалистов начального уровня. 

Другое дело, что рекрутер должен быть полезен и кандидату. Специалист, который ничего не знает о конкретной позиции и команде может быть заменён на бота в telegram, который просит резюме, даёт базовую инфу по компании и букает слот в календаре лица принимающего решение. Пользы от такого скрининга для кандидата около нуля, сервисный момент.

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

Отдельная боль  – рекрутер, который пробует задавать технические вопросы. Можно понять пару вопросов по учебнику для вашего стека, но иногда всерьез начинается устное анкетирование на час! Мало того, что рекрутер играет роль гугл-формы  –  прочитать вопрос «как написано», записать ответ «как услышано», так ещё выдаёт негибкость в процессах найма компании. Зачем задавать вопрос «что такое цикл» человеку с десяткой лет профильного опыта? Часто рекрутер сам понимает всю комичность ситуации и заранее извиняется за не так произнесённые термины, но «процесс един для всех», и всё – тупик , ведь процесс нельзя менять, вы не знали? ;)

Tech-секция

Но хватит о коллегах-рекрутерах, технарям тоже есть что улучшать в своей секции.

Задачки с литкода на кручение деревьев  –  крайне волнительная тема в сообществе. Я не против них – это полезная тренировка для мозга, но точно ли вам нужен человек который решает такие задачки с пол-оборота в команде? 

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

А как же задачки на доске с условием «чтобы компилялось!!!» .  Доска – это классно и удобно, но на ней намного логичнее прикинуть алгоритм/архитектуру, нежели вспоминать конкретную имплементацию в целевом стеке тех или иных стандартных функций.

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

Одну из tech-секций иногда заменяют на домашнее тестовое задание. И одно из десяти таковых даже бывает интересным и необычным. Но если типовую задачку для оценки навыка кодинга нельзя заменить парой актуальных и живых репозиториев из github кандидата – это опять звоночек про гибкость процессов.

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

Люди

Начнём с классики вакансий играющего тренера (tm): у этой напасти сотни имён  –  помощник СТО (он же девопс, sic!), техлид с обязанностями тимлида, тимлид с обязанностями PM, SWE и scrum-мастер в одном лице и так далее. Всё это симптомы того, что лицо принимающие решение не до конца понимает кого ищет и зачем. В теорию о тотальной экономии денег на ФОТ я не верю (:

По той же причине встречаются собеседники, которые не знают что спросить у кандидата на собеседовании. Казалось бы, если ты участвуешь в процессе найма – найди время подумать над пользой своего участия для обеих сторон. Терминальная стадия  – дать кандидату почувствовать, что ему тут не рады и рады не будут, но не говорить об этом прямо/корректно и не сворачивать собес. 

Отдельная просьба  –  не ходите на собеседование если выгорели, устали и вообще не выспались. Грустно, когда СТО не может продать тебе архитектуру проекта, а PO как будто сам не верит в успех продукта. Ну и скрывать суть проекта и его экономику до самого последнего  – это очень плохо.

Про деньги

И, конечно, важно упомянуть про деньги при разговоре за офферы. Как ни странно, в этом разделе проблем меньше всего . Возможно, всё дело в предварительной фильтрации компаний по предыдущим пунктам ,  как итог – до серьёзного обсуждения денег доходит не часто.

Сначала рекрутеры играют в «кто первым вилку назовёт», а потом округляют глаза на средненький рыночный рейт. Есть постоянство в этом мире :)

Но отдельного упоминания заслуживает подход к выставлению оффера на пару процентов меньше суммы, которую кандидат обозначил как «минимум». Учитывая, что от первого оффера ценник при взаимном интересе торгуется на плюс 20% минимум, мне совершенно непонятны эти минус 2% от минималки. Если кто-то знает секрет такой тактики   поделитесь, пожалуйста!

Вместо заключения

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

Всё описанное актуально для малых и средних it-компаний рынка  РФ. Мои вкусы очень специфичны (нет).

И, повторюсь, что всё это глубоко ИМХО. Совпадения случайны и не являются инвестиционной рекомендацией руководством к действию. Буду рад аргументированной критике в комментах =)

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


  1. IvanSTV
    30.09.2022 16:27

    Возможно, всё дело в предварительной фильтрации компаний по предыдущим пунктам ,  как итог – до серьёзного обсуждения денег доходит не часто.

    Сначала рекрутеры играют в «кто первым вилку назовёт», а потом округляют глаза на средненький рыночный рейт. Есть постоянство в этом мире :)

    - Все дело в том, что собеседующие на размер зарплаты не влияют обычно. И потому такие переговоры. когда у нанимателя жесткая вилка, в принципе неудобна.

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

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


  1. panzerfaust
    30.09.2022 16:44
    +5

    Почему компании не могут пройти собеседование с айтишником

    Да нет у них никаких проблем, все они "могут". Перефразируя Карлина, "HR is fine, the devs are f***d". О чем говорит тот факт, что самые дебильные практики в HR спокойно живут уже десятилетиями? О том, что всем и так норм. Большинство из нас побухтит на хабре, а на деле все равно покорно пройдет первичный собес, где эйчар будет сбивчиво по бумажке читать вопросы а ля "что такое полиморфизм". А потом мы пойдем писать алгоритм Дейкстры на вакансию, где нужно перекладывать джейсоны. Реально переломить ситуацию можно массовым бойкотом контор, где вращают деревья на доске и вот это все. Вот, чем стоило бы заниматься небезызвестному Профсоюзу вместо написания истеричных пассажей.


    1. nikolas78
      30.09.2022 17:16
      +6

      О чем говорит тот факт, что самые дебильные практики в HR спокойно живут уже десятилетиями? О том, что всем и так норм. Большинство из нас побухтит на хабре, а на деле все равно покорно пройдет первичный собес
      Это также говорит о том, что все-таки в IT рынок не соискателя, а работодателя. Иначе бы уже давно появились стартапы по найму, прогибающие ситуацию под работника.


      1. IvanSTV
        30.09.2022 17:45
        +4

        Это также говорит о том, что все-таки в IT рынок не соискателя, а работодателя. 

        во, хоть кто-то понимает... В принципе рынок труда - это рынок работодателя, потому что наемный работник не "труд" продает, а товар "рабочая сила". И тут возникает нюанс... впрочем, это уже 170 лет как объяснено и разжевано.


        1. Tim7456
          03.10.2022 13:50

          Рынок труда он разный. За последние 5 лет в АйТи вообще, и в big tech в частности, он был и рынком работодателя, и рынком работника. В хороших компаниях HR чувствует текущий момент, и они собирают сливки. Остальным достается ... то, что осталось.


    1. pomponchik
      30.09.2022 17:43
      +10

      Как человек, для которого упомянутые вращения никогда не представляли сложности, и которому они даже нравятся, я бы предпочел, чтобы везде одними только деревьями и ограничивались.


      1. kalombo
        30.09.2022 22:27
        +1

        А я бы в шахматы предпочел сыграть на собеседовании, они мне тоже очень нравятся, только они, как и вращения, не показывают умения перекладывать json


        1. pomponchik
          30.09.2022 22:42
          +13

          Но ведь жсоны чаще имеют древовидную структуру, чем шахматовидную.


          1. dyadyaSerezha
            01.10.2022 19:08
            +1

            И что, вращать и перекрашивать джейсоны тоже приходилось на работе?


  1. Format-X22
    01.10.2022 02:27
    +2

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

    • Умеет ли человек в не сценарные алгоритмы, когда не просто получил, обработал, зачистил память и заново, а есть непрерывный бесконечный процесс

    • Имеет ли человек вообще опыт с агрегацией чего-либо, не только перекидывание джейсонов

    • Понимает ли какие есть косяки с памятью и скоростью и почему нельзя просто сразу всё выполнить

    • Сможет ли предложить такую структуру данных, которая позволит не умереть серверу сразу в момент пиковой нагрузки, отложив выполнение, есть варианты со своими нюансами

    • И при этом это решение должно не умереть неожиданно через пару месяцев из-за переполнения счетчика и прочего

    • И да - кандидаты обычно умещаются как раз в 40 строк, но эти строки и шаги улучшений говорят о многом

      Пока все кто проходил говорят что самое не скучное задание из тех что им приходилось делать. И при этом оно у нас на продакшене, то есть не абстрактные деревья крутить, а вот живое и настоящее. Но идеального кандидата всё ещё не нашли, тлен-боль, хотя меньше месяца ищем, но тем не менее, где вы сеньёры NodeJS, крутой проект ищет вас :)


    1. 0x131315
      01.10.2022 11:31

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


      1. Format-X22
        01.10.2022 11:33

        То есть считаете что стоит всё же спрашивать типичные скучные задачи, о которых жалуется каждый второй?


        1. Alexsey
          01.10.2022 13:38
          +2

          Скорее стоит спрашивать среднестатистическую задачу решаемую на вашем проекте, а не выбирать 1 супер highload задачу когда 999 других задач это перекладывание json'а.


          1. Format-X22
            01.10.2022 22:35

            Дело в том что там 80% задач на сбор и кеширование, по сути это такой кеш-агрегатор над остальной системой. Близко к среднестатистической, такой вот проект.


    1. Kelbon
      01.10.2022 16:37

      Сидим оптимизируем , nodejs...


      1. Format-X22
        01.10.2022 22:29

        Оно глубже чем может казаться на первый взгляд, V8 от Google чертовски быстр, без потери гибкости и скорости разработки. Но это такой лютый холивар что ещё никогда никто в нём победителем не выходил, и статей с хвальбой и с хейтом и с бенчмарками сотня статей на хабре. Так что просто примем тот факт что да, нода, и да - есть задачки где надо поиграть в алгоритмы.


    1. kanu
      02.10.2022 04:20
      -2

      А вы бы ещё дотнетчиков поискал с нужными скиллами :) или пхпшников

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


  1. LbISS
    02.10.2022 14:08
    +1

    По итогу на следующем этапе имеем как минимум двух человек, округляющих глаза друг на друга

    Терпеть не могу хайринг на аутсорсе. Было такое на прошлой неделе, кстати. Я обычно первые 7-8 минут трачу, чтобы рассказать о проекте, чтобы человек понимал, почему дальше будут те или иные вопросы. Рассказываю, вижу чем дальше, тем больше недоумения в глазах. Спрашиваю - что не так? Выясняется, что человек ищет вакансию только под Ангуляр и ничего больше не рассматривает, а у нас Ангуляр ни на одном из 150 проектов не используется и в описании вакансии не упоминается. Извинился, разошлись. HR объяснить мне, где у него голова, так и не смог. Видимо её нет.

    Зачем задавать вопрос «что такое цикл» человеку с десяткой лет профильного опыта?

    Вы как-то исходите из предположения, что все люди в мире адекватны.

    Отвечая на вопрос "заяем задавать базовые вопросы?". Потому что у кандидата 10 лет может быть в смежном стеке, а написать в cv он забыл. Потому что, может быть он занимался однотипными задачами и знает только один фреймворк, а на любой вопрос про базовое строение языка плывёт. Потому что он 10 лет сидел и занимался одним и тем же или просто его работа в компании не была никому интересна и он не развивался. Потому что резюме может быть в конце-концов чужим (было и такое в практике). Поэтому базовые навыки проверяются всегда. Знаешь - молодец, потратили на это 5 минут, пошли дальше. Опять же, случай из недавних, у человека 11 лет опыта, причём по резюме выглядит солидно. Но ответы на вопросы про процессы или архитектуру - ноль (ответы вида "я не знаю") и при попытке посмотреть навыки кодинга человек не может написать нормально перебор коллекции. Неожиданно, но бывает и такое.

    Но если типовую задачку для оценки навыка кодинга нельзя заменить парой актуальных и живых репозиториев из github кандидата – это опять звоночек про гибкость процессов.

    Во-первых, мы опять же не знаем историю появления этого репозитория - чужой он, свой, написан самим человеком или с помощью, всё равно придётся по нему разговаривать. Поэтому оффлайн это не заменит. Во-вторых, оффлайн задача это проверка умения работать самостоятельно - вот тебе гугл, вот задача, которой нет в гугле в прямом виде, составь из всех производных нужное решение. Если человек в оффлайн не способен решить базовые задачи - нагуглить и синтезировать - то как он будет дальше работать? В-третьих, это экономия времени нанимающего (да, извините, это так). Чтобы просто открыть репо- нужно 5 минут, да. За них вы успеет увидеть кодстайл конкретного одного проекта и всё. А вот чтобы сделать выводы о качестве решения, нужно будет перешерстить несколько репо (обычно шлют ещё и несколько ссылок), найти более-менее сложный, разобраться в задаче, которую решает это приложение, понять архитектурные решение, прикинуть узкие места, пройтись по коду, найти эти узкие места, понять как человек это решил, наметить вопросы... Полчаса на репо. А у тебя 15 таких резюме в день, и в каждом n репосов. Сорри, но нереально.

    А тестовая задача готовится один раз, решения все её уже известны нанимающему, как и потенциальные вопросы вокруг. Да, перекладывание затрат на кандидата, поэтому стараемся использовать по минимуму и ставим её необязательной. Но, кстати, когда пишем, что задача не обязательная - почти 100% всё равно присылают решение.


    1. esemi Автор
      03.10.2022 13:22

      Вы как-то исходите из предположения, что все люди в мире адекватны.

      да, по-умолчанию я считаю человека адекватным, пока не доказано обратное =)

      у кандидата 10 лет может быть в смежном стеке
      может быть он занимался однотипными задачами и знает только один фреймворк
      10 лет сидел и занимался одним и тем же
      Потому что резюме может быть в конце-концов чужим

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

      чужой он, свой, написан самим человеком или с помощью, всё равно придётся по нему разговаривать

      Конечно придётся разговаривать, как и по решению тестовой задачки. Не оставлять же человека без фидбека, да?

      у тебя 15 таких резюме в день

      Вы гугол или нанимаете джунов? Где тот эльдорадо, откуда берутся 15 крепких профи в день на рядовую должность?


  1. NikolaSvobodova
    03.10.2022 13:52

    Задачки с литкода на кручение деревьев

    Я не совсем понимаю смысл этих задач.

    О существовании структур, алгоритмов и задач на них я узнала на собесе с Контуром, когда они меня попросили решить одну из задач, до этого 6 лет в программировании я как-то обходилась без них.