Прочитал занимательную статью в этом хабе, с карточками для кандидатов, и вспомнил, что у самого накопилось заметок о проблемах при найме на российском рынке. Поскольку расширять этот список в будущем я не планирую – самое время написать статью со стороны кандидата. В некотором роде пост-ответ.
Привет, Хабр! Меня зовут Семён, и я обычный SWE (tm). За много лет работы я многих нанимал и к себе в команды, и к партнёрам. А ещё больше собеседовался в «стартапы на троих» и в стартапы на 500+ людей. За это время успел собрать некоторый опыт в рекрутинге на рынке РФ.
Не обещаю вам готовых рецептов по построению процесса найма , хоть и люблю в это погружаться, но помогу кому-то поменять понимание этих процессов к лучшему.
Также вас не ждут карточки с вопросами к компании – я искренне убеждён, что каждый должен написать себе свои, исходя из хотелок от работы, жизни и вообще ;)
Процессы
Давайте начнём с процессов, и будем держать в уме, что всё в нашем мире взаимосвязано. Процессы строят люди, а люди работают за деньги, которые приносят отлаженные процессы. Сложно отделить одно от другого, но классифицировать проблемы необходимо.
HR-секция
Как правило, первый человек, который встречает кандидата со стороны компании – рекрутер или hr. Конечно бывают исключения, когда на вас сразу выходит лид/СТО/CEO, но это заявочка на индивидуальный хантинг, а моя заметка всё же про найм «с рынка», так что оставим исключения за скобками.
Сразу уточню, что не разделяю мнение – «рекрутеры не нужны» . Делегировать часть рутинных процессов потокового найма может оказаться крайне продуктивно, особенно если мы говорим о найме специалистов начального уровня.
Другое дело, что рекрутер должен быть полезен и кандидату. Специалист, который ничего не знает о конкретной позиции и команде может быть заменён на бота в telegram, который просит резюме, даёт базовую инфу по компании и букает слот в календаре лица принимающего решение. Пользы от такого скрининга для кандидата около нуля, сервисный момент.
Специальный мультипликатор для предыдущей проблемы включается, когда компания отдаёт рекрутинг в кадровое агентство. Здесь начинаются игры в челночную дипломатию с испорченным телефоном. Не знаю какие KPI ставит агентство своим сотрудникам, но последние готовы любой ценой загнать вас на следующий этап собеседований. Даже если для этого придётся приукрасить позицию и исказить вашу мотивацию в диалоге с компанией-нанимателем. По итогу на следующем этапе имеем как минимум двух человек, округляющих глаза друг на друга :(
Отдельная боль – рекрутер, который пробует задавать технические вопросы. Можно понять пару вопросов по учебнику для вашего стека, но иногда всерьез начинается устное анкетирование на час! Мало того, что рекрутер играет роль гугл-формы – прочитать вопрос «как написано», записать ответ «как услышано», так ещё выдаёт негибкость в процессах найма компании. Зачем задавать вопрос «что такое цикл» человеку с десяткой лет профильного опыта? Часто рекрутер сам понимает всю комичность ситуации и заранее извиняется за не так произнесённые термины, но «процесс един для всех», и всё – тупик , ведь процесс нельзя менять, вы не знали? ;)
Tech-секция
Но хватит о коллегах-рекрутерах, технарям тоже есть что улучшать в своей секции.
Задачки с литкода на кручение деревьев – крайне волнительная тема в сообществе. Я не против них – это полезная тренировка для мозга, но точно ли вам нужен человек который решает такие задачки с пол-оборота в команде?
Важнее обсудить с человеком одну из последних проблем на проекте, послушать его варианты решения боевой таски или поговорить про его опыт и проблемы на последнем проекте, чем проверять как быстро он перекрасит листья из красного в чёрный. Думаю главное проверять на собеседовании то, чем человеку придётся заниматься большую часть времени . Обидно решать на собеседовании алгоритмы на графах, а на проекте сесть на поддержку дубового легаси без графов. Не надо так (:
А как же задачки на доске с условием «чтобы компилялось!!!» . Доска – это классно и удобно, но на ней намного логичнее прикинуть алгоритм/архитектуру, нежели вспоминать конкретную имплементацию в целевом стеке тех или иных стандартных функций.
Про пять одинаковых Tech-секций тоже уже кто только не прошёлся. Не буду оригинальным – у меня много вопросов к лиду, который не может за пару часов с достаточной вероятностью понять потянет ли кандидат задачи команды со стороны хард-скилов. Из разряда удивительных историй – однажды я по фану прошёл девять этапов собеса в небольшую компанию и это явно был не предел =)
Одну из tech-секций иногда заменяют на домашнее тестовое задание. И одно из десяти таковых даже бывает интересным и необычным. Но если типовую задачку для оценки навыка кодинга нельзя заменить парой актуальных и живых репозиториев из github кандидата – это опять звоночек про гибкость процессов.
А ещё можно отдать на аутсорс этап техскрининга, и с большой вероятностью получить всё те же проблемы, что и с рекрутингом через кадровое агентство, только уже с технарями – проблематики проекта у собеседника нет, так что нас ждут увлекательные «100 вопросов для собеседования на языке N».
Люди
Начнём с классики вакансий играющего тренера (tm): у этой напасти сотни имён – помощник СТО (он же девопс, sic!), техлид с обязанностями тимлида, тимлид с обязанностями PM, SWE и scrum-мастер в одном лице и так далее. Всё это симптомы того, что лицо принимающие решение не до конца понимает кого ищет и зачем. В теорию о тотальной экономии денег на ФОТ я не верю (:
По той же причине встречаются собеседники, которые не знают что спросить у кандидата на собеседовании. Казалось бы, если ты участвуешь в процессе найма – найди время подумать над пользой своего участия для обеих сторон. Терминальная стадия – дать кандидату почувствовать, что ему тут не рады и рады не будут, но не говорить об этом прямо/корректно и не сворачивать собес.
Отдельная просьба – не ходите на собеседование если выгорели, устали и вообще не выспались. Грустно, когда СТО не может продать тебе архитектуру проекта, а PO как будто сам не верит в успех продукта. Ну и скрывать суть проекта и его экономику до самого последнего – это очень плохо.
Про деньги
И, конечно, важно упомянуть про деньги при разговоре за офферы. Как ни странно, в этом разделе проблем меньше всего . Возможно, всё дело в предварительной фильтрации компаний по предыдущим пунктам , как итог – до серьёзного обсуждения денег доходит не часто.
Сначала рекрутеры играют в «кто первым вилку назовёт», а потом округляют глаза на средненький рыночный рейт. Есть постоянство в этом мире :)
Но отдельного упоминания заслуживает подход к выставлению оффера на пару процентов меньше суммы, которую кандидат обозначил как «минимум». Учитывая, что от первого оффера ценник при взаимном интересе торгуется на плюс 20% минимум, мне совершенно непонятны эти минус 2% от минималки. Если кто-то знает секрет такой тактики поделитесь, пожалуйста!
Вместо заключения
Почему меня вообще волнует процесс найма? Да потому, что рано или поздно мне придётся нанимать себе коллег, и классно если процесс найма в компании уже построен близко к моим вкусам. Да и потом, работать с первых дней придётся с людьми, которых устроил текущий процесс, так что это в некотором роде ещё и проверка общего калч-фита с будущим коллективом.
Всё описанное актуально для малых и средних it-компаний рынка РФ. Мои вкусы очень специфичны (нет).
И, повторюсь, что всё это глубоко ИМХО. Совпадения случайны и не являются инвестиционной рекомендацией руководством к действию. Буду рад аргументированной критике в комментах =)
Комментарии (20)
panzerfaust
30.09.2022 16:44+5Почему компании не могут пройти собеседование с айтишником
Да нет у них никаких проблем, все они "могут". Перефразируя Карлина, "HR is fine, the devs are f***d". О чем говорит тот факт, что самые дебильные практики в HR спокойно живут уже десятилетиями? О том, что всем и так норм. Большинство из нас побухтит на хабре, а на деле все равно покорно пройдет первичный собес, где эйчар будет сбивчиво по бумажке читать вопросы а ля "что такое полиморфизм". А потом мы пойдем писать алгоритм Дейкстры на вакансию, где нужно перекладывать джейсоны. Реально переломить ситуацию можно массовым бойкотом контор, где вращают деревья на доске и вот это все. Вот, чем стоило бы заниматься небезызвестному Профсоюзу вместо написания истеричных пассажей.
nikolas78
30.09.2022 17:16+6О чем говорит тот факт, что самые дебильные практики в HR спокойно живут уже десятилетиями? О том, что всем и так норм. Большинство из нас побухтит на хабре, а на деле все равно покорно пройдет первичный собес
Это также говорит о том, что все-таки в IT рынок не соискателя, а работодателя. Иначе бы уже давно появились стартапы по найму, прогибающие ситуацию под работника.IvanSTV
30.09.2022 17:45+4Это также говорит о том, что все-таки в IT рынок не соискателя, а работодателя.
во, хоть кто-то понимает... В принципе рынок труда - это рынок работодателя, потому что наемный работник не "труд" продает, а товар "рабочая сила". И тут возникает нюанс... впрочем, это уже 170 лет как объяснено и разжевано.
Tim7456
03.10.2022 13:50Рынок труда он разный. За последние 5 лет в АйТи вообще, и в big tech в частности, он был и рынком работодателя, и рынком работника. В хороших компаниях HR чувствует текущий момент, и они собирают сливки. Остальным достается ... то, что осталось.
pomponchik
30.09.2022 17:43+10Как человек, для которого упомянутые вращения никогда не представляли сложности, и которому они даже нравятся, я бы предпочел, чтобы везде одними только деревьями и ограничивались.
kalombo
30.09.2022 22:27+1А я бы в шахматы предпочел сыграть на собеседовании, они мне тоже очень нравятся, только они, как и вращения, не показывают умения перекладывать json
Format-X22
01.10.2022 02:27+2Я вот как раз ищу к себе в команду и собесю прям реальной боевой задачей с прода, когда у тебя бигдата и заходит стрим данных с ходу так что если делать в лоб, то либо память закончится сразу, либо базу данных заддосишь. Но абстрактно и вместо стрима массивчик на 6 чисел, а эталонное решение строк на 40 всего. Но в итоге усложняя потихоньку вопросы успеваю понять:
Умеет ли человек в не сценарные алгоритмы, когда не просто получил, обработал, зачистил память и заново, а есть непрерывный бесконечный процесс
Имеет ли человек вообще опыт с агрегацией чего-либо, не только перекидывание джейсонов
Понимает ли какие есть косяки с памятью и скоростью и почему нельзя просто сразу всё выполнить
Сможет ли предложить такую структуру данных, которая позволит не умереть серверу сразу в момент пиковой нагрузки, отложив выполнение, есть варианты со своими нюансами
И при этом это решение должно не умереть неожиданно через пару месяцев из-за переполнения счетчика и прочего
-
И да - кандидаты обычно умещаются как раз в 40 строк, но эти строки и шаги улучшений говорят о многом
Пока все кто проходил говорят что самое не скучное задание из тех что им приходилось делать. И при этом оно у нас на продакшене, то есть не абстрактные деревья крутить, а вот живое и настоящее. Но идеального кандидата всё ещё не нашли, тлен-боль, хотя меньше месяца ищем, но тем не менее, где вы сеньёры NodeJS, крутой проект ищет вас :)
0x131315
01.10.2022 11:31Для специфичных штук не ищут, а выращивают. На проекте можно накрутить что угодно, но сходу с этим разберется только тот, кто все это накручивал, остальные будут долго въезжать что это, как устроено, для чего и почему именно так, а также прощупывать старательно разложенные предыдущими поколениями минно полями всяческих костылей.
Format-X22
01.10.2022 11:33То есть считаете что стоит всё же спрашивать типичные скучные задачи, о которых жалуется каждый второй?
Alexsey
01.10.2022 13:38+2Скорее стоит спрашивать среднестатистическую задачу решаемую на вашем проекте, а не выбирать 1 супер highload задачу когда 999 других задач это перекладывание json'а.
Format-X22
01.10.2022 22:35Дело в том что там 80% задач на сбор и кеширование, по сути это такой кеш-агрегатор над остальной системой. Близко к среднестатистической, такой вот проект.
Kelbon
01.10.2022 16:37Сидим оптимизируем , nodejs...
Format-X22
01.10.2022 22:29Оно глубже чем может казаться на первый взгляд, V8 от Google чертовски быстр, без потери гибкости и скорости разработки. Но это такой лютый холивар что ещё никогда никто в нём победителем не выходил, и статей с хвальбой и с хейтом и с бенчмарками сотня статей на хабре. Так что просто примем тот факт что да, нода, и да - есть задачки где надо поиграть в алгоритмы.
kanu
02.10.2022 04:20-2А вы бы ещё дотнетчиков поискал с нужными скиллами :) или пхпшников
Попробуйте не говорить людям, на чем пишете, и поискать людей из другого стэка, кому Нода не противна
LbISS
02.10.2022 14:08+1По итогу на следующем этапе имеем как минимум двух человек, округляющих глаза друг на друга
Терпеть не могу хайринг на аутсорсе. Было такое на прошлой неделе, кстати. Я обычно первые 7-8 минут трачу, чтобы рассказать о проекте, чтобы человек понимал, почему дальше будут те или иные вопросы. Рассказываю, вижу чем дальше, тем больше недоумения в глазах. Спрашиваю - что не так? Выясняется, что человек ищет вакансию только под Ангуляр и ничего больше не рассматривает, а у нас Ангуляр ни на одном из 150 проектов не используется и в описании вакансии не упоминается. Извинился, разошлись. HR объяснить мне, где у него голова, так и не смог. Видимо её нет.
Зачем задавать вопрос «что такое цикл» человеку с десяткой лет профильного опыта?
Вы как-то исходите из предположения, что все люди в мире адекватны.
Отвечая на вопрос "заяем задавать базовые вопросы?". Потому что у кандидата 10 лет может быть в смежном стеке, а написать в cv он забыл. Потому что, может быть он занимался однотипными задачами и знает только один фреймворк, а на любой вопрос про базовое строение языка плывёт. Потому что он 10 лет сидел и занимался одним и тем же или просто его работа в компании не была никому интересна и он не развивался. Потому что резюме может быть в конце-концов чужим (было и такое в практике). Поэтому базовые навыки проверяются всегда. Знаешь - молодец, потратили на это 5 минут, пошли дальше. Опять же, случай из недавних, у человека 11 лет опыта, причём по резюме выглядит солидно. Но ответы на вопросы про процессы или архитектуру - ноль (ответы вида "я не знаю") и при попытке посмотреть навыки кодинга человек не может написать нормально перебор коллекции. Неожиданно, но бывает и такое.
Но если типовую задачку для оценки навыка кодинга нельзя заменить парой актуальных и живых репозиториев из github кандидата – это опять звоночек про гибкость процессов.
Во-первых, мы опять же не знаем историю появления этого репозитория - чужой он, свой, написан самим человеком или с помощью, всё равно придётся по нему разговаривать. Поэтому оффлайн это не заменит. Во-вторых, оффлайн задача это проверка умения работать самостоятельно - вот тебе гугл, вот задача, которой нет в гугле в прямом виде, составь из всех производных нужное решение. Если человек в оффлайн не способен решить базовые задачи - нагуглить и синтезировать - то как он будет дальше работать? В-третьих, это экономия времени нанимающего (да, извините, это так). Чтобы просто открыть репо- нужно 5 минут, да. За них вы успеет увидеть кодстайл конкретного одного проекта и всё. А вот чтобы сделать выводы о качестве решения, нужно будет перешерстить несколько репо (обычно шлют ещё и несколько ссылок), найти более-менее сложный, разобраться в задаче, которую решает это приложение, понять архитектурные решение, прикинуть узкие места, пройтись по коду, найти эти узкие места, понять как человек это решил, наметить вопросы... Полчаса на репо. А у тебя 15 таких резюме в день, и в каждом n репосов. Сорри, но нереально.
А тестовая задача готовится один раз, решения все её уже известны нанимающему, как и потенциальные вопросы вокруг. Да, перекладывание затрат на кандидата, поэтому стараемся использовать по минимуму и ставим её необязательной. Но, кстати, когда пишем, что задача не обязательная - почти 100% всё равно присылают решение.
esemi Автор
03.10.2022 13:22Вы как-то исходите из предположения, что все люди в мире адекватны.
да, по-умолчанию я считаю человека адекватным, пока не доказано обратное =)
у кандидата 10 лет может быть в смежном стеке
может быть он занимался однотипными задачами и знает только один фреймворк
10 лет сидел и занимался одним и тем же
Потому что резюме может быть в конце-концов чужимНо ведь это всё выясняется разговором о его последних местах работы, роли, процессах и прочем? А умение писать цикл на целевом стеке можно проверить буквально однострочной таской для лайвкода.
чужой он, свой, написан самим человеком или с помощью, всё равно придётся по нему разговаривать
Конечно придётся разговаривать, как и по решению тестовой задачки. Не оставлять же человека без фидбека, да?
у тебя 15 таких резюме в день
Вы гугол или нанимаете джунов? Где тот эльдорадо, откуда берутся 15 крепких профи в день на рядовую должность?
NikolaSvobodova
03.10.2022 13:52Задачки с литкода на кручение деревьев
Я не совсем понимаю смысл этих задач.
О существовании структур, алгоритмов и задач на них я узнала на собесе с Контуром, когда они меня попросили решить одну из задач, до этого 6 лет в программировании я как-то обходилась без них.
IvanSTV
- Все дело в том, что собеседующие на размер зарплаты не влияют обычно. И потому такие переговоры. когда у нанимателя жесткая вилка, в принципе неудобна.
Скорей всего, минимум совпал с их максимумом, и для того, чтобы показать в отчетности, что нанимают людей не по внерхней планке.