Привет, Хабр! Меня зовут Артём Елизаров, я руковожу отделом разработки фронтальных решений в R-Style Softlab. Значительную часть рабочего времени я посвящаю подбору специалистов и в общей сложности занимаюсь этим уже более 5 лет. В этой статье я хотел бы поделиться опытом проведения собеседований, их спецификой и дать рекомендации тем, кто ищет работу фронтенд-разработчиком. 

Воронка кандидатов и время закрытия позиций

Как руководитель, отвечающий сразу за несколько проектов, я заинтересован в том, чтобы штат всегда был укомплектован, а на подряде работали ребята, которым можно доверять. Поэтому выстраивание процесса найма — один из лучших способов снизить риски на проекте. Сегодня под моим руководством несколько лидов, которым я могу доверить подбор людей, что сильно облегчает жизнь, но так было не всегда. Еще недавно 2-3 собеседования каждый день было для меня нормой.

Наш основной стек — React, Redux Toolkit, Effector, поэтому мы работаем на рынке, где много и специалистов, и вакансий. Это позволяет, с одной стороны, не выходить за рамки бюджетов, а с другой — усложняет задачу найма, так как нужно не только найти, но и удержать будущего сотрудника. Единственное исключение — поиск специалистов со знанием технологий криптозащиты. Здесь нужно быть готовым к тому, чтобы либо тратить ресурсы на обучение, либо конкурировать за счет высокой зарплаты. Мы чаще идем в сторону обучения. В среднем, чтобы закрыть одну позицию в штате, мы проводим от 10 до 15 собеседований, при подборе по договору ГПХ, аутстафу или самозанятости — меньше.

Подготовка вопросов для HR — возможность ускорить прохождение кандидата по воронке. Приведу для примера несколько вопросов, которые могут помочь отсеять неподходящих кандидатов, даже если HR плохо разбирается в ИТ-терминологии. 


Примеры вопросов 

  • Назовите разницу между == и === (двойным сравнением и тройным сравнением) 

  • Как проверить, является ли переменная массивом в JavaScript? 

  • Чем отличаются let и var в JavaScript? 

  • Чем отличается null от undefined в JavaScript? 

  • Как вы считаете, React предоставляет декларативный или императивный API? 

  • В чем разница между функциональными и классовыми компонентами в React?  

  • Назовите основные методы жизненного цикла классового компонента по порядку 

  • Назовите самые популярные mutable (мутабельные) методы массива в Javascript? 

  • Как передать данные от родительского компонента к дочернему в React? 

  • Как можно улучшить производительность приложения на React? 

Что спрашивать на собеседовании: console.log и livecoding

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

Чтобы оценить технические навыки, я даю задачи, где нужно рассказать, что происходит в коде и что выводится в консоль. Это показывает базовое понимание логики работы языка программирования, и далее провожу livecoding. 

Для livecoding’а  у меня есть 10 задач, одну из которых я предлагаю кандидатам или прошу назвать число от 1 до 10, но в этом случае большинство называют цифру 7 ?. 

Пример задачи для livecoding’а
Пример задачи для livecoding’а

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

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

Зарплата — главный мотивационный фактор, но есть и другие 

Конечно, для большинства специалистов зарплата — главная мотивация. Интересный факт: по моим наблюдениям 70% потока кандидатов — люди, которые меняют профессиональный профиль и хотят работать в ИТ-сфере. Сейчас в моей команде успешно работают бывший полицейский, грузчик и экс-сотрудник администрации города, например. Все ребята прошли тесты и отбор, поэтому непрофильный бэкграунд — еще не повод отказывать. Если в компании выстроен процесс обучения и поддержки, джун может быть подходящим вариантом. 

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

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

ChatGPT на собеседовании и другие уловки кандидатов 

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

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

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

Подводя итог, я бы добавил несколько советов для тех, кто ищет сейчас работу: 

  1. Постарайтесь не волноваться. Волнение мешает показать ваши навыки и умения, относитесь к собеседованию как к важному, но не фатальному событию в вашей жизни. 

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

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

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

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


  1. Mox
    17.01.2025 14:35

    А как вы соединяете redux-tookit и effector? Или это в разных проектах?


    1. prodota
      17.01.2025 14:35

      У нас redux-tookit и effector используются на разных проектах.


  1. sneg2015
    17.01.2025 14:35

    Статья написанная сотрудником с помощью chatgpt обличает сотрудников с chatgpt)


  1. Macaronin
    17.01.2025 14:35

    А если у человека два монитора? Зашарить экран уже не спасёт


    1. travacry
      17.01.2025 14:35

      ну так это уже программист


  1. AzaBroflovski
    17.01.2025 14:35

    AI slop


  1. vigilante
    17.01.2025 14:35

    Никогда не понимал смысл таких задач, как та, что приведена в примере ливкодинга. Какое она отношение имеет к реальной жизни? Я понимаю, что можно проверить тем самым насколько сложный алгоритм будет использован, но, положа руку на сердце, насколько часто вам это требуется от разработчика (даже от синьора)? И если разработчик загуглит не самое удачное решение, но при этом отлично разбирается в построении архитектуры, бережно относится к требованиям, находя оптимальные решения, допускает мало ошибок в работе, он будет понижен в грейде только от того, что не знает как лучше построить алгоритм в данном конкретном случае, который в 99% случаев не будет относится к его работе. Или я ошибаюсь и это это не 99%?


  1. WindMill
    17.01.2025 14:35

    Ну-ну. Книжки читать можно. Гулить можно. ЧатГПТ нельзя. Зато можно вывосанные из пальца задачи, которые со 100% вероятностью никогда не встретятся в реале. Я вот наоборот не беру тех, кто не умеет или отказывается использовать нейросети. С ними и быстрее и качественнее.


  1. try1975
    17.01.2025 14:35

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


  1. vital_pavlenko
    17.01.2025 14:35

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

    Поэтому было бы лицемерием ожидать от кандидата, что он «честный». Если он выполнил задачу самым эффективным образом, то все только в плюсе от этого