Исходя из 8 лет опыта коммерческой разработки, 3 лет тимлидства, 5 компаний за плечами, могу утверждать: многие соискатели в IT сфере часто после собеседований сидят в ступоре и переваривают события, в частности из-за того, что обескуражены поведением интервьюеров или их неожиданными и странными вопросами. Есть ощущение, что время от времени полезно переосмысливать стандарты проведения техинтервью. В этой статье поделюсь своими наблюдениями о собесах в индустрии веб-разработки: кто проводит, кто на них приходит, почему кто-то остаётся после них недоволен. Рассуждения будут касаться скорее мелких и средне-крупных компаний РФ и ближнего зарубежья, занимающихся веб-разработкой, чем гигантов отрасли, не говоря уже про FAANG.

В доковидные времена часто приходилось приезжать на оффлайн интервью, где ты с листком, как на экзамене, для нескольких человек показывал свои знания. За последние два года всё перешло в онлайн, где нас ждали зум, лайфкодинг (который многие не одобряют за свою слабую эффективность — отдельная тема для дискуссий), либо просто тестовое, которое можно было делать, когда тебе удобно. Потенциальное количество собес/единица времени увеличилось в разы, а значит, и способы проведения собесов и типичные практики накапливаются быстрее.

Будучи junior-middle разработчиком, я часто наблюдал уставшие лица 1-3 собеседующих потенциальных коллег, без особого энтузиазма задающих вопросы, нагугленные с Хабра за 5 минут до мероприятия. Одновременно с этим — попытки самоутвердиться в некоторых узких низкоуровневых вопросах, которые актуальней было бы задавать Senior кандидатам. А отсутствие soft skills можно было понять по таким вопросам, как “а ты думаешь, что действительно стоишь этих денег?” — явно красный флаг для любого уважающего себя соискателя.

Со временем из всего этого мне удалось выделить главную проблему “собеседующих сеньоров”: призванные на мит разработчики до конца не понимают, что они там делают. Их реальная задача — за короткое время найти себе коллегу, который максимально быстро вникнет в проект и коллектив и начнёт приносить бизнесу пользу. На деле запускаются круги бесконечных собесов. Разработчиков средней когорты нагружают вопросами про взгляды на оптимизацию терабайтных БД, алгоритм Дейкстры, TDD, DDD, SOLID, и прочие умные наборы букв. Я не говорю, что вышеупомянутые вопросы сложные, бесполезные, и т. д. Они очень хороши и актуальны, когда в кодовой базе действительно есть, например, сложные алгоритмические конструкции, highload, соблюдаются Coding стандарты.

Фактически же при выполнении непосредственных обязанностей приходится писать типичные CRUD операции, максимум — прикрутить какую-то платёжку, сдвинуть на полпикселя вправо кнопку, предварительно в очередной раз перекрасив её в лососевый цвет. В реальности solid встречается разве что где-то в стилях на уровне border: solid red. К сожалению, через призму типовых вопросов игнорируется способность соискателя к обучению, уровень его энтузиазма в целом и вовлеченность в сферу. Компании прибегают к рассылке заковыристых тестовых, эффективность которых в сообществе программистов часто вызывает сомнения. И вишенка — нулевое покрытие тестами кода (где никто и не собирается их писать), хотя этому этапу любят уделять весомый кусок интервью. 

В сухом остатке мы получаем: бесполезно потраченное время на банальную тягомотину, гордо именуемую “собеседование”. Бизнес так и не нашёл себе нужного сотрудника, а соискатель пока остаётся без работы. А в особо пикантных случаях интервьюер очередной раз может блеснуть перед эйчарами и менее опытными камрадами своими хард-скиллами. Таких лидов, к счастью, я повидал не шибко много. Был на моей памяти техлид (главный разработчик, фронт-бэк-девопс и жнец, и на дуде игрец), хороший специалист, но позволял себе орать на подчиненных, еще и в опенспейсе. На жалобы от коллег из смежных отделов топам получен ответ: “не вмешивайтесь, не обращайте внимания, рабочий момент”. Мда… Еще и было поощрение такого поведения сверху. В современных реалиях так точно быть не должно. Поэтому, в моей субъективной картине мира они свою роль в компании/команде видят примерно так и так же ведут себя на собесах:

великий
великий

Ну что ж. Теперь к примерам! Предлагаю взглянуть на два процесса найма сотрудников: в моей предыдущей компании, назовём её условно “Бездушная машина”, и в нынешней. Вакансия — Senior PHP developer, самые что ни на есть обычные требования, не highload.

Компания

ООО “Бездушная машина”

Karuna

Этап 0: знакомство

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

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

Этап 1: основной — техинтервью

Я приехал в офис, где собралось, как мне казалось, многовато народу, человек 6-7. Как потом выяснилось, фактически нужны были только двое: тимлид и директор айти отдела. Остальные пришли просто посидеть, вкинуть несколько вопросов не по теме, что меня, если честно, заставляло местами чувствовать себя неуютно. Но с двумя вышеупомянутыми будущими коллегами мы нашли быстро общий язык, пообщались про мой опыт и особенности проекта, технических вопросов почти не было. Заняло всё час-полтора времени. Прямо там, на месте, я понял, что меня берут.

Созвонились онлайн с лидом и эйчаром. Началось все со смол толка, далее — мой рассказ про опыт, обсуждение проекта в целом, затем последовали адекватные, сугубо по делу вопросы тимлида, например, немного про внутренности Laravel, про базы. Выдали кусок кода для быстрого review. Заняло всё полчаса. Всё!

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

Этап 2: чаще — последний, “офферный”, иногда — предпоследний, зависит от компаний.

Через несколько дней на почту пришёл оффер, который я принял, и меня сразу же позвали выходить на первый рабочий день. Никакого онбординга с погружением. Никакой вводной презентации хотя бы. К сожалению, на месте меня ждала неразбериха в проекте, с менеджментом, вообще не понятно было, кто за что отвечает, и чем занимается. И что меня сразу напрягло — уходы коллег-программистов, слухи о понижении ЗП. В итоге я попал в типичную “контору с амбициями”, фактически галеру, которую я впоследствии покинул.

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

Странно себя ведут на собеседованиях не только нанимающие, но и  кандидаты. Для анализа ошибок и их потенциального устранения рассмотрим типичные из них. Эта часть материала — скорее для тех, кто собесы собирается проходить, а не проводить. Итак, к досье.

Типаж: Гимназист
Возможные представители: вчерашние студенты, школьники и прочие джуны.
Характерные особенности: при попытке ответить на незнакомый вопрос, например, “чем отличается абстрактный класс от интерфейса?”, использует конструкции “ща-ща-ща”, "я учил, помню, там есть эти… а там их нету, или только этот, как его, ну”. Либо же наоборот: ответ на вопрос отскакивает от зубов как заученный стишок — значит, кандидат, не вникая в детали, по традиции заучил “типовые вопросы на собеседовании”.
Рекомендую: не знаешь — так и скажи, адекватный собеседник спокойно воспримет этот момент, так как он фактически прощупывает границы твоих знаний, чтобы максимально эффективно оценить текущие скиллы и соответствие потенциальной позиции. С неадекватным же интервьюером ты, скорее всего, не сработаешься, так что сэкономишь себе время.
FYI: никто кандидата не "вытягивает на тройку”, и никого не интересует, что он учил, и на какой странице в книжке искомый текст.

Типаж: Краснобай
Возможные представители: беспокойные кандидаты, иногда ещё не полностью уверенные в себе с профессиональной точки зрения.
Характерные особенности: попытки заболтать интервьюера. Шуточки-прибауточки, чрезмерные переходы в разговоры не по теме рано или поздно начнут собеседников сильно напрягать.
Рекомендую: веди себя спокойно и естественно. Как правило, в этот момент ты онлайн, у себя дома, в комфорте, с чашкой любимого кофе — всё располагает к комфортному общению. Все мы люди, и это не "последний вагон” — постарайся относиться к интервью спокойней. 
FYI: да, хочется растопить лёд, показать, насколько ты уверен в себе, но, как показывает практика, грани разумного очень легко перейти.

Фразы, которыми не рекомендуется злоупотреблять: "А какие еще бенефиты у вашей компании?", "Внимание, анекдот!"

Типаж: Скромник
Возможные представители: неуверенные в себе кандидаты (в том числе и сильные опытные сеньоры), частые обладатели "синдрома самозванца”.
Характерные особенности: при общении создаётся ощущение, что нанимающему беседа важнее, чем кандидату. А кандидат тем временем — с неплохим резюме, опытом работы, но стесняется связать три слова. Таким образом, ты как кандидат можешь не пройти софт скилл фильтр, хотя в жизни ты — действительно интересный и, может даже, общительный человек.
Рекомендую: работать над собой, прокачивать софты и навыки общения и эмоционального интеллекта. А, может, в твоём случае есть волшебная таблетка — и это обычная таблетка успокоительного перед собесом.
FYI: хороший интервьюер поможет разговорить человека, раскрыть его потенциал и достойно оценить способности. Но полагайся в первую очередь, конечно, на себя.

Типаж: Фантазёр
Возможные представители: слабые специалисты, усиленно ищущие больше денег “right here right now” и/или выпускники скилбоксов, практикумов, пр.
Характерные особенности: самый интересный типаж. Кандидаты слегка или по жести приукрашивают свои заслуги в резюме в надежде “проскочить”. 
Рекомендую: реально оценивать свои способности — всё тайное становится явным.
FYI: даже в процессе интервью, как правило, вскрывается всё, что далеко от фактов. Если не вскроется сразу — в работе быстро станет понятно, что к чему. В результате — все потеряют время. Но и здесь не без исключений — суперредко, но случаются фантазёры, которые так мощно желают войти-в-айти, что потом быстро навёрстывают всё, что насочиняли.  ̶Н̶о̶ ̶л̶у̶ч̶ш̶е̶ ̶н̶е̶ ̶п̶ы̶т̶а̶й̶т̶е̶с̶ь̶ ̶п̶о̶в̶т̶о̶р̶и̶т̶ь̶ ̶в̶ ̶д̶о̶м̶а̶ш̶н̶и̶х̶ ̶у̶с̶л̶о̶в̶и̶я̶х̶.̶

Что полезно знать всем кандидатам: при удалённых интервью необходимо тихое место с камерой, стабильным интернетом и нормально работающим микрофоном. Всё. Крайне неподходящие для собесов места: фуд-корты, ТЦ, шумные кафе, бары, общежития, за рулём транспортного средства, или прогулка до магазина. У нас однажды на собесе был чувак, который шёл под дождём по шумной улице и курил электронку. Мы вежливо довели дело до конца, но для меня это — трэш за гранью.

В кульминации хочу вернуться к позициям собеседующих и дать ненавязчивый совет лидам, особенно при наборе джунов: прибегайте к индивидуальному подходу, забудьте про список типичных вопросов. Можете сформировать свой чек-лист базовых вопросов, чтобы прощупать фундаментальные знания (MySQL, JS, etc), или же наиболее важные технологии для проектов компании (Web 3, брокеры очередей, etc). Не грех и заранее высылать этот перечень кандидатам, чтобы по возможности предварительно отсеялись совсем неподходящих. Но, если вы сами недавно вычитали, например, про разницу http методов PUT и PATCH, идемпотентность, но вся ваша API в проекте состоит из методов GET-POST,  и дальше разработка будет в том же духе — нет смысла тратить время на такие вопросы. Если заниматься конвейерными и не особо взвешенными собеседованиями, можно потерять действительно ценных ребят.

В качестве примера хочу упомянуть личный опыт индивидуального подхода. 

Преамбула: позиция PHP Junior developer, желательно с опытом, по стеку довольно обыденно: PHP (Laravel), MySQL, JS будет плюсом, и т. д. 

В общем, пришёл обычный парень 19 лет, в футболке с Летовым, чувствовал себя уверенно, немного расслабленно, но по типажу скорее “Скромник”. Поприветствовали друг друга, начали с несложных вопросов (примитивы, абстрактные классы, и т. д.). Отвечал на всё бодро, стало быстро понятно, что сидит хороший такой джун. В процессе удалось вывести на комфортный диалог, выяснилось, что и брат программист, айти семья, так сказать. Но когда дело коснулось баз данных, там начались ступоры. Правда, он добросовестно заранее предупредил о том, что это не его сильная сторона. (Тут оффтопом хочется вспомнить другое интервью — с кандидатом, который уверял, что делал лабораторные по базам за весь поток. Но, как выяснилось, про те же JOIN-ы даже не слышал). Вернёмся к нашему чемпиону. PHP знает неплохо, увлекается предметной областью проектов, пробовал MVC фреймворки, глаза горят. По итогам: мой ответ был положительным, стажер достаточно быстро влился и стал приносить пользу бизнесу на простых задачах. А уже через несколько месяцев в качестве сотрудника писал и сложные запросы в базу, и со временем успешно освоил Node.js для side проекта, и поныне успешно вовлечённо трудится в сфере. А я мог бы поступить иначе, упереться лбом во второстепенные пробелы в знаниях, и лишить таким образом команду и бизнес крутого и подходящего по большинству параметров коллеги. И подобный случай далеко не единичный.

Итоги

Кандидатам: 

  • Готовьтесь, но не заучивайте (это не поможет).

  • Не переусердствуйте в попытках “продать” себя. Будьте предельно честными. Все приукрашенные моменты, например, “эксперт DDD”, хотя до интервью ты впервые услышал эту аббревиатуру, рано или поздно вскроются, что может повлечь вереницу неприятных ситуаций в будущем. И это будущее может наступить очень быстро.

  • Не бойтесь говорить про свой опыт. Крайне полезно рассказать про самые интересные и сложные задачи, которые вы выполняли, какие паттерны использовали, какие технологии изучили и применили, какая польза бизнесу была от них, как преодолевали кризисные ситуации (например FATAL на проде). Такой связный, подробный  рассказ оставит важное, хорошее впечатление, покажет, с какими вызовами вы сталкивались, вы продемонстрируете способности к решению задач, покажете, какими подходами руководствуетесь.

Ищущим и нанимающим:

  • Приходите собеседовать с чётким пониманием, чем занимается ваша команда/компания, кто вам нужен и зачем. Например, если вам нужен человек, штампующий сайтики-визитки на WordPress как пирожки, смысл спрашивать про индексацию терабайтных БД и решением алгоритмических задач с интернетов теряется. Предпочтительней будет разобраться, как у кандидата дела с версткой, какие шаблоны приходилось использовать, ну, и про внутренние особенности самого WordPress.

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

И всем удачи и классной работы, конечно. :)

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


  1. koreychenko
    21.04.2023 07:59
    +3

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


  1. DMGarikk
    21.04.2023 07:59
    +1

    Готовьтесь, но не заучивайте (это не поможет)

    Это для адекватных компаний, мне частенько приходится вспоминать академическую "теорию", чтобы не казаться тупым джуном пришедшим на собес топ-сеньора ;))


    Не бойтесь говорить про свой опыт.

    +100500, это кстати для меня самый мастхев, если на собесе интерьвюверы не съезжают в тупую долбежку задач литкода и получением типовых ответов как в учебнике… то для меня это самое удачное интервью — обсудить мой опыт, сравнить с опытом интервьювера и поговорить про задачи и кейсы


  1. VanaEestlane
    21.04.2023 07:59
    +3

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

    Мммм, а кому работник нужен? Я не знаю как у вас устроено, но у меня устроено так, если слышу что «да у нас тут очередь стоит из желающих», я прощаюсь. Терпеть не могу враньё, если у вас очередь, то зачем вакансию размещали?


    1. andrey_komrad Автор
      21.04.2023 07:59

      Разумеется, специалист нужен компании, кандидату нужна работа) Как раз таки собеседование важный для обеих сторон процесс. И враньё, конечно же, плохо.


  1. Cloudy123
    21.04.2023 07:59
    +2

    А что бы Вы сказали по поводу женщины 47 лет, на вакансию тестировщика после курсов, без опыта в этой сфере и с большим желанием работать? Или шансы только у молодых?


    1. Gradiens
      21.04.2023 07:59
      +1

      Не знаю, как автор, но я бы в случае кандидата "после курсов, без опыта в этой сфере" (и при наличии вакансии стажера/джуна) смотрел бы именно на желание работать. На желание учиться. На стиль мышления. На логику. Что человек станет делать, если что-то не получается, или чего-то не понимает. На то, каков вообще человек в общении.

      Но желание работать - первично.

      Возраст сам по себе не важен. ИМХО.


    1. aGGre55or
      21.04.2023 07:59
      +2

      Всё перечисленное Вами не играет никакой роли.

      Фактически в большинстве компаний HR - это необходимое зло. Потому что худо-бедно они отсеивают совсем идиотов (а их есть и много). Задача кандидата проста: выйти на ЛПР (лицо принимающее решение). Всех HR и прочие этапы надо проходить с максимально возможной эффективностью. Можно врать, одеваться в ростовую фигуру Пикачу, читать Гёте - что угодно, если это способствует. Вам со всеми этими людьми потом НЕ работать. Их надо просто пройти.

      Когда Вы выходите на ЛПР, то 95% решения принимает будущий руководитель и на 5% прислушивается к прочим присутствующим. Они могут как угодно Вас раскритиковать, но если Вы заинтересовали ЛПР, то все прочие - побоку. Конечно, после трудоустройства у Вас возможно будут тёрки с этими персонажами, как правило на первом этапе. Но это - другая история. Вы ищите работу, а не оценку Ваших опыта, желания и прочих нематериальных сущностей. И если Вас всё устраивает, то разговаривать надо с теми людьми которые дадут Вам эту работу (ЛПР), а не с теми от которых что-то может зависеть в моменте. Момент закончится, работа - останется. Если Ваш ЛПР и сам не подросток, проблемы с Вашим возрастом не будет.

      Поэтому считаю такие статьи попытками авторов разобраться и положить осмысленное на бумагу, но в целом они - бесполезны.


    1. andrey_komrad Автор
      21.04.2023 07:59
      -1

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


  1. Trancevocal
    21.04.2023 07:59

    На текущую работу я устроился пройдя 72 (семьдесят два!) собеседования. Обычно за день ходил на 2-3 собеседоваиия. Зато теперь всем дооволен - лучшая работа за всю предыдущую жизнь. И много молодых симпатичных сотрудниц. :) Это весьма важно, вы поймете это проаботав несколько лет в мужском коллективе.


    1. dyadyaSerezha
      21.04.2023 07:59

      Явки пароли - в личку плиз)


  1. Gradiens
    21.04.2023 07:59

    при удалённых интервью необходимо тихое место с камерой, стабильным интернетом и нормально работающим микрофоном.

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

    Нормально работающий микрофон - это, как минимум, проводной микрофон. Беспроводные наушники как правило выдают ужасное качество. Кто не верит - попросите друга позвонить вам, скажем, с airpods, а потом с проводным микрофоном. Уверен, вы впечатлитесь.

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

    Еще из очевидного, но часто игнорируемого:

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

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

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

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


    1. Mike-M
      21.04.2023 07:59

      Нормально работающий микрофон — это, как минимум, проводной микрофон.

      Пользуюсь связкой ПК + вебкамера с микрофоном Logitech C920 — идеально, даже шумодав не нужен.


      Для стабильности Интернета желательно иметь резервный канал.

      И UPS для роутера.


    1. dyadyaSerezha
      21.04.2023 07:59

      Есть офисные беспроводные наушники с микрофоном на штанге. Прекрасный звук.


    1. 402d
      21.04.2023 07:59

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


  1. pilot2k
    21.04.2023 07:59
    +1

    DDD - data driven delivery
    DDD - domain drive design
    DDD - data display debugger
    DDD - davay davay deploi
    etc, and so on and so force

    хорош уже пользоваться аббревиатурами и в CV и в вакансиях


  1. Mike-M
    21.04.2023 07:59

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

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


  1. dyadyaSerezha
    21.04.2023 07:59

    Не понял, а при чем тут json и базы данных? БД существовали десятки лет до json'а и никак, в общем и целом, с ним не связаны. А если какая-то no-SQL база выдаёт данные в виде json, это её личное дело. В любом случае понять, что такое json, можно за 5 минут.