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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Сайт Посетителей в месяц Серверные языки СУБД
Google 1,6 миллиарда C, C++, Go, Java, Python Bigtable, MariaDB
Facebook 1,1 миллиарда C++, D, Erlang, Hack, Haskell, Java, PHP (HHVM), Python, XHP Cassandra, HBase, MariaDB, MySQL
YouTube 1,1 миллиарда C, C++, Go, Java, Python BigTable, MariaDB, Vitess
Yahoo 750 миллионов PHP Cassandra, HBase, MongoDB, PostgreSQL
Amazon 500 миллионов C++, Java, Perl PostgreSQL, RDS, RDS Aurora
Wikipedia 475 миллионов PHP MariaDB
Twitter 290 миллионов C++, Java, Ruby, Scala MySQL

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

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

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

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

Данные, предоставляемые для API, конвертируются в определённый формат. Бэкенд-разработчики, регулярно настраивающие или поддерживающие 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. Низкая стоимость услуг backend-разработчиков из-за демпинга начинающими фрилансерами.
  2. Широкий выбор backend-разработчиков с отзывами и солидным портфолио.

Недостатки:

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

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

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

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

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

Недостатки:

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

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

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

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

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

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

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

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

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

Рассчитываться с внештатными удалёнными бэкенд-разработчиками намного легче, когда оплата почасовая. Здесь стоимость часа работы backend-разработчиков фиксированная и на протяжении года не меняется, например: 3500 ₽, 45 € или 50 $.

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

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

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

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

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

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

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

Уровень квалификации Средняя годовая з/п в Лондоне Средняя годовая з/п в других городах
Junior 33 000 GBP 21 000 GBP
Middle 60 000 GBP 38 000 GBP
Senior 63 000 GBP 48 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)
Ваше сообщение было успешно отправлено. Мы скоро с Вами свяжемся!