The words “coder” and “programming” are a bit loaded. For people working outside the technology field, these terms could conjure up a clichéd mental image. Like someone dressed in pajamas, sitting in a basement in front of a huge computer monitor at 2am, typing frantically on a keyboard in-between chugs of an energy drink. However, the reality is much different. Instead of that, picture this: a team of men and women with a wealth of knowledge on computer languages and mathematics, working together in a bright office full of natural light, to build useful websites, applications and software. This picture is much closer to the back-end web development reality. But how does the team go about actually creating these solutions?

The three powerful priorities for back-end web development

The work of back-end developers involves mentally swimming around in some pretty complex concepts. And like the ocean, there are ever-changing conditions that can play havoc on a website’s data management and production. Our calling is to keep websites safely afloat, running swiftly, and avoid them being capsized by a rogue wave of data and visitors. Therefore, our priorities are system availability, efficiency, and security. Here’s how we wield this trident of priorities:

  • Availability. Ensuring that the system back-end is ready and waiting at all times for demand from a user or administrator. Because it’s a hurry-up and wait situation when the winds aren’t blowing in the sails. Akin to scrubbing the deck and hull to avoid leaks, the development team plans maintenance for off-peak times, and creates a monitoring structure that can identify small problems before they become catastrophic.
  • Efficiency. Ensuring that the system back-end utilizes resources in the best way possible, smoothly handling peaks and valleys of front-end demand. In other words, the ship needs to be designed to cut through the water as easily as possible, or it might receive a pounding that sends it to the bottom of the seas. Anything that can be automated is automated, so that cycle rates are maximized and lags are minimized.
  • Security. Ensuring that data remains uncorrupted and accessible to the correct users, in the ways they need it. It’s not all about warding off figurative pirates, though you only want the right people moving the sails. Optimizing the system to prevent intrusion-prevention, maintain operability, and remain flexible for changes in the data use or access structure is the name of the game.

The performance level for each priority is not mutually-exclusive, and each prong of the trident influences the others. We work with integrated systems that aren’t shipwrecked on an island somewhere. It's necessary for team members to be thorough and consider each detail, so everything is as secure, efficient, and available as possible.

Photograph of a group of people sailing a boat in a regatta with lots of waves.

What do back-end web development team members do day-to-day?

As mentioned in the beginning of this article, back-end web development involves a lot of coding. And libraries. But the libraries we work with aren’t full of books like you might imagine. The library we’re describing here is a gathering of code that we can reuse. Web developers essentially create re-useable computer code, like stacks, searches and queries, which is flexible for multiple purposes. These purposes are what drive our daily tasking.

Integration

We integrate databases, APIs, services and other third-party resources with the system. In the library of olden times, there were atlases, providing large maps of physical locations. Today, location-finding using modern maps doesn’t typically start in an atlas or roadmap. Instead, a mobile electronic device like a smartphone accesses a website, which collects location information of the user. Then the user enters the destination address, and the website uses a look-up function from the United States Postal Service database to perform numerous calculations. Calculations like the distance between points, the likely route desired if you are driving between points, the written instructions for logically navigating each step of that distance, and so on. Maps these days even pull from other databases, such as nearby restaurant locations, and more. None of that data resides on your website, it is pulled in from all the other sources that the back-end is programmed to access. Some of those sources provide paid data, in the form of a subscription, while others are free. This is what makes finding local search results possible.

Calling and Logging

Whenever a command is issued to the system, it is called a “call.” Every call that comes into the system is tracked, and these lists are each called a “log.” Imagine you are an online bookseller trying to decide what new inventory to purchase from your supplier. You have your actual sales data, but may also want to find out things like what people are searching for on your website (authors, genres, and other key terms). Back-end web development sets up the system to accept calls, generate logs, then output reports so that you can find out the different things you want to about your website. This is essentially the method for tracking interactions and data flow, and it can also trigger system processes, like automated reporting through an email. Common things that logs can enable include the system sending you an error message when a system error occurs, including where in the code the error occurred, so that it can be corrected (debugging).

Throttling and Running Scheduled Processes

As mentioned earlier, this means setting up system activities that will occur without any user interaction, while helping to expedite and economize data flow between the server and other services or resources. Remember that the back-end places high priority on system availability and efficiency. As a result, we have to program the system to re-order and queue demand properly, helping ensure there aren’t going to be too many calls at any given time that could blow out the system and cause it to error out of functionality.

For online e-commerce, that might look like an inventory report that runs the same time every day, or multiple times per day when demand isn’t high. Or maybe an automatic email message that the system sends to a sales manager at the end of each week, providing a summary of customer order demand in hourly increments. Back-end web development writes the report code, then integrates it to the system so that it triggers the desired outputs, on the correct day, at the correct time, based on a time reference service.

Illustration of simulated computer program code, overlayed with text reading: Log4J vulnerability CVE-2021-44228

Implementing Security

The information that a system and user (client) send back and forth over the internet are broken up into data packets. If a user logs onto your website, the back-end issues them a security token that is based on their login and password. Each time the user makes a request of the system, the data packets they send include the token right in front, whose code helps to validate they are who they say they are. All of the considerations and steps involved in this exchange are programmed into the system by the back-end web development team, so that high adherence to established security protocols can be maintained.

What areas of knowledge are most useful for fulfilling back-end web development tasks?

The evolving menu of programming languages and frameworks requires back-end web development teams to stay nimble, while maintaining a full understanding of pros or cons to each approach. Let’s use a dinner analogy to illustrate.

The environment

Imagine you are hosting close friends and family for a special meal, where you want to cook something everyone will like. You think about allergies, food restrictions, personal preferences, seasonality, and many other things to determine the ingredients needed. Similarly, for a back-end web development project, you consider key elements involved, including:

  • Constants and variables
  • Input and output
  • Operations
  • Conditions and selections
  • Loops and iterations
  • Subroutines and modules

These define the environment, which is the who/what/when/where of our project, or in this analogy, the meal.

The ingredients

After you have sized up the key elements of the environment, then you consider the programming approach that will work best under those circumstances. This language or approach is like the raw materials of a certain dish, akin to ingredients. But instead of cheese, sauce, meat and pasta for spaghetti, you have programming languages like:

The recipe

These languages each build a slightly different tasting spaghetti, depending on how you use them (like a recipe). The spaghetti recipe is a framework, like NodeJS, .NET and Angular to name a few. One calls for Italian sausage, one calls for ground beef, one is a shrimp scampi, and so on.

Photograph of a rustic white bowl of savory spaghetti topped with fresh basil leaves.

Setting the table

As you are cooking up your tasty spaghetti, the next consideration is where everyone will sit. After all, your meal has to be served on dishes on a table in order to be consumed. Similarly, data is accessed and written to database tables, accessible through queries. A key consideration now is whether to use a:

  • relational database like Oracle or SQL (lots of small tables that are linked together); or
  • non-relational database like ElasticSearch (one or two large tables with lots of columns and rows)

This is one of those decisions for back-end web development that can really make or break system performance. Be sure to select the right type of database, so that your data is available and can be served as efficiently and securely as possible.

The room

The final item is where the system will be hosted. Imagine you are having that spaghetti dinner with friends in your living room, and a roommate keeps coming in and out of the front door, interrupting the conversation. Or let’s say you are having it in a dining room… but your daughter (who doesn’t like spaghetti) is over in the corner, loudly playing on her tablet, while your group is trying to enjoy the meal.

Like the meal, there are performance and preference considerations involved with where data will be served from. Dedicated hosting, whether it is on-premises or in a datacenter, may be more expensive but necessary for the particular needs of a company. However, a cloud web hosting platform at a data center may better meet all of the needs and be less expensive. By clearly understanding the benefits and challenges to hosting the site or app through Azure, Amazon Web Services (AWS) or Google Cloud Platform (GCP), back-end web development teams can build a system functioning at the prescribed standards of availability, efficiency and security.

Photograph of black server data center cabinets filled with file servers in hallway.

Four questions to ask when you are deciding how the back-end will work

As back-end web development engineers, we design, build, deploy and administer systems that move data according to a specification. Like a proud cook in the kitchen, we love getting rave review for the meals we make. But with all the requisite knowledge and a clear understanding of the initial environment, things can still change – especially over time. Therefore, we consider scalability and how user needs will evolve. To get things started on the right foot and help avoid issues down the road that require mitigation, these are four questions to ask at the onset of your project:

  1. Do you need calculations and analysis? General static information that doesn’t change is far simpler to program into the system, than user inputs that convert into returned values. Consider what will need to be calculated, how it will be returned, and then what it will be used for. This can impact everything from a language used, all the way to where data is hosted.
  2. Do you need to store information and what type? For instance, there are laws in different countries that impact how data is stored, where it is stored, and how long it must be kept, like GDPR. Electronic messages, financial transaction information, user identification information, and healthcare details are just a few examples of data that each come with their own specific security requirements.
  3. Do you need login roles and responsibilities? Beyond the security aspects of usernames, passwords and policies, there are other implications to be considered. Things like hierarchy and access can impact how code is written, and even how whole sites are structured. For instance, we’ve seen systems that need several levels of back-end administration for in-house management, along with several levels of customer access (master account, secondary account, and so on). Knowing who everyone is and what they need to do is critical.
  4. Do you have third-party integrations? Although you can still find individual hobby sites out there made of static HTML pages, they aren’t built for ecommerce traffic. Nowadays, all enterprise systems consist of multiple, layered and coordinated technologies that render pages on the fly. Some of those systems fall directly in a company’s purview, and others are developed by other companies who offer access to their database or application for a fee or free. If data flows in one direction or back and forth between one or more outside sources, that needs to be included in the decision-making process.

Conclusion

Keeping the system back-end’s data available, efficient and secure ultimately starts with the right build from the beginning. Effective back-end web development teams apply best practices for security and storage, including standards like OWASP (intrusion prevention), as well as recommended methodologies from suppliers and programming communities. Links to articles related to back-end web development are below for your convenience. If you are interested in learning more about how our back-end web developers build best-in-class websites and web applications, contact us today to schedule a call.

Related Content

 

Published on: August 01, 2022 by Robert Glenn, Senior Software Developer