Coding Jobs: Developing for the Front End and Back End

By Nikhil Abraham

Ever wonder how a coding job affects the everyday lives of others? When browsing a website or using an application, the experience is seamless and cohesive as you move from one screen to another, reading and entering information as needed. The code for websites and programs can be divided into four categories according to the code’s function:

Every website is made up of four parts.

Every website is made up of four parts.
  • Appearance: The visible part of the website, including content layout and any applied styling, such as font size, font typeface, and image size. This category is called the front end and is created using languages such as HTML, CSS, and JavaScript.

  • Logic: Determines the content to show and when to show it. For example, a New Yorker accessing a news website should see New York weather, whereas Chicagoans accessing the same site should see Chicago weather. This category is part of the group called the back end and is created using languages such as Ruby on Rails, Python, and PHP. These back‐end languages can modify the HTML, CSS, and JavaScript displayed to the user.

  • Storage: Saves any data generated by the site and its users. User‐generated content, preferences, and profile data must be stored for retrieval later. This category is part of the back end and is stored in databases such as MongoDB and MySQL.

  • Infrastructure: Delivers the website from the server to you, the client machine. When the infrastructure is properly configured, no one notices it. But it can become noticeable when a website becomes unavailable due to high traffic from events such as presidential elections, the Super Bowl, or natural disasters.

    Web servers such as Apache and Nginx receive requests from clients and respond by sending copies of website code. Without the proper configuration a surge of traffic will generate requests faster than the web server can respond, resulting in error messages.

Usually, website developers specialize in one or at most two of these categories. For example, a developer might understand the front end and logic languages, or specialize in only databases. Website developers have strengths and specializations, and their expertise outside these areas is limited, much in the same way that Kanye West, a terrific rapper, would likely make a terrible harp player in a symphony orchestra.

The rare website developer proficient in all four of these categories is referred to as a full stack developer. Usually, smaller companies hire full stack developers, whereas larger companies require the expertise that comes with specialization.

Each feature you see on a web page requires set up for the front end and back end. For example, let’s say you’re building a social network, and you want to include user profiles.

First, on the front end you’ll need to design how each profile screen looks and functions. Next, on the back end, you’ll need to select, install, and set up a database that will allow you to create, retrieve, update, and delete profiles as needed. Finally, you’ll need to make your database accessible to web and mobile applications.

Depending on which operating system your server is using, you may need to upgrade the entire operating system or key libraries to resolve compatibility issues before you can install the database.

Back end as a service (BAAS) providers reduce the time and effort you spend on back‐end installations and setup by maintaining ready‐to‐use servers, which you can rent. To install a service, like a database, you click a button; the installation happens automatically on the server and you don’t need to worry about software incompatibilities.

Any libraries or dependencies needed by the database are installed by the BAAS provider, which also handles keeping the servers up and running, upgrades, and security patches. Some of the more popular BAAS providers are Heroku, for web apps, and Parse, for mobile apps.