Предвзятый и субъективный взгляд на резюме разработчика

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

image

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

Дисклеймер: всё, что я буду описывать в этой статье — субъективно и базируется на опыте и эмоциях, которые я испытываю, когда читаю резюме, собеседую разработчиков etc.

Если true story читать не хочется, а хочется сразу tl; dr (в виде «Итого») или how-to (в виде гайда), то можно промотать вниз на два последних блока.


Оффтоп: зачем мне тратить время на эту статью?

Давным-давно, еще студентом, я сидел перед компом и пытался воткнуть в это самое «нужно создать резюме, чтобы рассказать, какой я хороший и замечательный, и почему меня нужно взять без опыта». Вооружился гуглом и искал материалы формата «как создать резюме, в которое влюбится работодатель». Получалось примерно следующее: «Стрессоустойчивый кандидат познакомится с привлекательным работодателем. Хочу опыт и кусок хлеба, могу в потуги писать на C#, вот даже в универе такую штукенцию забахал!».


Резюме образца 2013 года

8dffmvsbxmzt3pf1y_u_qep1t7g.png

Почему я тогда указал Perl — я не знаю, не спрашивайте. Я написал на нем 2 строчки для лабораторки в ВУЗе и больше никогда не открывал.

Дальше было так: я сходил на собеседование в Яндекс на позицию фронтенд-разработчика в команду переводов. Там я красиво провалился. Я не знал вообще ничего. Сверстать пару блоков и немного покодить на JS я умел, конечно. Но в теоретической части я был где-то в районе -1.

Из того собеседования я вынес 3 мысли:


  1. Я хочу быть фронтендером, потому что они крутые и РИСУЮТ САЙТЫ. Что ж, мне было 19 лет, поэтому такие суждения простительны.
  2. Я хочу работать в яндексе. Там очень умные ребята, которые очень крутые. Позднее в Яндекс я всё-таки прошел и даже получил офер, но остался в hh.ru.
  3. Я провалил вопрос про выделение текста в textarea. Через несколько месяцев этот вопрос снова стал меня мучать, и я написал свою первую полноценную статью про JS на эту тему.

Дальше была Школа Программистов hh.ru, где из меня и сделали человека разработчика.


Это была лирика. Далее по теме

pfw6uhklqpwhhin71mjo6wzbvpc.png

За время работы в hh.ru я участвовал в огромном количестве собеседований. Сначала как подмастерье, а потом уже как ведущий этого праздника жизни. Мне всегда казалось, что собеседовать нужно совсем по-другому, нужно лучше. И в какой-то момент я стал много времени уделять резюме кандидата.

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

Зачастую резюме меня удивляли. После их прочтения у меня складывалось ощущение, что этот человек точно нам подойдет. Они не обязательно были уровня «работал в Netflix 100 лет, но решил вернуться в Россию». Было нечто другое, что «цепляло». Так я понял, что у резюме несколько задач:


  1. Успешно пройти ПВО в виде HR-менеджера
  2. «Зацепить» интервьюера, чтобы собеседование не скатилось в стандартное обсуждение 1000 и 1 вопроса, необходимых на интервью

Однако далеко не всегда интервьюер будет читать ваше резюме перед собеседованием. Я даже провел небольшой «эксперимент»: сходил в N компаний на собеседования в 2018–2019 годах. Сами собеседования условно можно было разделить на два типа:


  1. Интервьюер просто делает свою работу, ты ему вообще до лампочки. Здесь все понятно.
  2. Интервьюер ищет себе коллегу. Здесь и начинается диалог, обсуждаются технические моменты, а уходишь с ощущением, что всё было отлично. Офферов было немало, но мне нравится работать в hh.

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

А чтобы всё было по-честному: где-то в конце 2019 я угробил 4 выходных дня, чтобы выстрадать свое резюме.


Успешно пройти иммунную систему в виде HR

qbjf28qop80fu08b7nrcx9llnpw.png

На мой взгляд, базовый инструментарий HR-менеджера включает в себя:


  1. Договоренности с техническим департаментом, на что обращать внимание. Часто можно найти в wiki компании или просто спросить об этом HR. Например: «если в опыте кандидата верстка промиков — это не наш профиль» или «если работал над почтовыми сервисами — это нам нужно, зовем».
  2. Личный опыт. Набор личных эвристик основанных на предыдущем опыте: «ребята из этой компании сильные, другие разработчики о них хорошо отзываются», либо «кандидат меняет работы каждые полгода, стоит почитать его резюме внимательнее и желательно между строк».
  3. Keywords: React, Redux, Spring, Java, 15 лет опыта, Node.js
  4. Ачивки. «Съел пирог и не растолстел», «Моя фича набрала +100% к пользователям»


Зацепить интервьюера

uifa2obr3mh8bnpub1h_dwpxjro.png

Резюме — это краткое сочинение на тему «почему я хороший». Цель разработчиков — рассказать о тех вещах, которые могут зацепить.

Например:


  1. Делал клевый проект или отвечал за весь слой? Напиши про это.
  2. Занимался проработкой задач вместе с бизнес-заказчиками? Пара слов про это даст понять интервьюверу, что вы работаете не только на уровне «таска пришла-таска ушла»
  3. Есть что-то «около-работы»? Отлично, черкани пару строк. Нет такого? Да не проблема, life-work balance тоже ок.

Помимо «почему я хороший», резюме — это еще и набор тем для общения:


  1. Занимался архитектурой проекта? Отлично, можем похоливарить!
  2. Занимался перформансом? Круто, интервьюер увидит, что кандидат в этом сечет. А еще это повод начать не со стандартного «картинки нужно сжимать, а js тяжелее img», а с каких-то практических примеров из опыта.


Опыт работы. Препарируем пример

bqww0gewj6nrrwgaau7nw2c0qce.png

Крайне разочаровывают резюме уровня «работал работу на работе». Здесь отсутствует человек, есть просто функция. Приведу пример:

Компания: "Соло на трекпаде", 
Frontend-разработчик, Июль 2018 — по наст. бремя.

Участие в разработке продукта

Ничего не понятно. Есть портал. Он внутренний? Внешний? А сайт? Приложение? Чат? Какова в этом роль кандидата? Возможно было что-то, что в проекте нравилось? И наоборот? Миллиард вопросов!

Стоит чуть-чуть пройтись шпаклевкой, и такой пример становится полезнее:

Компания: "Соло на трекпаде", 
Frontend-разработчик, Июль 2018 — по наст. бремя.

Участие в разработке продукта для общения с клиентами через чаты техподдержки.
- Интеграция с телеграм, WhatsApp и вайбер
- Аналитика данных
- АБ

Для меня, как для интервьюера, становится понятно, что разработчик выделил для себя. Отличный повод поговорить о том, как проводились АБ тесты и собирались метрики. Необходимо понять, насколько разработчик — разработчик, и насколько мы на одной волне.

Для достижения лучшего эффекта кандидат может расставить акценты на том, что его драйвило:

Компания: "Соло на трекпаде", 
Frontend-разработчик, Июль 2018 — по наст. бремя.

Участие в разработке продукта для общения с клиентами через чаты техподдержки.

- Интеграция с телеграм — написали свой клиент через SDK. 
Это позволило увеличить конверсию пользователей на 100 человек в день

- Аналитика данных, АБ — организовал инфраструктуру для связи "Компоненты - эксперименты"

Кажется, что описано то же самое, что и в предыдущем примере, но:


  1. Интервьюер уже видит, что кандидат не дядя с улицы, а занимается вопросами улучшения и оптимизации. Чтобы проверить свою гипотезу, я завожу разговор о той самой инфраструктуре. Выясняется, что информация о том, от какого эксперимента зависит компонент, находится в static-поле. Бабель-плагин достает такие поля и формирует JSON страница ⇒ эксперименты.
  2. Упоминание достижений, даже локальных, говорит о том, что разработчику «не все равно». Не все равно, что там бизнес творит. Не все равно на фидбек сервиса. 100 очков гриффиндору.

Появляется логичный вопрос: А если так?

Компания: "Соло на трекпаде", 
Frontend-разработчик, Июль 2018 — по наст. бремя.

Участие в разработке продукта для общения с клиентами через чаты техподдержки.
Используемый стек: React, Redux, Кин-дза-дза, Node.js, FusRoDuh v3.

Это не даст вам преимущества. Упомянуть о стеке хорошо. Но превращение всего опыта работы в стек «я кодер, кодерю на стеке» не говорит о том, что разработчик умеет решать задачи.
Можно выбрать какой-нибудь срединный путь:

Компания: "Соло на трекпаде", 
Frontend-разработчик, Июль 2018 — по наст. бремя.

Участие в разработке продукта для общения с клиентами через чаты техподдержки.

- Интеграция с телеграм — написали свой клиент через Node.js SDK.
Это позволило увеличить конверсию пользователей на 100 человек в день

- Аналитика данных, АБ — организовал инфраструктуру для связи "React компоненты - эксперименты"

- Организация бизнес слоя на Redux + Saga, иницировал переход с thunk на Saga

Здесь в каждый пункт мы добавили немного контекста: вот тут я трогал ноду, здесь реакт, а еще и полностью техническим вопросом занимался! Танки на саги перетаскивал.

В итоге: Мы увеличили наш текст на 3 пункта, но сделали его с одной стороны соответствующим для HR менеджера, который и keywords увидит, и человека рассмотрит. А с другой стороны он хорош для разработчика — собеседующий будет понимать, что интересно разработчику (ну или чем его заставляли заниматься).


Гайд по заполнению резюме

w41ek17y7l0ttvr02hlfzb6biuw.png

Начнем со сложного: сколько писать? Когда я хочу написать коротенькую статью «буквально на 3 абзаца», выходит вот это. С резюме так же. В какой-то момент мое резюме занимало 4 страницы А4.

Идеально, если получится впихнуть резюме в одну страницу. Что там можно написать?

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

Не оч:

Аноним Анонимов
for-hr@email.ru

Уже лучше:

Мария Игнатова, Frontend-разработчик
Telegram: @definiteTelegramAccount
email: definiteEmail+hr@email.com

Кайф:

Мария Игнатова, Frontend-разработчик
Telegram: @definiteTelegramAccount
email: definiteEmail+hr@email.com
GitHub, LinkedIn links, etc.

Чем славен/tl; dr/эбаут. Часто в «о себе» либо ничего не пишут, либо пишут о стрессоустойчивости. А я бы порекомендовал вынести туда самую мякотку: «Lead developer, водил команду из 6 человек в данжи. Отвечал за направления чат-ботов. Автор статей на Хабре.» Сюда же можно засунуть «пожелания». Например: «хочу работать в игорном бизнесе, энтерпрайз надоел, галеры ван-лав.» В этом случае эбаут можно разделить на две части. Мякотка вверху, пожелания внизу.

Можно лучше:

Frontend engineer

Уже лучше:

Frontend engineer.

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

Другой вариант:

Frontend engineer. Автор технических статей. Спикер на РИТ++, FrontendConf. 
Сосредоточен на решении продуктовых задач.

И третий вариант:

Frontend engineer

Есть опыт разработки продуктов с нуля и развития комплексных проектов. 
Хотелось бы попробовать себя не только во фронтенде, 
но и в форточку выкидывать свои навыки не хочу.

Не заинтересован в игорном бизнесе.

Опыт работы. Об этом выше уже было (сразу перед этой главной), поэтому идем дальше

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

Нормально:

Дает больше контекста:

Автор небольших опенсорс-проектов,  
которые выделили во время работы над рабочими задачами: 
например https://github.com/hhru/babel-plugin-react-displayname
Спикер на конференциях. Например РИТ++ (ссылка на доклад)

Другой вариант:

Прохожу курсы на egghead, coursera, 
Нравится посещать конференции, делаться знаниями
Провожу митапы внутри компании.

Keyskills. Не будем усложнять серчерам задачу. Лучше выделить блок, который можно оформить или просто как поток сознания, или его же, но с временными рамками:

Поток сознания:

TypeScript, React, Redux, Svelte, Babel, Node.js, Koa, Express, JS, CSS, HTML

Поток сознания с временными рамками:

React, Redux, TS — 3+ года
JS, CSS, HTML — 6+ лет
Node.js — 1 год

Я предпочитаю первый вариант. Он компактнее и не засоряется лишней информацией.

Общая разлиновка. Мне нравится такая:

oloe82mmrhg0uy1ic5tl4vixrmw.png

Да, я бессовестно содрал со своего же резюме, но зачем мне рекламировать то, что мне не нравится?

Однако можно не заморачиваться, и воспользоваться готовым сервисом, который поможет составить резюме, а в лучшем случае и работу найдет. Я в разное время заполнял резюме на этих сервисах (ln не в счет, он — соцсетка):


  1. https://www.jobhero.com/ — много разных шаблонов, приятный интерфейс, здесь я и взял вдохновение для своего резюме, владельцы забанили российские IP.
  2. https://hh.ru/ — ну, вы поняли
  3. https://headz.io/ — что-то вроде российского аналога hired/honeypot со своим видением вопроса. Удобно: заполнить резюме можно быстро, легко и без смс. Неудобно: keyskills и «в какой хочешь работать компании» немного занудные
  4. https://www.honeypot.io/ — они крайне назойливо хотят созвониться, так как на основе твоего резюме будут подбирать тебе работу. В остальном — зайчики
  5. https://hired.com/ — Все ок, но у меня не получалось отправить резюме на ревью
  6. https://indeed.com/ — очень порадовал удобным интерфейсом для заполнения резюме

(список составлен в рандом порядке и смысла не несет. Профиль на хабр-карьере не трогал с 2018 года, судить не могу)


Итого

sd1qnwonusndhsoqdw8x86emnpk.png

Далее пойдут сухие советы без кринжового веселья.
Вещи которые нам нужны в резюме:


  1. Контакты.
  2. Что ты из себя представляешь, что нравится в разработке: достижения на проекте, пусть это будут и совсем локальные, возможно то, что нам греет сердце. Обычно включается в опыт работы
  3. Контекст проекта — чем занимался, в идеале, если есть опорные пункты. Опорные пункты вида: «сделал фичу календарь; улучшил перфоманс» и т.д. Такие штуки выполняют 2 задачи: показывают со стороны специалиста и позволяют задать тон будущему собеседованию (но зависит от опыта собеседующего). Тоже включено в опыт работы
  4. keywords — хоть мне это и не нравится, но на те самые «ключевые навыки» обращают внимание. Способов их вставить всего два. Первый — нативно во время рассказа про контекст проекта/достижения. Второй — отдельный пункт «Ключевые навыки». Тем самым мы упрощаем время скрининга нашего резюме и повышаем шансы не быть отложенными по принципу «ну мы тут Angular ищем, а кандидат про это не упомянул»

Вещи которые включаются по желанию:


  1. О себе. Нравится проводить митапы? Участвовать в них? Написал статью на Хабре? Работаешь с пет-проджектами? Коммитишь в опен-сорс? Ничего из перечисленного, но было что-то интересное на работе, что можно перенести из описания проекта в блок о себе? Снова нет? Можно опустить его, отрицательно это не скажется.
  2. Пожелания. Был неприятный опыт с командой? Есть определенные убеждения? Это можно указать в конце резюме.

re7flefd4jgmbbi__n0h7lse4qc.jpeg

И в заключение стоит сказать — относитесь к резюме не как к официальной бумаге, а как к вашему »элеватор питчу».

© Habrahabr.ru