Найм разработчиков, которые не отстой

Недавно меня спросили о процессе найма технических специалистов, который мы используем в Kosah, стартапе, в котором я работаю. Объяснив это, Алисия Лин попросила у меня копию моего процесса. Я подумал, что если она заинтересована, то это, вероятно, будет полезно большему количеству людей.

Прежде чем мы углубимся в процесс, несколько замечаний о подходе и его причинах. Во-первых, Kosah — полностью распределенная компания, и мы нанимаем разработчиков на длительный срок, так что YMMV. Будучи распределенными, мы действительно нуждались в каком-то способе оценки людей без обычных личных взаимодействий, хотя немало нанятых сотрудников сбились с рельсов после того, что выглядело как личное собеседование, сделанное на небесах. Поэтому мы не хотим просто заменять личное интервью эквивалентом онлайн-видео.

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

И наконец, этот процесс представляет собой постоянную незавершенную работу. Я основывался на большей части этого поста Дейва Мартина «Процесс удаленного найма в Automattic», и многие из этих пунктов взяты из его поста. Я еще больше изменил и добавил к нему, основываясь на том, как идут вопросы и разговоры, и новых вещах, которые я узнаю о человеческой природе.

Процесс

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

Проверка заявки на первый проход

Подгонка не удалась

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

Лучший, Брок Фриман

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

Подходит: отправьте им электронное письмо/сообщение

Привет Джон! Пожалуйста, добавьте меня в Skype (myusername). Я хотел бы поговорить с вами о позиции.

Лучший, Брок

Интервью в текстовом чате

Сразу же после того, как я принимаю приглашение в Skype, я начинаю разговор, говоря что-то вроде:

Привет, Джон!

Вместо того, чтобы назначать определенное время для чата, давайте просто продолжим разговор в чате. Я буду задавать вопросы, а вы сможете отвечать, когда будет время. Может быть сегодня, завтра, когда вы будете доступны. Звучит неплохо?

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

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

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

Какая самая трудная вещь, которую вы когда-либо совершали? Чем вы больше всего гордитесь?

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

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

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

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

Реакция на критику:

Как вы реагируете на то, что кто-то находит и указывает на ошибку в вашем коде? Расскажите мне, как бы вы отреагировали и ответили.

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

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

OR

В каком возрасте вы начали программировать? Какой был первый проект по программированию, который вы завершили (вероятно, просто для удовольствия)?

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

Можете ли вы объяснить, насколько вам удобно следующее, по шкале от 1 до 10 (10 — эксперт): JIRA, PHP, Laravel, Angular.js, node.js, JS, HTML, CSS, Bootstrap, Docker, CoreOS. , DevOps?

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

Какой новейший язык программирования или фреймворк вы изучаете или используете? Почему это вызвало у вас интерес?

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

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

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

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

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

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

Видеоинтервью

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

Я обращаю внимание на то, насколько хорошо соискатель общается во время этой части процесса.

  • Предлагают ли они даты и время с часовыми поясами?
  • Рассылают ли они приглашения в календаре? У них есть часовые пояса?
  • Предлагают ли они несколько способов подключения, таких как телефон, Skype или Google Hangout?

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

В видеоинтервью они решают проблему кодирования. Но я также наблюдаю, как они работают, как общаются.

Проект кодирования

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

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

Прослушивание/презентация перед командой

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

Пробный период

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

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