Web development has become a multilevel hierarchy-based process for quite long now, divided into two parts: front end and back end. A front end is a code executed in a browser that actuates website or web application display and ensures performance of all the elements across various devices, i.e. on the client side. A back end is the server side, or software and hardware base. These terms originate from dividing responsibilities between the external representation and internal implementation.
Primarily, a back end is a code executed on the server, from which a website or web application is uploaded. Also, a back end comprises databases of regularly updated websites:
Above all that, a back end includes algorithms driving powerful online platforms:
A back end may be two-level — with an in-house front end and a lower-level back end. For instance, for readers of a WordPress blog, its engine acts as a back end. But for the owner-administrator and authors with permissions to add, change, or remove content, the back-end engine consists of a front end (a handy control panel for the engine or only content) and another back end (plugins, system PHP files, and MySQL database). Let’s look at it from a wider perspective: a server where a website or web application is hosted is a back end; a hosting control panel is a back end’s front end; while no-GUI Linux is a back end’s back end.
So, a back end encompasses hundreds of behind-the-scene processes that convey the output through a front end. This means that everything visitors or users do not actually see but what is working, is what we call a back end. But first, you need to find back-end developers who could establish it.
These specialists develop and deploy the server side of web resources. They can create the basic logic and design the architecture of a projected web app from scratch, and then compose the algorithms for its functioning. The performance, scalability, and security of a server code depend on the rationality of back-end developers’ work.
Back-end developers are proficient with DBMSs, so they can easily connect a code to a database and write query handlers for it. They feel at home when working with web servers receiving http requests from a front end and yield http replies; thus, they can effortlessly create an app that would consider server configuration and capabilities. The same is true for application servers when it comes to high-load or mobile apps.
A back end is not limited to a website or web app itself. It also incorporates web services that connect to other websites, apps, and services. Here are some examples: pingbacks and trackbacks in the blogosphere, sharing on social media, implemented reCAPTCHA, embedded online payments. Not only can back-end developers establish interaction with third-party application programming interfaces (API), they also can create their own one to which other resources will access.
Though developers’ key duties are analysing and specifying requirements, designing and programming, they are often entrusted with testing, debugging, and optimising code. Large companies have testers and special programmers assigned to perform such tasks. In small startups driven by two web developers (a front-end dev and back-end dev), who creates a code shall check and refine it. But, it is way more reasonable to delegate these tasks to another team as a fresh eye is better for detecting errors or suggesting improvements.
For every task, a suitable programming language, on which a source code will be composed, is selected. For the purposes of creating a website’s back end, the most commonly used language is PHP, while web applications can be created on PHP or some other languages, including:
Here are programming languages and database management systems used on the server side of popular websites:
Website | Monthly visitors | Server languages | DBMS |
---|---|---|---|
1.6 billion | C, C++, Go, Java, Python | Bigtable, MariaDB | |
1.1 billion | C++, D, Erlang, Hack, Haskell, Java, PHP (HHVM), Python, XHP | Cassandra, HBase, MariaDB, MySQL | |
YouTube | 1.1 billion | C, C++, Go, Java, Python | BigTable, MariaDB, Vitess |
Yahoo | 750 million | PHP | Cassandra, HBase, MongoDB, PostgreSQL |
Amazon | 500 million | C++, Java, Perl | PostgreSQL, RDS, RDS Aurora |
Wikipedia | 475 million | PHP | MariaDB |
290 million | C++, Java, Ruby, Scala | MySQL |
Not every back-end developer knows a dozen common languages. However, what distinguishes a talented specialist is the ability to quickly master a new language and easily sort out the tasks in which it is needed. That routine can be facilitated by universal development environments (Geany, IntelliJ IDEA, KDevelop) and cloud development environments (AWS Cloud9 IDE, Codeanywhere, Repl.it).
Development is facilitated by auxiliary tools: design and programming patterns, as well as frameworks and libraries for each language. This is why any developer uses at least one toolset that helps them deliver on time, without hampering other team members’ work.
Specialists who often deal with relational DBMSs can handle a Structured Query Language (SQL). Even those working with a NoSQL-type DBMS need to know this language as it is also supported in such systems. Those who are tired of the ubiquitous SQL have mastered and already use object-relational mapping (ORM).
Data fed to an API is converted into a specific format. Back-end developers who regularly configure or maintain APIs, get on well with an eXtensible Markup Language (XML), data interchange format JSON, software architectural style REST, and SOAP protocol.
One couldn’t handle any web server without dedicated server software, so every back-end dev is well versed in Apache HTTP Server, Lighttpd, Nginx. Even curious internet surfers have a rough idea about those programs as they came across various 5xx errors on faulty websites and would try to find out a cause. To work with application servers, professionals master such software as Google App Engine, IBM WebSphere, Java EE, Zend Server.
When a back-end dev needs to check performance of a web application on a local machine, they may use various server software packages — WAMP, LAMP, MAMP, XAMPP — depending on the operating system. They often deal with virtual and dedicated servers, so they delve into hosting control panels, virtualization, containerization, and Linuxes. But, you shouldn’t make them administer servers to save hosting costs.
The same could be said for a front end, but the web dev industry wouldn’t know such a thing as full stack. Full-stack developers are back-end specialists who can also develop a front end. Sometimes the opposite is true.
It’s not easy to hire experienced back-end developers, although there are many of them in the labour and service market. Some employers look for them on freelance marketplaces, others publish vacancies and sort out CVs on HR portals, still others delegate the entire turnkey development to a third-party team. Let’s look at each option so that you can choose what’s suitable.
First, a company needs to find back-end developers on service marketplaces like Fiverr, Guru, PeoplePerHour, or Upwork. Then, your team leader studies their portfolios and reads feedback from those who have worked with them. The next stage is he/she needs to discuss the upcoming work, clearly define the tasks in a detailed TOR, and agree on a deadline. After that, you can place an order through a marketplace, detailing all the agreed upon terms and specifications. Although you can publish an order first, and then process the requests following the same principle.
Benefits:
Shortcomings:
An employer needs to open a position on an HR portal like Adzuna, Indeed, Monster, or Reed. Then, your HR manager studies requests and CVs of back-end programmers with experience. Alternatively, he/she can headhunt on the same portals or LinkedIn. After that, you ask a candidate for an interview where the latter would talk about themselves and learn more about what they need to do in your company. All of this looks like traditional employment.
Benefits:
Shortcomings:
This is somewhere in between the first two methods. By attracting a dedicated team of remote back-end developers to the project, you get a bunch of temporary freelance employees. Not necessarily all the specialists at once but only those who you actually need, with an opportunity of later attracting someone who wasn’t needed at the first stage. A third-party team only comprises verified and practised back-end developers. Moreover, they have some experience in working together, so there is no risk of sabotage.
Benefits:
Shortcoming: in this case, the services of a back-end development team are more expensive than that of single freelancers. However, they are still far cheaper than keeping full-time employees.
On freelance marketplaces, back-end devs specify the minimum pay rate from which they start, usually from €9 or $10. This being the case, customers cannot estimate the cost of back-end development services as freelancers offer such low rates for only something simple, e.g. pre-consulting or making a plan.
It’s way easier to pay outsourced remote back-end developers when the payment is hourly. Here, the hourly rate of back-end developers is fixed and doesn’t change throughout the year, e.g. €45 or $50.
To complete the picture, employers should know the salaries that other companies are willing to pay full-time employees. They vary significantly depending on the required experience or level. Recruiters divide candidates the old-fashioned way — by experience in years. Devs themselves prefer division into junior, middle, senior, and lead developers. These are levels that correspond to a set of skills, technology stack, as well as the ability to work independently. If you combine all of these approaches, you will get the following:
The British IT labour market sees a great difference between London salaries and those in other regions and counties. We have collected open positions for 3 occupational levels from reed.co.uk and indeed.co.uk, then sorted them by level and city (London | other cities and towns). After that, we calculated the average salary for each of the 6 groups. Here’s how much a back-end dev can be paid in the United Kingdom (data for March 2022):
Level | Average annual salary (London) | Average annual salary (other cities & towns) |
---|---|---|
Junior | 30,000 GBP | 29,000 GBP |
Middle | 66,000 GBP | 53,000 GBP |
Senior | 71,000 GBP | 63,000 GBP |
Speaking of the Russian labour market, we can also notice a huge difference between Moscow salaries and those in other regions. We have collected open positions for 3 occupational levels from superjob.ru and zarplata.ru, then sorted them by level and city (Moscow | other cities and towns). After that, we calculated the average salary for each of the 6 groups. Here’s how much a back-end dev can be paid in Russia (data for March 2022):
Level | Average monthly salary (Moscow) | Average monthly salary (other cities & towns) |
---|---|---|
Junior | 100,000 RUB | 72,000 RUB |
Middle | 163,000 RUB | 135,000 RUB |
Senior | 225,000 RUB | 208,000 RUB |