Вы просматриваете свою любимую доску объявлений и находите вакансию инженера-программиста в компании своей мечты, но в требованиях указан 5-летний опыт работы с Ruby, но вы программист на Python. "О нет!" думаешь. "Я не отвечаю!" Но на самом деле вы, вероятно, знаете.

Что такое список вакансий и как он работает?

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

Начнем с того, как создается список вакансий. В начале последнего квартала или планового периода лица, принимающие решения в организации или отделе растущей компании, встречались. Они рассчитали бюджет и решили, сколько еще человек они хотят добавить («увеличение численности») к концу текущего периода планирования. Затем один из инженеров-менеджеров собрался с одним из специалистов по набору персонала / талантам и создал четко сформулированное описание должности, объединив потребности технического менеджера с пустяками о нашей миссии от рекрутера / талантливого специалиста. Кто-то из отдела кадров провел обзор, а затем (надеюсь) менеджером по английскому языку была произведена последняя проверка на техническую корректность.

После завершения один из вышеупомянутых людей нажал кнопку, чтобы опубликовать листинг где-нибудь, или скопировал и вставил его. Системы отслеживания кандидатов (ATS), такие как Greenhouse, Lever и Jobvite, имеют встроенные системы управления списками и часто повторно публикуют вакансии в других системах вакансий, таких как Indeed и Monster, которые повторно публикуют вакансию в другом месте. Может быть, технический менеджер пошел на лишнюю милю и вручную ввел задание на доску объявлений, которую он предпочитает, например, Hacker News« Кто нанимает темы» или крутые интернет-сообщества.

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

Нарушение стандартного списка вакансий

Списки вакансий в области разработки программного обеспечения обычно имеют следующий формат:

  1. Миссия и описание компании
  2. Описание организации, отдела, команды или группы
  3. Требования
  4. Приятно иметь
  5. Преимущества, льготы и другие заметки о корпоративной культуре

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

Миссия, описания и заметки о поездках компании на Гавайи - пустяк - вы должны заботиться об этих вещах только в том случае, если они соответствуют одной из ваших личных целей (например, «Вау! Я люблю путешествовать, и эта туристическая компания будет платить мне за поездку и работу. за границей! ») или учитывать в общей компенсации (например, возмещение расходов на проезд в общественном транспорте).

В описании команды и группы может быть часть нужной вам информации, но реальная суть заключается в «требованиях» и полезных свойствах. Давайте посмотрим на пример случайного списка вакансий, на который я только что нажал в ветке Hacker News, для штатного инженера-программиста в Сан-Франциско:

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

Раздел квалификаций расскажет вам больше. Им нужен волшебный конвейер CI / CD, который строит, тестирует и развертывает их код на регулярной (периодической или специальной) основе. Это, плюс упоминание Ruby on Rails, который больше не является передовым технологическим стеком, подразумевает для меня, что в их команде много старой инфраструктуры Ruby, работающей на AWS, вероятно, развернутой с развертыванием на месте, или, может быть, у них есть какие-то автоматизации вроде Ansible, если им повезет. Они - по крайней мере, технический директор или вице-президент по разработке - верят, что будущее за микросервисами и контейнерами, и хотят двигаться к более быстрой и гибкой организации. Молодцы им!

Однако здесь есть несколько сложных квалификаций. Это позиция полного стека или бэкэнда, поэтому, если вы сами не управляли серверами, вам нужно будет наверстать упущенное, прежде чем они рассмотрят вас на эту роль. Кроме того, сильные основы компьютерной науки - это код для получения степени в области компьютерных наук. Если у вас его нет, вам придется стать экспертом по CS-тяжелому руководству Cracking the Coding Interview и запомнить нотацию Big O, так как они собираются спросить вас об одном или нескольких из них. вопросов. Такую планку они выбрали, и справедливо это или нет, они уже ее решили. Ни то, ни другое не приведет к нарушению условий сделки, если вы можете произвести впечатление на рекрутера и других интервьюеров, но для этого потребуется много усилий и времени.

Допустим, вы соответствуете жестким требованиям. Но подождите, 5+ лет опыта в разработке программного обеспечения? «Опыт работы более 5 лет» просто означает, что команде нужен человек, который знает о технологии достаточно, чтобы иметь хорошее мнение. В идеале им нужен тот, кто «был в окопах» и у которого есть веские причины, почему они выберут одно решение над другим. Но вы можете заменить опыт знаниями - они хотят, чтобы кто-то достаточно разбирался в технологиях, чтобы произвести на них впечатление.

Пример. Допустим, вы - разработчик на Node.js. Если вы знаете полнофункциональный JavaScript, изучение Ruby не должно быть проблемой. Оба являются интерпретируемыми языками программирования, похожими на ручную, с отдаленно похожими менеджерами пакетов и экосистемами.

Вы уже используете Docker? Если нет, прочтите документацию Docker, создайте с его помощью забавный игрушечный проект и используйте Docker как для разработки, так и для развертывания. Они упоминают Postgres, так что, возможно, вы создадите docker-compose, чтобы вы могли использовать их вместе. Я бы даже как-то добавил туда третью службу, так как вы, вероятно, столкнетесь с проблемами при организации трех или более служб, которых не удалось бы получить только с двумя.

Они также упоминают AWS Elastic Container Service, поэтому вам следует создать там промежуточную и производственную среду для своего проекта и выполнить некоторые развертывания. Научитесь использовать инструменты и выполните некоторые развертывания. У AWS есть уровень бесплатного пользования, который вы, безусловно, не превысите. Посмотрите, сможете ли вы получить непрерывное развертывание на AWS или, может быть, с Travis CI или CircleCI, у обоих из которых есть бесплатные планы.

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

Все это должно занять один или несколько месяцев по ночам и выходным, и к концу вы станете экспертом, хотя и не будете «проверены на практике». Вы можете включить это в свое резюме и Когда рекрутер спросит вас о вашем опыте, вы можете сказать: «Я не использовал эти вещи в профессиональном плане, но я много поработал на стороне, и у меня много твердого мнения». Они передадут это инженеру, которого подписали, чтобы взять у вас интервью по телефону, и тот будет заинтригован.

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

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

Ну, наверное. Возможно, вице-президент по разработке решил, что им нужно использовать Docker, и никто в команде об этом не знает, поэтому им нужен опытный шерп Docker, который подойдет им и приведет их к свету. В этом случае вам может совсем не повезти, но не всегда.

Удачи!

дальнейшее чтение