# Web Development/What is a backend?

* Section 5.1 — Back to Contents
Back-end development references a client server architecture common in ecommerce. Client side tends to have a strong user interface skill and the server side a strong API skill. But they overlap.
A backend developer could just be focused on a database and providing an API to it or on a server language like PHP and those mentioned so far and provide an API to it. Their work would need to be accessible to many other back end applications such as the database developer example and more to many front end applications. For example today many web backends service not only desktop and mobile web front ends but also device apps and even desktop apps. So the back end developer will not know how all of those front ends work but provide a server side interface such as a REST interface for those multiple front end technologies to access such as a login. Server developer can also make user interfaces that are probably less robust for administrative access to their code, functionality and data.
A front end developer in a client server architecture could be an app developer such as with Android, iOS or Windows and even be a specialist in one of those working with the UI libraries available in those OSs. They could be a desktop developer such as MacOS or Windows or Linux working with the UI libraries available in those OSs. Pretty much everyone on client side have knowledge of HTML CSS as that shows up even in native apps. User interface developers often have skills at building and using APIs. For example the Javascript angular.js MVC or the iOS MVC and the javascript JQuery API. In this sense a front end developer could be working with data API once it arrives on the client side and have less to do with the actual look and feel aspect of the front end.
In all cases an overlap in skills is a good to have for communication among the team and debugging client server apps. I always joke that the UI person takes the blame for anything that seems to go wrong because it is the cover to the book. In resolving the problem sometimes the UI person needs to clearly understand the surface interface language or at least the API of the server side to help isolate the problem solving effort. Same goes for the server side developers. However they are at the disadvantage because they could be serving many different client side technologies. So they often fall back to their own testing of the API hooks to isolate and remove themselves from the problem solving issues. But you can see the communication not only person to person on a professional team basis but mores on data transmission, the structure and tagging of the data is improved when both sides have a good understanding of their respective technologies to the extend of the data.
The backend to a website is pretty much everything the user can't see. Generally, this means the programming that generates pages that the user views, creating the "server-side" content of the site. This could be scripts, directives, databases, and other automated functions the server performs.
Back-end development includes the server implementation and it more on the logical interaction of data, how it is stored, and transmitted. Back-end developers typically work with programming languages such as PHP, Python, Go, and new Javascript libraries like Node.