Проработав какое-то время в IT, начинаешь замечать, какие приёмы люди используют, когда хотят подсластить пилюлю. Ну, например фраза: «Принимайте ответственность за каждый этап жизненного цикла продукта», по сути, означает: «Процессы у нас не отлажены, всё горит, на что тебя бросим, над тем и будешь работать».

Приведённый пример – моя личная боль, потому что несколько лет назад, когда занимался наймом сотрудников, я сам это написал в полной уверенности, что здорово загнул. К слову сказать, именно после этого случая я вдруг прозрел относительно того, что у нас вечно всё горит и по этой причине мы и ищем программистов-универсалов «на все работы».

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

Вот список того, из чего складывается хороший текст вакансии:

  • Ясное, ёмкое изложение сути деятельности компании без избытка пустых громких слов
  • Ясное, ёмкое изложение тех задач, которыми вам предстоит заниматься на соответствующей должности, без избытка пустых громких слов
  • Ясный, разумный список требований, которые ставит перед вами работа/должность
  • Ясный, разумный список обязанностей, которые предполагает должность
  • Отсутствие упоминаний качеств или умений, которые не имеют прямого отношения к работе (чувство юмора, упорство, настойчивость…)

Давайте взглянем на несколько примеров вакансий, которые не подходят под это описание.

Плохой пример №1: требуется человек-оркестр







Перевод
О компании: Компания из списка NASDAQ, поставляющая цифровые решения для Правительства.

Основные обязанности:

  • Делать вклад и принимать ответственность за все аспекты жизненного цикла продукта: дизайн, планирование, разработка, DevOps, тестирование как сервисов, так и веб-компонентов;
  • Стимулировать диалог с партнёрами по бизнесу, помогая определить потребности и найти решения;
  • Сотрудничать и выстраивать прочные связи с технологической группой, а также сторонними поставщиками и оффшор-партнёрами, способствуя созданию дополнительной ценности для клиентов;
  • Уверенно поддерживать существующие программные решения и веб-сервисы, которые написаны на Javascript (Node JS & Angular JS) и размещены на AWS;
  • Обладать способностью и стремлением глубоко погружаться в наработанную кодовую базу и не упускать возможностей, которые предлагает дизайн, функциональность и потребности рефакторинга в коде;
  • Делиться прошлым опытом с другими членами команды, становиться для них наставником с целью улучшить порядок разработки и внедрения.

Необходимые навыки:

  • Хороший практический опыт веб-разработки на Node JS;
  • Практический опыт в параллельном программировании, асинхронном программировании, использовании функций обратного вызова;
  • Разработка микросервисов, архитектуры & REST API;
  • Архитектура системы очередей сообщений – SQS или RabbitMQ;
  • Сервисы AWS (SQS, Lambda, EC2, ECS, API Gateway, Beanstalk);
  • Централизованное логирование и анализ логов при помощи AWS Cloudwatch или Elasticsearch;
  • Опыт работы с базами данных NoSQL (MongoDB, DynamoDB);
  • Опыт работы с реляционными базами данных (MySQL);
  • Безопасность (OAuth 2.0), технология единого входа;
  • Разработка через тестирование.

Желательные навыки:

  • Хорошее понимание одностраничных приложений;
  • GraphQL;
  • Запросы SQL & Mongo;
  • Непрерывная интеграция и непрерывная доставка;
  • Разработка гибридных мобильных приложений на Ionic Framework/React Native;
  • Документация API (Swagger).

Преимущества:

  • Конкурентная заработная плата;
  • Бесплатное медицинское страхование, включая стоматологию;
  • План покупки акций;
  • Безвозвратные вложения в пенсионный план 401к;
  • Страхование по инвалидности;
  • Страхование жизни;
  • Оздоровительная программа от компании;
  • Раскованная, весёлая атмосфера в офисе;
  • Отпуск и оплачиваемые праздничные дни;
  • Возмещение расходов на обучение.


Ну, пойдём по порядку.

Делать вклад и принимать ответственность за все аспекты жизненного цикла продукта: дизайн, планирование, разработка, DevOps, тестирование как сервисов, так и веб-компонентов

Бррр. То есть я должен выполнять функции архитектора ПО, разработчика, инженера DevOps и тестировщика одновременно? Любой, кто реально работал в IT-компании, знает, что жизненный цикл продукта на всей его протяженности – это не шутки. В стартапах нередко случается так, что один программист сидит на нескольких стульях и тащит на себе весь процесс, но компания из списка NASDAQ – это однозначно не стартап. Инженеры DevOps отпочковались в отдельную профессию не просто так.

Дополнение: последняя фраза вызвала у людей сильный отклик, поэтому я решил прояснить свою позицию.

Я понимаю: DevOps – это культурное движение, направленное на то, чтобы трансформировать процессы и убрать барьеры между разработкой и эксплуатацией. Чтобы как следует выполнять свою работу, инженеры должны обладать хорошим пониманием практически всех этапов цикла. Но это не значит, что можно всё взвалить на одного человека или одну команду.

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

Инженер DevOps – это общее название для ряда специализированных работ, его можно спокойно заменить более конкретными наименованиями: специалист по надёжности сайтов, опыту разработки или эксплуатации платформ, системный инженер… Как их ни назови, суть в том, что над определёнными областями экосистемы продукта всегда работают разные люди – это позволяет сократить время выхода на рынок и даёт больше гарантий. При таком раскладе разработчики, создающие продукт, не распыляются попусту (например, на настройку сервисов AWS), когда могли бы работать над функциональностью.

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

Стойте, то есть, ко всему прочему, вы хотите из меня сделать владельца продукта, менеджера по работе с партнёрами и специалиста по развитию бизнеса?

Обладать способностью и стремлением глубоко погружаться в наработанную кодовую базу и не упускать возможностей, которые предлагает дизайн, функциональность и потребности рефакторинга в коде

Покажите мне этого человека, который всей душой стремится переписывать чужой паршивый код.

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

«Да, до кучи будешь ещё и тимлидом».

Требования и желательные навыки соответствуют смехотворно огромному набору обязанностей. Я сильно сомневаюсь, что какой-нибудь разработчик сможет сосредоточиться на разработке на JavaScript, если параллельно ему нужно возиться ещё и с разнообразными сервисами AWS, очередями сообщений, механизмами логирования и анализом логов.

Ближе к концу начинается откровенное перечисление функций DevOps. Для этой работы нужна отдельная ставка – ну, разве только попадётся гений, который разбирается примерно во всём на свете и всегда укладывается ровно в час.

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

Плохой пример №2: нам нужны ОТВАЖНЫЕ программисты на ОТВАЖНУЮ работу




Перевод
Инженерия и технологии, разработчик ПО, начальный уровень

Гражданство США обязательно. Должность предполагает работу в учреждении, куда требуется специальный допуск.

Основные требования: Диплом бакалавра по специальности «Программная инженерия» или смежным в аккредитованном университете

ОСНОВНЫЕ ТРЕБОВАНИЯ
job.Qualifications

Компания [вырезано] придерживается политики равных возможностей /
позитивной дискриминации в вопросах трудоустройства. Кандидатуры квалифицированных работников будут рассматриваться без учёта расы, цвета кожи, религии, сексуальной ориентации, гендерной идентификации, страны происхождения, возраста, статуса ветерана или инвалидности.

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

Как ведущая инновационная технологическая компания, [вырезано] располагает большой командой, которая работает с партнёрами из разных концов света, стараясь приложить свою доказанную производительность к сложнейшим задачам, которые предлагают нам клиенты. Сотрудники [вырезано] работают во многих штатах США и странах мира, а филиалы расположены в разнообразных государствах и областях.

Необходимый опыт: минимум четыре года обучения в университете


Основные требования: job.Qualifications

Хе-хе, у кого-то автоматический скрипт лагнул.

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

Смахивает на ролик из телемагазина. Прямо вижу эти кадры: спецназовцы отдают честь, маршируют, проходят учения под проливным дождём, штурмуют здание… Стоп, это же у нас вроде описание работы на должности программиста? Упс. Для рекламного ролика – в самый раз, для вакансии – не пойми что. Во всём тексте не найдёшь ни единой детали. Чем вы будете заниматься – непонятно. Какие для этого нужны базовые навыки – кто бы знал.

Вы когда-нибудь слышали о вакансиях-«приманках»? Иногда такое случается в сфере IT: вы приходите собеседоваться на одну должность, а после устройства фактически попадаете на совсем другую. С этой вакансией подобное провернуть очень легко, потому что вы, по сути, не подписываетесь ни на что конкретное. Остерегайтесь текстов такого рода.

Складывается впечатление, что человек, который это писал, искренне верит в миссию компании (ну или что у неё имеется отдел коммерческого маркетинга). Однако с таким подходом он может рассчитывать только на людей, которые разделяют его чувства. Либо готовы ухватиться за любую работу.

Примечание: справедливости ради нужно сказать, что компания, которая разместила вакансию, хорошо известна и сделала себе имя в индустрии. Но даже если этим можно объяснить отсутствие описания её деятельности, требования к кандидату всё равно нужно серьёзно доводить до ума.

Плохой пример №3: ищем безупречных представителей человечества




Перевод
Мы ищем разработчика начального уровня для выполнения различных задач, которые возникают в компании по производству ПО и разработке интернет-сайтов. Успешные кандидаты должны обладать развитым аналитическим мышлением, жаждой знаний, готовностью принять любой вызов, желанием пополнять багаж знаний и отличным чувством юмора. В компании по производству ПО и интернет-сайтов за пять лет можно научиться практически всему (будем рады тем, кто мечтает в будущем основать свой стартап). На работе придётся выкладываться по полной, но будет весело! Предпринимательский дух – обязательное требование! Форма одежды – свободная.

Конкретные задачи могут включать:

  • Разработку ПО;
  • Администрирование систем;
  • Составление документации;
  • Поддержку пользователей;
  • Контроль качества;
  • Предпродажную поддержку;
  • И прочее, по мере поступления…

Вот что нужно, чтобы получить предложение о работе:

  • Диплом бакалавра или магистра по информатике, электротехнике и подобному;
  • От 0 до 3 лет опыта;
  • Предпринимательский дух;
  • Развитое аналитическое мышление;
  • Отличные навыки общения;
  • Глубокая порядочность и сила духа;
  • Энергичность и высокий уровень мотивации;
  • Желание вкладывать много сил в развитие небольшой компании;
  • Стремление к совершенству, готовность сделать «всё, что потребуется» ради выполнения работы;
  • Желание досконально изучить реалии компании по производству ПО/разработке сайтов;
  • Опыт работы с HTML;
  • Опыт работы с C/C++, C# или Java;
  • Опыт работы с Javascript;
  • Понимание реляционных баз данных;
  • Понимание модели передачи данных TCP/IP;
  • Идеалистичный настрой на улучшение системы образования;
  • Оптимистичная вера в свою способность порождать перемены;
  • Критическое отношение к оптимизму и идеализму, понимание, что они могут обернуться невежеством или самонадеянностью.


Эта вакансия меня добила – пишу, и на смех пробивает.

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

Отличным чувством юмора? Это ещё зачем? Настольная книга собеседующихся называется «Карьера программиста», а не «Манера приколиста». Хорошее чувство юмора – это черта, которую мы всегда ценим в окружающих, будь то друзья, родня, коллеги или те, кого мы приглашаем на свидание. Но в вакансии запрашивать такие вещи не имеет смысла.

Конкретные задачи могут включать: разработку ПО, администрирование систем, составление документации, поддержку пользователей, контроль качества, предпродажную поддержку

А теперь объясните мне, пожалуйста, в каком месте это работа тянет на начальный уровень? Вы ищете человека, который будет вам и разработчиком, и сисадмином, и командой по написанию технической документации, и командой техподдержки, и командой тестировщиков, и инженером по продажам. Я работаю в индустрии много лет, и то не уверен, что даже половину этих должностей потянул бы.

И прочее, по мере поступления…

… это например? У нас тут вроде бы вакансия на должность разработчика, а не мальчика на побегушках в спорт-бар. Неопределённые, двусмысленные строки такого рода – это плохой знак. Люди всегда должны знать, на какие именно типы работ соглашаются

Предпринимательский дух

Так, это выражение мне попадалось уже не раз и… что оно вообще означает? Спросишь одного – он скажет, это когда разрушают нормы и экспериментируют. Другой станет называть такие качества, как упорство и решимость. А может, это про то, что надо быть изобретательным и мыслить гибко?

Проблема с такими характеристиками в том, что они туманны, неоднозначны и бессмысленны. Они не передают никакой информации, потому что под ними может подразумеваться всё что угодно. Каждый первый тешит себя мыслью, что у него «предпринимательский» склад – достаточно посмотреть, сколько народу определяет себя как «Предприниматель» на LinkedIn.

Что это означает для вас, человека, который хочет устроиться в компанию? То, что у работодателя есть своё собственное, вполне определённое представление о том, кого он хочет видеть на этой должности, но дать ясное описание он не в состоянии.

Глубокая порядочность и сила духа;
Энергичность и высокий уровень мотивации;
Желание вкладывать много сил в развитие небольшой компании;
Стремление к совершенству, готовность сделать «всё, что потребуется» ради выполнения работы;
Желание досконально изучить реалии компании по производству ПО/разработке сайтов;
Идеалистичный настрой на улучшение системы образования;
Оптимистичная вера в свою способность порождать перемены;
Критическое отношение к оптимизму и идеализму, понимание, что они могут обернуться невежеством или самонадеянностью

Господи Иисусе. Ещё раз: все эти качества нужно оценивать у кандидата на собеседовании, а не расписывать в вакансии. Дураку понятно, что все хотят нанимать честных, деятельных, увлечённых работников. Есть хоть кто-нибудь, кто это всё прочитает и подумает: «А, ну я-то сволочь и раздолбай, не буду отправлять им резюме?». Может, лучше что-нибудь о работе расскажете?

«Всё, что потребуется», да ещё в кавычках, внушает опасения. Насколько далеко простираются эти требования? Отдавать первенца не придётся? Или резать жертвенную козу? Ну, и последние два пункта тоже хороши. Нужно быть оптимистом, но не так чтобы слишком оптимистом, давайте нам без этого тут.

Скажу вам так: определённому типу людей подобное описание покажется занятным и привлекательным. Но для меня, в свете нажитого опыта, весь текст – один звоночек за другим.

Хорошие описания вакансий


Чтобы немного проветрить помещение после всей критики и негатива, давайте теперь изучим несколько текстов, написанных очень и очень толково.

Хороший пример №1: всё при нём




Перевод
[вырезано] – технологическая компания, работающая в сфере здравоохранения. Мы обрабатываем генетическую информацию, чтобы дать врачам и пациентам возможность принимать взвешенные решения о лечении. Наши разработчики работают над самыми разными проектами: от инноваций в системах, которые используют медицинские учреждения, до покорения хаоса, царящего в биологии. Мы постоянно совершенствуем инструменты и технологии, чтобы дать максимально точную информацию о состоянии здоровья пациента, которой можно руководствоваться при определении плана действий. Если вы хотите, чтобы ваши знания и умения работали на благо миллионов людей – присоединяйтесь.

О команде: [вырезано] нуждается в опытных программистах разного происхождения, чтобы успешно выполнять свою миссию – предоставлять генетическую информацию о миллиардах людей. Наша команда многофункциональна: она включает как экспертов из научной сферы, так и любознательных, целеустремленных программистов. Мы создаём системы, которые берут огромные массивы геномных данных, смешивают со сведениями из научной литературы со всего света, добавляют результаты, которые тщательно выверялись годами, и аккуратно всё упаковывают для использования нашими исследователями. Данных много. По мере того как они накапливаются, системы должны улучшаться и ускоряться. И здесь нам нужна ваша помощь.

Чем вы будете заниматься:

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

Что от вас требуется:

  • Опыт работы в индустрии над проектами с full-stack архитектурой и распределёнными системами;
  • Несколько лет работы с бэкенд и фронтенд-фреймворками, такими как: Python/Django, Javascript/React, Scala/Play или другими общепринятыми стандартами;
  • Практический опыт работы с базами данных (MySQL, PostgreSQL, NoSQL и другими). Знание тюнинга и оптимизации запросов будет плюсом;
  • Отличные навыки общения. Опыт работы в распределённых командах будет плюсом;
  • Желание участвовать в нашей миссии и постоянно учиться новому.

[вырезано] высоко ценит диверсификацию и предлагает равные возможности всем сотрудникам и кандидатам без учёта расы, цвета кожи, религии, страны происхождения, пола, сексуальной ориентации, возраста, семейного положения, наличия статуса ветерана или инвалидности. Мы рассматриваем возможность устройства квалифицированных работников с судимостью в соответствии с [вырезано].


Красота. Описание компании и команды, с одной стороны, интригует, с другой – даёт подробности в достаточном объёме.

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

Из одного этого предложения уже можно сделать целый ряд выводов о том, в каких сферах, вероятно, подвизается компания:

  • Big data
  • Обработка и аналитика данных
  • Разработка ПО (само собой)
  • Научные исследования или НИОКР
  • Возможно, машинное обучение, чтобы извлекать из данных новые познания

Списки, которые приводятся в параграфах «Чем вы будете заниматься» и «Что вы привнесёте в команду» конкретны, прозрачны и резонны. Десять из десяти, сам бы предложил свою кандидатуру, если бы сфера больше мне подходила.

Хороший пример №2: коротко и по делу




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

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

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

Вам предстоит:

  • Взять на себя ответственность за тестирование, контроль качества и релиз;
  • Создавать и поддерживать автоматизированные фреймворки для API, бэкенда и аппаратных интерфейсов;
  • Прописывать и дорабатывать требования тестирований;
  • Обеспечивать непрерывную интеграцию;
  • Принимать участие в планировании и реализации новых функций и приложений;
  • Плотно сотрудничать с разработчиками ПО и аппаратных решений, чтобы код и API функционировали должным образом.

В основе нашего стэка – гибкие, масштабируемые концепты, как-то:

  • NodeJs, Go, Kubernetes, Docker;
  • Linux (Ubuntu), работа с командной строкой, Python.


Обязанности понятны. Необходимые умения не расписаны, но их без труда можно додумать, исходя из приведённой информации о стэке и задачах:

  • Микросервисы
  • Node.js, Python и Go
  • Kubernetes + Docker, Linux
  • Акцент на ритейле и коммерческом строительстве

И никто не разливается соловьём о том, как им нужны исключительно совершенные люди и как они ищут тех, кто способен перевернуть весь мир с ног на голову!!!

Хороший пример №3: просто, но добротно




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

В нашем филиале увидел свет продукт второго поколения [вырезано]; здесь же базируются команды технической эксплуатации и управления жизненным циклом клиента.

Что вам предстоит делать:

  • Поддерживать и продвигать ценности нашей корпоративной культуры;
  • Работать в связке с другими сотрудниками, в том числе представителями продуктовых и API-команд, чтобы вносить свои предложения, дорабатывать и улучшать существующий продукт;
  • Организовывать свою работу при помощи Jira, Github и внутренних систем сборки и деплоя;
  • Помогать в тестировании кода и выводе наших творений в продакшн.

Наш стэк включает в себя: Golang, AWS (DynamoDB, Lambda, EC2, Kinesis, SQS, S3), ReactJS, Snowflake, Terraform, Redis, SolarCloud, Kafka, Riac, Docker/Kubernetes и Linux

О вас:

  • Стандартно: опыт в разработке облачных приложений 2-4 года;
  • Диплом бакалавра по информатике;
  • Два и больше года работы с Go и Python;
  • Два и больше года работы с HTML, CSS и Javascript;
  • Умение выстраивать масштабные распределённые системы;
  • Опыт создания веб-приложений с фокусом на интерфейсе и применением современных фреймворков Javascript;
  • Позитивное отношение к жизни, способность учиться и быстро вливаться в небольшую команду;
  • Опыт работы с AWS (желательно);
  • Понимание микросервисной архитектуры и облачных приложений.


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

Не соглашайтесь на плохую работу


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