Every website you’ve visited can be split into two parts: the stuff that you see — including pages and their content — and everything else that you don’t see.

In the tech world, we call these two components the “front end” and the “back end” respectively. Creating both the front and back end of a website comes with its own challenges, but one can’t exist without the other.

If you’re more interested in the unseen part of websites, the part that keeps everything running, you might consider pursuing a career in back-end development. There’s never been a better time to do so: According to the U.S. Bureau of Labor Statistics, the role of “Web Developer” is expected to increase by 13% from 2020 to 2030, well above an average of 8% for all occupations.

In this guide, we’ll unpack the role of the back-end developer in website development. We’ll explain what these developers are responsible for, what they do day-to-day, and what skills you’ll need to have a fruitful career as one.

Download Now: Free Intro Guide to HTML & CSS

So, what does the back end actually look like? Nothing, really, at least not to the user. However, the back end is always chugging along behind the scenes to power the front-end experience for visitors.

Take this blog post, for example. What you’re viewing on your screen is the front end, the interface of the website. Everything that you see here, including text, images, and buttons, makes up the front end of the HubSpot blog.

But, how did this front end get to your computer in the first place? The text and image files for this post are stored in a database on a HubSpot web server, as are the files that determine how colors, fonts, and sizing all look. When you (or, to be exact, your browser) requested to view this web page, the server took the request, gathered all the necessary files from its database, compiled them into web page files, then sent those files to your browser. This is the back end at work.

Or, what if you submit a form on our website? We have to take your form data and store it in an organized database, then pull your data from the database when using it to, say, send you an email. These operations are also part of the back end, and thus the responsibility of back-end developers.

This is the gist of back-end development: fielding user data from the front end of an application, storing it in a database, modifying the contents of the database when needed, performing a variety of operations on this stored data, and sending data back to the front end. Back-end developers come up with the solutions and write the code to make all of this happen. Whew.

Back-end development is also called “server-side” development because its code executes on web servers, powerful computers built to store a website’s files and run its code. This is in contrast to “client-side” code, which runs in users’ web browsers and is written mostly by front-end developers.

What does a back-end developer do?

Back-end developers build, maintain, and debug the back end that runs an application. As you might imagine, this is a pretty large responsibility that can be broken down into many tasks. Depending on the company, a back-end developer will be responsible for some, most, or all of the following:

  • developing the systems and processes to meet the application’s specified requirements
  • maintaining databases, including data storage and retrieval, organization, backups, and security
  • finding and fixing bugs in the back-end code
  • managing any APIs the company uses to integrate applications, both externally and internally
  • conducting performance optimization to increase efficiency and improve the user experience
  • creating and maintaining libraries of code that can be reused by developers across the organization
  • helping develop the overall architecture of the application’s back end
  • securing the application from cyberattacks

Back-end developers also collaborate with front-end developers to translate their functions to user-facing content in the app’s interface, as well as with product managers, project managers, architects, user experience designers and researchers, security developers, and many more to bring web applications to life.

Like how the back end and front end of software need each other to form a complete application, back-end developers and front-end developers collaborate to produce a product.

However, these roles differ in their areas of expertise: While front-end developers primarily code in HTML, CSS, JavaScript, and their associated frameworks, back-end developers specialize in server-side programming languages like Python, Java, and PHP.

Ultimately, the front-end team aims to make the interface engaging and accessible, while the back-end team builds out the application’s invisible infrastructure to support the front end.

Back-end Developer Skills

We’ve discussed what back-end developers do, but what do they need to know in order to do it? In this section, we’ll cover the key skills you should know if you’re looking to hire a back-end developer or become one yourself.

Back-End Languages

Back-end developers employ a variety of programming languages in their work to manage servers, databases, and application logic. Here are the key ones:


Python is a general-purpose programming language commonly used to build the back-end of software programs and web applications. A flexible, user-friendly, and powerful language, it’s one that all back-end programmers should at least familiarize themselves with.

Python is easy to learn and implement, and is high-level, meaning the code is easily readable by humans and you generally have to write less code than low-level languages. Its syntax is relatively simple and logical to read, and there are many libraries you can use to adapt Python to just about any need, including server-side functions and data visualizations.

Thanks in large part to its low learning curve, Python is one of the most widely used programming languages among developers today — it’s currently tied with Java in second place. So, what’s Java?


Java is another general-purpose programming language often used in the back end of application development. It was built to be deployable across a wide range of environments and is flexible enough to support complex, high-performing software projects.

Java is harder to learn than Python and often more code-heavy in implementation. Even still, it’s powerful and intuitive once you’re comfortable with it, and is another must-know for back-end developers.

If you’ve read into web programming languages, you might have heard of another language called JavaScript. Despite their similar names, Java and JavaScript are different languages that do different things: Java is a back-end programming language, while JavaScript is a front-end programming language more frequently written by front-end developers.


PHP (Hypertext Preprocessor) is a server-side programming language, often used to create dynamic websites — those which change content based on the user or browser requesting the page. PHP dynamically constructs web pages on the server from database content. This process is the opposite of static web pages, which are stored on servers in their entirety and look the same to all visitors.

PHP powers millions of websites globally and is another relatively easy server-side language to pick up by beginners. It’s also one of the main languages of WordPress, the most popular content management system today.

Other Languages

Of course, there are many other programming languages out there that back-end developers might prefer. Other popular options include Ruby, a high-level language for quickly building web and mobile applications, C, a lower-level language (as well as the most popular language currently), and .NET, a framework developed by Microsoft for building websites and web apps.

In addition, a back-end developer may utilize programming languages specifically for database management, such as SQL (which we’ll discuss later on).

Front-End Languages

Wait a minute, aren’t we talking about back-end development? Why are we wasting time talking about front-end code too?

While it’s true that back-end developers spend most of their time working with server-side programming languages, understanding the fundamentals of front-end languages will prove valuable when working with web-based projects. These three front-end languages are HTML, CSS, and JavaScript.

HTML (HyperText Markup Language) is the most important language in front-end development, and you’ve probably at least heard about it. HTML sets the content (text, links, and media) and structure of web pages. Almost all web pages are built with HTML, and their files end with the extension .html.

CSS (Cascading Style Sheets) adds styling to HTML, like fonts and colors. In other words, it makes a web page look nice. Without CSS, the internet would be a pretty boring place — every page would simply be walls of unstyled text and images. CSS also helps make page content responsive for different devices and screen sizes.

JavaScript (often shortened to JS) handles web page functionality beyond basic style and content. While CSS and HTML are not technically programming languages, JavaScript is, and this opens up enormous possibilities. Developers use it to control animations, dynamically update page content, and generally execute scripts on web pages (without needing to consult the back end).

An understanding of these three languages will make collaborating with front-end developers and designers much easier, and may help in diagnosing problems that involve both front-end and back-end resources. They’re also useful career skills to have in general, especially if you want to pursue design or full-stack development.

Database Management

All websites store data — including site content and any information gathered from visitors — in databases. A big part of the back-end developer’s job is pushing data into or pulling data from the application’s database, so knowledge of modern database technologies is essential.

Databases can be split into two categories: relational databases and non-relational databases. Relational databases store data points that are related — for example, a customer’s name and their associated email, phone number, account ID, and purchases. Relational databases are structured as tables with related data points placed in the same row.

SQL (Structured Query Language, often pronounced like “sequel”) is a language for querying, modifying, and managing relational databases. MySQL, a database management system built on SQL, is widely used in web applications and should be in your tool belt. Databases that utilize SQL are called SQL databases.

By contrast, non-relational databases (also called NoSQL databases) do not store data points based on their relationships (though the data can still be related). Instead of tables, non-relational databases structure their data with Extensible Markup Language (XML) and/or JavaScript Object Notation (JSON). Knowledge of NoSQL database programs like Redis and MongoDB can be useful on the back end in addition to SQL.

Server-Side Software

Back-end developers write programs to run on servers. Accordingly, you should be familiar with common server software like Apache, Nginx, Microsoft IIS, and the Linux operating system. You’ll also need to understand how web servers receive and process requests for web pages, how they store data, and at least the basics of how to keep them high-performing and secure.


An application programming interface (API) is a set of definitions and protocols that allows two applications to interact and share data with each other. An API works by fielding requests from external applications, then responding by fulfilling the request. This request may be to retrieve or modify some set of data in the API’s database.

back end developer: diagram of an API interacting with a web browser over the internet

Image Source

Today, APIs are the technology behind web-based integrations. Similar to how you interact with a software program through its user interface, one piece of software can interact with another through an application programming interface. Any time you see one web app’s technology used on another, APIs made it happen. Apps like Facebook, YouTube, Google, or Spotify make much of their data accessible through their public APIs.

There are many types of APIs in use today, the most popular being REST APIs. To work in web development, you should be equipped with an understanding of REST APIs (and possibly SOAP APIs too). This technology connects not only separately owned applications, but internal back-end services as well.

Data Structures and Algorithms

Unlike other skills we’ve discussed, data structures and algorithms are more conceptual than concrete technologies, but they’re hugely important nonetheless. A capable backend developer needs a solid grasp of these areas to be effective in their role, which is why they’re included in computer science academic curriculums.

A data structure is a way to organize data in a computer. Common data structures include arrays, linked lists, trees and tries, hash tables, heaps, stacks, and queues — back-end developers will encounter most or all of these in their careers.

Broadly, an algorithm is a defined process to solve a problem. Back-end developers know the fundamental algorithms of computer software: Sorting algorithms, searching algorithms, string parsing and matching, hashing, and recursive algorithms will all be used at some point.

Other Important Skills

Beyond the core skills listed above, there’s plenty more to explore in the realm of back-end development. Here are some additional skills that will serve you well as a back end programmer:

  • experience with a version control system — likely Git, as well as familiarity with GitHub
  • knowledge of or experience with server management
  • communication skills, and an ability to explain complex technical topics to non-experts
  • time management skills, as you’ll likely be balancing several responsibilities at once
  • understanding of cloud computing and hosting
  • understanding of web accessibility best practices
  • understanding of cybersecurity best practices

Back-end Developers: The People Behind the Site

On this blog, we often praise front-end developers and designers for their excellent visual work and user experiences. This praise is well-earned, of course. But, let’s remember that, without back-end developers working behind the scenes, these sites just wouldn’t exist.

If you’re someone who wants to support the infrastructure of the web while tackling abstract, complex challenges, and isn’t afraid to pick up several new programming languages along the way, you might be the perfect fit for a back-end developer. Rest assured, this job won’t be going away any time soon.

New Call-to-action

 css introduction

Originally published Sep 28, 2021 7:00:00 AM, updated September 28 2021


Website Development