An online store, like every website, consists of two parts: frontend and backend. Frontend is the part visible to the user, which includes layout and visual elements of the website. Generally, these are the parts with which they can interact – the whole interface. On the other hand, the backend, also called the “support area”, is the part which remains out of the user’s sight. Its task is, among others, to transmit data responsible for the proper functioning of the website and displaying frontend elements. However, this is not the end of a backend developer duties. Radek Bąkowski, a backend developer in Global4Net, told us about what the backend is and how working with it looks like.
What is the backend and how does it work?
As we said, the backend is the part of the website which remains invisible to its users. It ensures proper functioning of the whole website, including its frontend part. The backend part is actually a hosting server, which often, but not always, hosts the database. It provides information needed to perform operations on the website. This is done in the following way:
- A user of your shop performs an action on the frontend page. It may be, for example, opening a website from the search list.
- The user’s action (request) is sent as a signal to the server hosting the website.
- The backend receives the question, processes its information content and identifies it.
- Once the request is identified, the information and data needed to execute the user’s command is collected from the database.
- The collected data is sent from the server as a response to the website.
- The response from the server is interpreted by the frontend and website content is displayed.
This process takes place with every action performed by a user of your website: when adding products to the basket, comparing models of the selected item and choosing the payment method. The quality of backend solutions determines the effectiveness of performed actions and the level of user satisfaction. Working on the backend itself is not easy. As Radek Bąkowski, backend developer in Global4Net, says, programming is a big mental effort that requires constant focus for a long period of time. 8 hours of analysing the code and trying to figure out what one line of it is responsible for can strain one’s mind. The process of creating backend code requires the most thorough understanding of the task or problem the developer is to perform or solve.
When developing backend solutions, it is best to conduct research on a given technique and work by trial and error until our efforts have the desired effect. At the same time we will complete our task and develop our skills.
Responsibilities of a backend developer
The backend developer is responsible for creating the code that enables the website to function properly. When a user clicks on a link and is redirected to the desired address, it is because of the work of the backend developer. Other tasks of backend developers include:
- developing and extending websites;
- bug fixing;
- working on security features;
- testing of changes made;
- taking care of the database.
The Internet as a medium does not like stagnation – change and development are mandatory, especially in the e-Commerce industry. The most desired changes in the construction of a website are to streamline the operations and speed up the functioning of the website. Most of the preparations and tasks aimed at developing the website in this direction are related to backend activities. Actions aimed at implementing technologies such as PIMs, migrating online shops to other platforms such as Magento or creating modules and plug-ins from scratch are part of the responsibilities of backend developers. They streamline the functioning of the online shop and make it easier to manage. In addition, backend developers must ensure that after migrations and implementations, the new website does not suffer on the SEO level. So, in addition to developing and improving sites in the broadest sense, backend developers also help other departments to work more effectively with the website.
During every e-Commerce project, the developing team will encounter problems or create them themselves – during deployments, implementations and other tasks. Server zone errors: incorrect address redirections, incorrectly installed plug-ins or non-functioning queries are reported to the backend team. In these situations, the backend developer must determine what caused the problem and find a solution. Typical of backend work is that many of these mistakes are not described in any manual or tutorial. Some of them are so unique that the developer has to find a way out of the situation, usually relying solely on their experience and gut feeling. This is why many backend developers talk about their work as if they were solving more and more puzzles.
Working on security
Backend developers also work as the first line of defense against unauthorized access to the website, mainly to the database. Therefore, one of the tasks of backend developers is to filter the data sent from the frontend to ensure that it does not cause harm to the server-side database. However, it is important to remember that backend developers do not have as advanced security tools as antivirus application developers. Their competence is limited, but they still can use programming languages, or more precisely built-in functions. For example, the PHP language which is used in most web applications, has a feature to not interpret specific SQL queries that can corrupt databases, such as clearing information tables. However, for some threats, backend developers have no control. Among other things, they are unable to secure links that redirect to external sites.
Another responsibility of the backend developer is to pre-test the functionality of the introduced changes and implementations. This mainly boils down to testing the transmission of requests from the frontend to the server and the transmission of data back to the website.
In addition to securing databases, backend developers are also responsible for maintaining them and extending their content with new information, e.g. that relating to refreshed products, as well as logic that helps to support newly implemented functions. In addition to this, backend developers are also responsible for cataloguing data on the server, defining its format and ensuring data compatibility.
Tools needed for the work of a backend developer
The main competence a backend developer should have is knowledge of a programming language. However, it is worth first considering the question of what exactly such a language is.
Programming language as the basis of the backend
A programming language or code is nothing more than a facilitated record of electrical signals that a computer reads as specific commands. With the language, a developer can easily manage what kind of signals are to be sent and processed by the computer.
For example, high-level languages, whose notation is based on English, are supposed to make it as easy as possible for the developer to manage impulses. As Radosław says, compared to low-level languages, they allow the same code to be entered several dozen times faster. In contrast to low-level languages, the developer does not have to point to specific memory cells, pass appropriate values to matching registers. This saves him time and reduces the chance of making a mistake. However, low-level languages allow for much more efficient and precise resource management, as well as having better optimised code.
A compromise between the two types are intermediate languages that are adapted to work with registers and much of their syntax is based on English. An example of such code is the C language.
Recommended languages for backend operations include PHP (low entry threshold, very friendly to new programmers, high performance), SQL (useful for working with databases) and HTML (an absolute must for working on websites).
Another tool that should be in every backend developer’s arsenal are frameworks. Under this name are ready-made programming solutions that make developers’ work easier. The most popular frameworks used in backend are Laravel and Symfony. Frameworks are often called CMS (content management system) tools such as Magento or WordPress. They help to manage both the frontend and backend parts of our website.
Backend developer environment
Programming languages and frameworks are only a few of the tools needed to work on an e-Commerce project. An important step is to prepare the so-called development environment and an appropriate technology stack. Radek lists these competences as the most useful in the work of a backend developer:
- knowledge of the server environment (Nginx, Apache), enabling you to switch quickly between different projects;
- the GIT tool, used as a version control system and data archiver;
- the Postman platform, which makes it easier to build APIs;
- JIRA tool, which helps to manage tasks and project workflows;
- PHPStorm integrated development environment, which allows you to edit the code you enter, analyse its quality, as well as provide easy navigation and an intuitive search module.
Which system to use for backend work?
In my opinion the most convenient workflow is offered by Linux. Especially when I come to work on more complicated problems, Linux makes programming tasks easier. You have to get used to the characteristics of coding on this system, but it offers much better quality of work than Windows or OS X.
Additional advantage of Linux is open source access and support of thousands of community and specialist teams, constantly offering new updates.
How to become a backend developer and how to grow in the profession?
Radek emphasizes that in the work of a programmer, regardless of specialization, the most important thing is practical experience. His adventure with computer science and web programming began in high school, when he participated in a programming workshop. As part of his project, he had to create a school homepage. As he recalls, despite frequent computer science lessons, it was only at the workshop that he came into contact with a programming website that is actually used in practice by professional IT companies.
Practice more important than theory
For aspiring and current backend developers, it’s important not to just stop at expanding theoretical knowledge, but to regularly practice technical skills. The nature of the IT industry means that the most viable way to learn, and true to the realities of the job market, is through practice. IT is learned through trial and error, project tasks and problem solving. In order to best prepare yourself for the work of a backend developer, you need to expect more from yourself than what the university curriculum stipulates. Attending workshops, webinars and practical courses is a good start.
However, even current backend developers need to continually develop. How do they do it? In addition to the above examples, day-to-day project work provides plenty of opportunities to learn new things and improve your own working practices. Responsibilities such as working on databases, managing servers, setting up development environments and operating the GIT tool indirectly broaden a developer’s competence.
You can always consider learning more about front-end issues. This could result in a transformation into a full-stack developer or server administrator. Each path offers many opportunities to grow in an industry that is one of the most lucrative and fastest growing.