Нанять backend-разработчика


Найти и нанять backend-разработчика

Back-end и backend-разработчики

Веб-разработка давно стала многоуровневым процессом с иерархическим разделением на две части: front-end и back-end. Front-end — это исполняемый в браузере код, который отвечает за отображение сайта или веб-приложения, работоспособность всех элементов на разных устройствах, то есть на клиентской стороне. Back-end — это серверная сторона, или программно-аппаратная часть.

Что собой представляет back-end

Прежде всего это код, выполняемый на сервере, откуда загружается сайт или веб-приложение. Также это базы данных регулярно наполняемых сайтов, например:

  • в CMS — записи о контенте (тексты статей и новостей, их даты, рубрики, теги), пользователях, комментаторах и комментариях;
  • на форумах — учётные записи пользователей, данные о темах, постах, личных сообщениях;
  • в интернет-магазинах — учётные записи покупателей, данные о товарах, их запасах, содержимом в корзинах, оформленных заказах, прошлых покупках.

А ещё это алгоритмы работы мощных онлайн-платформ, например:

  • в социальных сетях — поиск возможных друзей, рекомендация интересных постов, учёт хештегов, ранжирование сообществ; антиспам, предварительная обработка жалоб и рекламных объявлений машинами (до рассмотрения работниками);
  • на биржах — торговый движок, учёт выставленных ордеров, история торгов;
  • в облачных хранилищах — распределение ресурсов, резервирование и сохранение целостности данных, проверка файлов на вирусы.

Бэкенд может быть двухуровневым: с собственным фронтендом и нижестоящим уровнем бэкенда. Например, CMS WordPress является бэкендом сайта, но для владельца-администратора, редакторов и авторов система состоит из: фронтенда — удобной панели управления движком или только контентом, и ещё одного бэкенда — плагинов, системных файлов на PHP, базы данных на MySQL. Посмотрим издалека: сервер, на котором размещается сайт или веб-приложение, — это бэкенд, панель управления хостингом — это фронтенд бэкенда, а Linux без GUI — это бэкенд бэкенда.

В общем, бэкенд — это сотни и тысячи невидимых процессов, которые потом передают результат уже через фронтенд. То есть всё, что скрыто от посетителей/пользователей и работает само по себе, и есть бэкенд. Только сначала надо найти backend-разработчиков, которые его создадут и настроят.

Чем занимаются backend-разработчики

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

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

Бэкенд не ограничивается самим сайтом или веб-приложением. К нему также относятся веб-сервисы (веб-службы), которые связываются с другими сайтами, приложениями и сервисами. Знакомые всем примеры: пингбеки и трекбеки в блогосфере, шеринг в социальных сетях, подключённая reCAPTCHA, внедрённая онлайн-оплата. Бэкенд-разработчики могут как наладить взаимодействие со сторонними API, так и создать собственный, к которому будут обращаться другие ресурсы.

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

Какие языки используют backend-разработчики

Для каждой конкретной задачи подбирается свой язык программирования, на котором будет писаться исходный код. При создании бэкенда сайтов чаще всего используется PHP, а веб-приложения разрабатываются как на нём же, так и на других языках:

  • ASP.NET;
  • C++;
  • Go (Golang);
  • Java;
  • Perl;
  • Python;
  • Ruby;
  • Rust.

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

СайтПосетителей в месяцСерверные языкиСУБД
Google1,6 миллиардаC, C++, Go, Java, PythonBigtable, MariaDB
Facebook1,1 миллиардаC++, D, Erlang, Hack, Haskell, Java, PHP (HHVM), Python, XHPCassandra, HBase, MariaDB, MySQL
YouTube1,1 миллиардаC, C++, Go, Java, PythonBigTable, MariaDB, Vitess
Yahoo750 миллионовPHPCassandra, HBase, MongoDB, PostgreSQL
Amazon500 миллионовC++, Java, PerlPostgreSQL, RDS, RDS Aurora
Wikipedia475 миллионовPHPMariaDB
Twitter290 миллионовC++, Java, Ruby, ScalaMySQL

Разработчик бэкенда не всегда владеет большинством распространённых языков. Но что отличает талантливого специалиста, так это способность быстро освоить новый язык программирования и с лёгкостью решить задачи, в которых он необходим. Отчасти в этом помогают универсальные среды разработки (Geany, IntelliJ IDEA, KDevelop и другие) и облачные среды разработки (AWS Cloud9 IDE, Codeanywhere, Repl.it и другие).

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

Какими ещё навыками владеют backend-разработчики с опытом

Профессионалы, часто работающие с реляционными СУБД, владеют языком структурированных запросов (SQL). Даже те, кто имеет дело с СУБД типа NoSQL, вынуждены знать его, потому что этот язык запросов там тоже поддерживается. А уставшие от вездесущего SQL освоили и применяют методику объектно-реляционного отображения (ORM).

Данные, предоставляемые программному интерфейсу приложений, конвертируются в определённый формат. Бэкенд-разработчики, регулярно настраивающие или поддерживающие API, подружились с расширяемым языком разметки (XML), форматом обмена данными JSON, архитектурным стилем REST, протоколом SOAP.

В работе с веб-серверами не обойтись без серверного ПО, так что каждый бэкендер разобрался в Apache HTTP Server, Lighttpd, Nginx. В общих чертах о них знают даже пытливые интернет-сёрферы, которые встречали разные ошибки с кодами 5xx на неработающих сайтах и выясняли причину. А для работы с серверами приложений профессионалы освоили такое ПО, как Google App Engine, IBM WebSphere, Java EE, Zend Server.

Когда надо проверить работоспособность веб-продукта на локальной машине, то в зависимости от имеющейся ОС бэкендеры используют пакеты серверного ПО, такие как WAMP, LAMP, MAMP, XAMPP. По роду своей деятельности они также сталкиваются с виртуальными и выделенными серверами, поэтому у них как-то само собой получается изучить панели управления хостингом, виртуализацию, контейнеризацию, Линуксы. Но лучше не заставлять их администрировать серверы ради экономии на услугах хостера.

То же самое можно было бы сказать о фронтенде, но тогда в сфере вебдева не возникла бы квалификация full-stack. Фуллстек-разработчики — это бэкендеры, которые умеют разрабатывать ещё и фронтенд. Иногда наоборот.

Что делать, если нужен backend-разработчик

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

Найти фрилансера

Заказчик должен сначала найти незанятых бэкендеров на биржах услуг, таких как Fiverr, Freelance.Habr, Freelancehunt, Upwork, Weblancer. Потом изучить портфолио backend-разработчиков с отзывами. Дальше нужно обсудить предстоящую работу, чётко обозначить задачи (желательно в подробном ТЗ), оговорить сроки сдачи. После этого уже можно оформить официальный заказ через биржу, дополнив его оговорёнными условиями и требованиями. Но можно и сразу создать заказ, а потом обрабатывать поступающие заявки по тому же принципу.

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

  1. Низкая стоимость услуг на всём рынке из-за демпинга начинающими фрилансерами.
  2. Широкий выбор исполнителей с хорошей репутацией и солидным портфолио.

Недостатки:

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

Нанять сотрудника в штат

Работодатель должен открыть вакансию на порталах для поиска и подбора персонала, таких как Career.Habr, HeadHunter, Indeed, Monster, SuperJob. Потом рассматривать заявки и изучать резюме профессиональных бэкендеров. А можно устроить хедхантинг на тех же порталах или на LinkedIn. Дальше нужно провести собеседование, где кандидат расскажет подробнее о себе и узнает больше о роли backend-разработчика в компании. В общем, типичное трудоустройство со всеми нюансами офлайна.

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

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

Недостатки:

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

Аутсорсинг backend-разработки команде

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

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

  1. Почасовая оплата труда каждого привлечённого специалиста.
  2. Руководство и контроль команды обеспечивается её лидером.
  3. Грамотное планирование разработки, прохождение этапов с регулярной отчётностью по спринтам.
  4. Заключение договора, выдача акта выполненных работ, которые можно отнести к расходам в бухгалтерском и налоговом учёте.

Недостаток один: если сравнивать с фрилансерами-одиночками, то стоимость услуг backend-разработчиков в команде выходит дороже. Но всё равно не настолько дорого, как содержать штатных сотрудников.

Час работы: 50 USD (45 EUR)

Рынок труда backend-разработчиков

Бэкендеры на фриланс-биржах указывают минимальный размер сдельной оплаты труда, от которого они отталкиваются: от 500 руб., от 9 €, от 10 $. Заказчикам в этом случае трудно ориентироваться в стоимости их услуг, потому что за такие деньги исполнители могут сделать только что-нибудь несущественное, например, предварительно проконсультировать или посмотреть состояние проекта.

Оценить услуги нанятых через аутсорсинг внештатных работников с почасовой оплатой намного легче. Стоимость часа работы удалённых backend-разработчиков редко меняется: 3000 руб., 45 €, 50 $.

Чуть сложнее равняться на зарплаты штатных сотрудников, которые готовы платить работодатели. Здесь всё зависит от требуемого опыта или уровня квалификации. Рекрутеры делят кандидатов как привыкли — по опыту работы, измеряемому в годах (так проще). Сами разработчики предпочитают делиться на junior, middle, senior, lead — условные уровни, которым соответствует набор умений и навыков, стек технологий, а также самостоятельность. Если эти подходы попытаться совместить, то получится примерно следующее:

  • джуниор — новичок с опытом в разработке 1-2 года, умеет немногое, сам справляется только с лёгкими задачами;
  • мидл — специалист с опытом в разработке 3-5 лет, умеет почти всё, что обычно требуется от бэкендера, справляется с большинством задач без посторонней помощи;
  • сеньор — суперпрофессионал с опытом бэкенд-разработки от 6 лет, для которого нет неосвоенных умений и невыполнимых задач;
  • лид — ведущий разработчик, лидер команды, который «пасёт котов»; бывает техлидом (с техническим уклоном) или тимлидом (с управленческим уклоном).

Сколько платят backend-разработчикам в России

На российском рынке труда ИТ-сферы присутствует значительная разница между зарплатами в Москве и зарплатами в других регионах. Мы собрали вакансии для трёх уровней квалификации на агрегаторе rabota.yandex.ru, рассортировали по ним и по городам (Москва или остальные города). Потом высчитали среднюю зарплату внутри каждой из 6 групп. Вот сколько российские компании готовы ежемесячно платить бэкенд-разработчику (данные марта 2020 года):

Уровень квалификацииСредняя ежемесячная з/п в МосквеСредняя ежемесячная з/п в других городах
Джуниор60 000 RUB34 000 RUB
Мидл143 000 RUB92 000 RUB
Сеньор194 000 RUB144 000 RUB

Сколько платят в Великобритании

На британском рынке труда тоже присутствует разница между зарплатами в Лондоне и зарплатами в других регионах, округах и графствах. Мы собрали вакансии для трёх уровней квалификации на reed.co.uk и indeed.co.uk, рассортировали по ним и по городам (Лондон или остальные города). Потом высчитали среднюю зарплату внутри каждой из 6 групп. Вот сколько британские компании готовы ежегодно платить бэкенд-разработчику (данные марта 2020 года):

Уровень квалификацииСредняя годовая з/п в ЛондонеСредняя годовая з/п в других городах
Junior33 000 GBP21 000 GBP
Middle60 000 GBP38 000 GBP
Senior63 000 GBP48 000 GBP

Сколько стоят услуги backend-разработки компании Polygant

Проектирование архитектуры приложения
Час работы: 50 USD (45 EUR)
Разработка бэкенда веб-приложения
Час работы: 50 USD (45 EUR)
Аудит кода и архитектуры
Час работы: 50 USD (45 EUR)
Интеграция со сторонним сервисом
Час работы: 50 USD (45 EUR)
Разработка REST API
Час работы: 50 USD (45 EUR)
Доработка и оптимизация API
Час работы: 50 USD (45 EUR)
Разработка бэкенда мобильного приложения
Час работы: 50 USD (45 EUR)
Настройка SMS-шлюза
Час работы: 50 USD (45 EUR)
Разработка прогрессивного веб-приложения
Час работы: 50 USD (45 EUR)
Кастомизация административной панели
Час работы: 50 USD (45 EUR)
Подключение биллинговой системы
Час работы: 50 USD (45 EUR)
Подключение платежной системы
Час работы: 50 USD (45 EUR)
Оптимизация существующего проекта
Час работы: 50 USD (45 EUR)
Разработка высоконагруженного WebSocket-сервиса
Час работы: 50 USD (45 EUR)
Поддержка сложных проектов
Час работы: 50 USD (45 EUR)
Ваше сообщение было успешно отправлено. Мы скоро с Вами свяжемся!