Бэкенд-разработчики отвечают за работоспособность всего того, что скрыто от пользователя за интерфейсом веб-сайта. Под «бэкендом» обычно понимают, собственно, сервер, на котором все работает, внутренние приложения и базу данных. Задача таких инженеров сделать так, чтобы данные пользователей быстро обрабатывались, были хорошо защищены и легкодоступны в любое время. Сегодня бэкенд — это важнейший элемент успеха любой компании, связанной с технологиями.
Подразделение Talent ресурса Stack Overflow дает несколько практических советов о том, как найти и нанять сильных бэкенд-разработчиков.
Нужно знать, где их искать
Найти специализированные онлайн-форумы специалистов по бэкенду не так просто. Однако, решить эту задачу можно с помощью более подробного изучения того, какие языки программирования и технологии они используют — а их очень и очень много. В частности, это упражнение поможет не только понять, где искать нужных разработчиков, но и станет хорошим поводом пообщаться с будущим руководителем кандидатов, чтобы понять, что конкретно он хочет получить от будущего работника.
Начать поиски можно с анализа ресурсов, посвященных одному из наиболее популярных языков программирования в сфере бэкенд-разработки — Ruby. Юкихиро Мацумото не только создал популярнейший инструмент, он продолжает работать над развитием активного сообщества разработчиков, использующих его в своей работе. Если же компания ищет «бэкендера» со знанием Python, то для этого отлично подойдут ресурсы dream.in.code и CodingForums.com. Кроме того, не лишним будем знать, что среди самых популярных тегов на Stack Overflow метки, посвященные Ruby, Python и PHP.
Вне зависимости от того, какими технологиями пользуются бэкенд-разработчики, отличительной чертой таких специалистов является стремление к самосовершенствованию, изучению чего-то нового и обмену опытом. Поэтому, общение с ними стоит начинать не с рекламы своей вакансии, а с вопросов о том, над каким проектом сейчас работает кандидат, что его интересует и чему еще он хотел бы обучиться.
Важно понимать рабочие задачи бэкенд-программистов
Чтобы преуспеть в общении с разработчиками, следует понимать, что именно они каждый день делают на работе и с какими трудностями сталкиваются. Команда Stack Overflow поговорила об этом с Мэттом Белислом (Matt Belisle), бэкенд-разработчиком компании Workiva, и вот, какие задачи из своей практики он привел:
- Выбор верной архитектуры базы данных. «Данным нужно где-то “жить”, поэтому выбрать для вашего набора информации корректную архитектуру базы данных — крайне важная задача, — говорит Белисл. — Так что нужно выбрать инструмент, идеально подходящий для решения конкретной задачи, и хорошо уметь им пользоваться».
- Понимание стека коммуникационных технологий. По словам Белисла, инженеру крайне важно понимать и то, как компьютеры общаются с пользователями и друг с другом: «Знание стека коммуникационных технологий от TCP/UDP до множества построенных на этих протоколах инструментов для бэкенд-разработчика так же важно, как умение говорить с людьми».
- Умение находить компромисс между скоростью работы системы и скоростью разработки. Инженер также отметил, что поскольку часто возникает необходимость хранить и обрабатывать большие объемы данных, выбор инструментов для решения задачи может оказывать серьезное влияние на конечный успех или неудачу. «Разработчики должны уметь делать выбор между скоростью разработки и конечным быстродействием системы, важно знать, как их замерять и тестировать».
Еще один элемент успеха: что заставляет специалистов ходить на работу
Помимо непосредственно профессиональных задач, важно понимать, и что нравится разработчикам на работе помимо, собственно, работы. Мэтт Белисл рассказал и о том, что он и его коллеги ценят в своей работе, и что может стать дополнительным поводом принять оффер от новой компании.
- Приятная атмосфера в команде. По словам инженера, перед тем, как принять предложение о работе, он задает много вопросов о взаимоотношениях в команде. Сделать выводы ему помогают вопросы вроде «Что случилось, когда кто-то в команде в прошлый раз совершил нетривиальную ошибку? Принято ли в команде спрашивать совета и помощи у коллег?»
- Стек технологий непрерывной интеграции. Также Белисл сказал, что любому инженеру всегда интересно то, как быстро созданный им код начнет реально работать на благо пользователей. Инженерам интересно участвовать в процессе создания кода, его тестирования и развертывания.
- «Плюшки». Кроме того, хоть это и не может становиться главным элементом при рассмотрении оффера, но инженерам обычно нравятся такие вещи, как пиво по пятницам, празднования успешных релизов новых функций, оплачиваемые отгулы в плюс к отпуску и т.д.