It’s been a long time since web development has become a multilevel process hierarchically divided into two parts: back end and front end. Back end is code executed on a server containing a website or a web application and also their databases and operation algorithms. Front end is the client side of the user interface to the hardware-software part. These terms originate from dividing responsibilities between the internal implementation and external representation.
First of all, it is code executed in a browser. It is responsible for displaying a web application or a website and the operability of all elements on various devices, i.e. clients. For clarity, right-click on this page to open a context menu and choose ‘View page source’ (or something similar if you’re not using Chrome) — you’ll see the source code. Thanks to it, a browser understands, processes, and properly shares data: texts, fonts, colours, images, menus, buttons, forms, and scripts. You can take a closer look at each element if you right-click on it and choose ‘Inspect.’
The front end is diverse, so let’s move on from our website to others:
The front end constantly interacts with a back end — thus, they work according to the ‘client-server’ architecture. Using a front end, a client device sends a user request to a server; a server then processes the request and responds with coded data as a result; the front end receives it and turns it into an understandable form that the client displays to a user.
To put it shortly, the front end is everything you see on the Internet and also what users of your website or application will see while interacting with them. But first, you need to find a front-end developer who will create it.
These specialists develop the client side of web sources. Up until the mid-2000s, their job was easy because back then everybody created simple websites that required only proper layout markup. It was enough just to transfer the created design to code using HTML and CSS. When Web 2.0 came around, websites evolved — almost all of them became dynamic, received engines, and beautified with interactive elements. Even brochure websites and home pages have been renovated. As a result, demand for the development of complex projects has appeared, and layout makers retrained as front-end developers.
When web applications became more powerful and gained more functionality, front-end developers started creating enhanced user interfaces (UI). Such interfaces include personal accounts linked with social media profiles, support contact forms, online payment forms, functions for people with disabilities, etc. All of these should function visually, and most importantly — solve user tasks. If needs are not met, user experience (UX) with a web application worsens. Project owners have finally come to appreciate their users to the extent that specialisation of a UI/UX designer has emerged. So, most often, a front-end developer acts as a designer of an interface, although in large companies a UI/UX designer performs this duty while a developer is busier with programming.
Hence, professional front-end developers are a jack-of-all-trades. They are capable of creating a part of or an entire front end from scratch, as well as connecting parts ordered from narrow specialists. As a result, thanks to their efforts, your web application will be convenient, functional, pleasant, and dynamic.
Each part of a website or a web application is written in a different language. Here, the basic ones are style and markup languages used to write a source code of web pages. We can conditionally call them simple languages because even beginners can quickly master them. Or more precisely, they have to — as they can’t move on in web development without them (or they can forever mark up layouts). The more complex and extended stage is programming languages.
Let’s start with the 3 pillars that hold the World Wide Web together. Any front-end developer must know these 3 languages:
It was invented by Tim Berners-Lee. He published the language’s description back in 1991. IETF acknowledged its specification in 1993. In 1995, they upgraded it and released a specification HTML 2.0, which became an Internet standard for the first time. Since 1996, the language has been supported by W3C. The current version—HTML5—is used as a standard by developers and has been supported by browsers since 2013.
CSS was created by Håkon Wium Lie. He proposed the concept in 1994. He received support from Bert Bos of W3C, who became a co-author of the CSS1 standard. W3C recommended the latter in 1996. The current version—CSS2.1—has been the preferred standard since 2011. However, developers and browsers try to support the CSS3 specification, which is currently being developed. It allows the creation of animated elements without applying JS, shadows, anti-aliasing, or linear and radial gradients.
XML was created by a team of 11 members headed by tech lead James Clark. After reaching a consensus on key decisions, the team published a draft of the XML specification in 1996. A clean copy was created by co-editors Michael Sperberg-McQueen and Tim Bray in 1997. In 1998, XML 1.0 was recommended by W3C. That version, namely its fifth edition dated November 2008, is still relevant.
And here’s what is not required but may become useful for some projects that are more about the back end or layout markup:
The times when webpage source code was written in Notepad and then saved with the .html extension are long gone. Today, front-end developers make their work easier using HTML/CSS frameworks. In 2021, the most popular ones are:
Although some consider JS to be outdated and others try to replace it with new functions of HTML and CSS, many people use this language to animate their static pages, turning them into dynamic ones or even into full-fledged web apps. JS allows the creation of simple things using easy methods and fully integrates with HTML and CSS.
JS provides interaction of a user with a front end: processes cursor movement and button/key clicks, reacts to them by executing programmed actions on a page or by changing the behaviour of its elements. It also arranges the interaction of a front end with a back end: sends requests to a server, receives data, all done without reloading a page.
Programs written in JS are called scripts; they are connected to HTML in a browser and executed when loading pages. Using an interpreter, scripts can be run anywhere, so JS can be executed outside of browsers. For example, it is used for writing mobile apps, widgets for a desktop, macros for office programs, scripts for Photoshop and for space flight tasks.
The last strong competitor to JS is WebAssembly. It is a low-level programming language created by a team of developers from W3C, Mozilla, Microsoft, Google, and Apple in 2015. It is already supported by the browsers of these IT corporations that are actively involved in its growth.
It’s not easy to hire experienced front-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 front-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.
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 applicants with front-end development 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.
This is somewhere in between the first two methods. By attracting a dedicated team of remote front-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 front-end developers. Moreover, they have some experience in working together, so there is no risk of sabotage.
Shortcoming: in this case, the cost of front-end developers’ services is higher than that of single freelancers. However, it is still far cheaper than keeping full-time employees.
On freelance marketplaces, front-end devs specify the minimum pay rate from which they start, usually from €9 or $10. This being the case, customers can’t estimate the cost of front-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 front-end developers when the payment is hourly. Their hourly rate 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 front-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||27,000 GBP|
|Middle||61,000 GBP||46,000 GBP|
|Senior||67,000 GBP||59,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 front-end dev can be paid in Russia (data for March 2022):
|Level||Average monthly salary (Moscow)||Average monthly salary (other cities & towns)|
|Junior||98,000 RUB||73,000 RUB|
|Middle||150,000 RUB||135,000 RUB|
|Senior||222,000 RUB||200,000 RUB|