IMHO. Техинтервью

от автора

Исходя из 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.

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

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


ссылка на оригинал статьи https://habr.com/ru/articles/730118/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *