Представляю вашему вниманию расшифровку доклада Питера Серджента о написании "нанимающего" резюме для разработчика. Исходный доклад ориентирован на Perl-разработчиков. Эта статья адаптирована для разработчиков на Java. Доклад Питера агрегирует его взгляд и опыт в составление резюме. Сам Питер на момент доклада имел 15 лет опыта разработки на Perl, опыт руководства разработчиками, а так же руководит агентством по поиску Perl-разработчиков в Великобритании. Ваше резюме будут читать 3 типа людей: HR или рекрутер Первый человек, который видит ваше резюме, и скорее всего не технарь. У него есть только один вопрос: Надо ли показать резюме этого человека техническому специалисту? Как он это определяет? Для этого ему надо понять, есть ли у этого кандидата нужные навыки. Но HR не является программистом, поэтому ваш разговор может закончиться так: Простите, но вы нам не подходите. Нам нужен человек с опытом JavaScript, а я вижу что вы программировали только на Angular JS и jQuery. Так же у HR или рекрутера есть некоторые туманные представления о вакансии, которые он получил в результате разговора с нанимающим менеджером.  Что может заставить HR или рекрутера отправить ваше резюме в корзину? В вашем резюме необъяснимые интервалы без работы У вас много мест работы меньше 2-х лет, которые не были контрактными Вы крайне негативно отзываетесь о предыдущих работодателях Ваш профиль в LinkedIn не соответствует резюме Поиск вашего имени в Google выдает ваш блог, где вы призываете свергнуть правительство Внутренний HR будет пытаться понять, надолго ли вы задержитесь в компании. Сотрудник кадрового агентства хочет знать, не будет ли он выглядеть идиотом, когда вы расскажете как вас со скандалом уволили с последних 3-х мест работы. Ремарка касательно британских компаний: Если вы ищите работу в Великобритании, указывайте ваше текущее место жительства и тип вашей визы, чтобы компания понимала, есть ли у вас разрешение на работу по данной вакансии. Большинство компаний не готовы нанимать сотрудников из других стран. Нанимающий менеджер Нанимающим менеджером чаще всего выступает старший разработчик или руководитель. Возможно ваш будущий руководитель. Как правило, это очень занятой человек, и у него особо нет времени читать кучу резюме. Какие вопросы он задает себе? Действительно ли у вас есть опыт разработки на Java или вы писали только программы уровня "Hello World"?  Есть ли у вас другие необходимые навыки? Нанимающий менеджер знает, какие навыки из указанных в вакансии действительно нужны, а какие были добавлены просто так. Он знает реальные требования к кандидату. А еще он верит, что он мог бы просто написать Senior Java Developer, и нужный человек появится из воздуха, но HR заставил его сделать описание вакансии. Нанимающий менеджер человек, который может положительно оценить ваш вклад в open source. Наличие коммитов на GitHub, как правило, говорит о вашем искреннем интересе к программированию. Собеседующие разработчики Собеседующие разработчики будут вашими будущим коллегами. Или просто случайными людьми, которых нанимающий менеджер оторвал от работы. Как правило, собеседующие разработчики не имеют ни малейшего представления о том, как собеседовать людей, поэтому в процессе интервью они борются со скукой и формируют мнение о том, было бы им приятно работать с вами или нет. Тем не менее, это те люди, на которых ваш приход в компанию повлияет больше всего. Все вопросы собеседующих разработчиков можно разделить на 2 типа. Тип 1: умеете ли вы программировать на Java? Это может принять форму случайных вопросов по темам, которые сами собеседующие недавно узнали. Или они покажут вам несколько функций, которые они вытащили из проекта, и спросят что делают эти функции. Еще собеседующие разработчики могут внезапно спросить, например, "Что такое монада?". Тип 2: Можно ли с вами работать? К этому типу относятся вопросы, которые помогут понять насколько вы дружелюбны, выбивают ли вас из колеи технические вопросы и другие. Сюда же можно отнести общее впечатление о вас, как о человеке. Как вы одеты? Костюм или казуальный стиль? Нет ли от вас странного запаха?  Если вы не можете прилично одеться к интервью, то нанимающий менеджер знает: вы будете той еще занозой в заднице, и вами будет сложно управлять. Собеседования кандидатов не основная работа для разработчиков, поэтому вам надо помочь им провести собеседование. Они будут отчаянно искать интересные вещи, о которых можно поговорить, чтобы избежать типичных разговоров о погоде, поэтому ваше резюме должно быть набито упоминаниями об интересных технологиях. При этом вы должны быть готовы рассказать о них. Предварительный вывод: Ваше резюме должно помочь каждому из привратников ответить на их вопросы. Никто не любит читать резюме, поэтому сделайте так, чтобы каждому из этих людей было легко ответить на них. При этом, избегайте вещей, которые могут их отпугнуть. Не делайте в начале резюме описание вашего характера и карьерных целей. Почему? Потому что всем пофиг. Рекрутеры и HR думают, что программисты странные и это не поможет. Нанимающие менеджеры накопили достаточно опыта, чтобы быть циничными, и знают, что все это куча брехни. А собеседующие разработчики просто подумают, что вы идиот. Но есть и хорошие новости. Эту секцию можно легко заполнить. Причем так, что каждый из "привратников" получит ответы на свои вопросы. Для рекрутера или HR: повторите название вакансии и укажите несколько навыков, чтобы было понятно: вы именно тот, кого они ищут. Примеры: Я Java Senior Developer с 10 годами опыта, включая работу со Spring, Hibernate и PostgreSQL. Я JavaScript разработчик с 5 годами опыта, включая работу с React и Redux. Для нанимающего менеджера нужно не перечислить технологии и навыки, а продемонстрировать понимание. Например: Я сторонник Test Driven Development, использую JUnit и Mockito, а так же пишу тесты с использованием test-containers для поднятия docker-образов с тестовыми базами. Это гораздо лучше, чем: Я использую TDD, JUnit, Mockito, test-containers. Можете добавить в эту секцию то что вам нравится и не нравится в технологиях, которые вы используете. Это выглядит гораздо убедительнее, чем список ключевых слов. Для собеседующих программистов надо добавить что-нибудь интересное. Технологии, о которых можно поговорить. Например: Мой личный проект это беговая дорожка для кота с Arduino для управления и сбора статистики. Так же интересные варианты: В настоящий момент я работаю над программой распознавания кроссвордов и их автоматического решения. Я обучаю коллег React. Чем больше вы найдете интересных тем, и чем сильнее вы ими зацепите, тем меньше времени у собеседующих разработчиков останется на головоломные задачи, которые они нашли на первом попавшемся сайте. Если вы сделали эту часть правильно, то это все что вам надо, чтобы попасть на собеседование. На самом собеседовании найдите интересную тему для разговора и как можно больше обсуждайте ее. Никто не любит читать резюме, поэтому перечислите наиболее важные моменты в самом начале. Говорите о важных вещах сразу и в полном объеме. Плохо: - Java - 5 лет - Junit - 3 года - Mockito - 3 года  Хорошо: Тестирование:  Я обладаю большим опытом тестирования Java приложений. Чаще всего пишу тесты по методологии TDD используя JUnit в качестве тестового фреймворка с применением Mockito для создания мок-объектов Расскажите о своем опыте работы с технологиями, чтобы показать, что вы действительно их использовали. Таким образом вы дадите нанимающему менеджеру ответы на его вопросы. А собеседующие разработчики получат тему для обсуждения. Покажите ваши боевые шрамы. Расскажите о тех моментах технологий, которые немного спорные или интересные. Хорошо подготовьте эту тему, чтобы быть в ней как рыба в воде. Можете выделить ключевые технологии жирным текстом. Хотя это и выглядит странно, это упростит работу HR или рекрутера. Аналогичный подход можно применить не только к секции тестирования, но и к другим разделам вашего резюме. Не забудьте продемонстрировать ваш опыт, включив в резюме мнение. Пример: Администрирование:   Я использую Linux на работе и домашнем компьютере с 2007 года. Я использовал RedHat, Debian и Manjaro, но предпочитаю Ubuntu, поскольку мне нравятся их политика LTS релизов. Также я использую Ansible для оркестрации моего сайта для клуба любителей котов. Нет ничего плохого в том, чтобы добавить немного личного, но не переборщите с острым мнением. Указать в резюме ссылку на свой pet-project на github - самый простой способ показать, что вам небезразлична разработка. В зависимости от вашего вклада в опенсор его надо представлять немного по-разному. Значительный вклад Если ваш вклад в open source большой, ему можно уделить почти такую же чаcть резюме, как и описанию вашего опыта. Для HR или рекрутера это как старинные египетские иероглифы. Они не понимают что они означают, но знают, что это очень ценно. Нанимающий менеджер будет знать о вашей страсти. А у собеседующих разработчиков появится много тем для разговоров. Выберите один или несколько проектов для детального описания. Перечислите ваш вклад в них и укажите ссылки на репозитории. Если у вас есть технический блог, который релевантен вакансии, то дайте ссылку и на него. Если вы выступали на конференциях или митапах, тоже упомяните об этом. Не важно, если они были 10-минутными. Об этом говорить необязательно. Если ваш вклад в сообщество большой - уделите этому не меньше внимания, чем описанию опыта с технологиями. Любитель Не смотря на то, что в вашем гитхабе всего пара проектов с звездами от друзей, все равно дайте на него ссылку. Даже небольшой вклад хорош. Перечислите проекты в которые вы контрибьютили, даже если это всего лишь один успешный pull-request. Выступление на локальном митапе или хакатоне в компании? Об этом тоже стоит упомянуть. Если вы ведете технический блог и он хорош - дайте на него ссылку. Если это просто сборник заметок о проблемах, с которыми вы стокнулись, можете просто упомянуть, что он у вас есть. Совсем немного Вы можете включить в свое резюме все проекты, которыми вы занимались вне работы. Пример: Меня интересуют embeded-системы. Недавно я собрал систему автоматического полива на основе Arduino. Можете указать интересные книги, которые вы прочитали. Пример: Недавно я закончил чтение "7 языков программирования за 7 недель" и был вдохновлен легковесным модулем потоков в Erlang. В результате я реализовал А, Б и В в рабочем проекте. В общем, упоминайте все, что показывает вашу заинтересованность в программировании вне работы. Напишите о том, чему вы научились и почему это имеет коммерческую ценность. Но, кроме этого, я рекомендую выбрать какой-нибудь open source проект и попробовать в нем разобраться. Не забывайте. Если у вас пустой профиль на github, то не указывайте ссылку на ваш профиль. В этом нет смысла, но почему-то много людей так делает. Не стоит перечислять все места работы. Никого не будет интересовать ваша подработка официантом в 2005 году. Оставьте 3-4 недавних и релевантных позиций. Для остального сойдет название и даты. Сгруппируйте опыт работы не связанный с программированием в одно предложение: 2005 - 2012 - несколько позиций не связанных с программированием. Ваше резюме должно быть не больше 3-х страниц, поэтому постарайтесь уместить опыт работы на 2-х. Помните: никто не любит читать резюме. Для каждой позиции помните о трех привратниках: HR или рекрутер - хочет видеть ключевые слова Нанимающий менеджер - хочет знать, действительно ли вы работали со Spring, или занимались перекладыванием данных из базы данных в JSON. Собеседующие разработчики - хотят поговорить на интересные темы И если вы правильно опишите ваш опыт работы, каждый из них получит то, что хочет. Вам нужно: Перечислить ключевые слова Дать краткое описание того, что вы делали Упомянуть интересные задачи, над которыми вы работали Интервалы без работы HR или рекрутер будет искать плохие признаки: Профиль в LinkedIn и резюме не совпадают по описанию или датам. Необъяснимые интервалы без работы Много коротких периодов работы Нанимающий менеджер тоже ищет эти признаки, но у вас будет время, чтобы поговорить об их причинах и объяснить их. Убедитесь, что вы хорошо подготовились к такому разговору. Если вы путешествовали или брали творческий отпуск на значительный период, укажите это. Укажите где вы были и кто может это подтвердить. И не реагируйте неадекватно, если вас об этом попросят. Если у вас не было работы, укажите, что в этот период вы искали работу. Но обязательно поговорите о полезных навыках, которые вы приобрели за это время. Все, что вы успели сделать в области компьютеров считается. Можно сделать мухлеж с датами, например "ноябрь 2012 - январь 2013" можно записать как "2012 - 2013". На интервью вы должны быть откровенны, но у вас будет возможность объяснить, почему вы ушли через такой короткий промежуток времени. Некоторые HR и рекрутеры обращают внимание на образование, другие нет. Если у вас нет чего-то действительно крутого, просто пропустите эту часть резюме. Пишите про ваше образование, только если вы закончили МГУ, имеете степень магистра по прикладной математике и компьютерным наукам, или были победителем олимпиад по программированию. Если вы имеете право работать в UK, напишите это большими буквами сверху резюме. Если вам нужна виза для работы - напишите это большими буквами сверху резюме. Если вы не живете в UK, но хотели бы переехать, напишите сверху резюме "Looking to relocate to the UK" большими буквами. Если HR или рекрутер решат, что вам нужна виза или помощь с релокацией, то ваше резюме отправится в конец очереди. Поэтому дайте им всю информацию как можно раньше. Не тратьте их и свое время, и не давайте им возможность сделать неверные предположения. Прочитайте ваше резюме. Запишите 20 вопросов, которые у вас могут спросить на основе вашего резюме. Напишите идеальный ответ на каждый из этих вопросов и прочитайте его несколько раз. Потренируйтесь отвечать на другие вопросы, которые вам могут задать. Такая подготовка отлично работает с телефонным интервью, потому что вы можете просто читать ваши ответы с листа. Пишите ваше резюме для всех трех привратников: HR, нанимающий менеджер, собеседующие разработчики. Убедитесь, что в вашем резюме есть интересные моменты, о которых можно поговорить. Сохраняйте ваше резюме кратким.