A basic guide into the Back-End Software Developer technology stacks

Software Engineering is defined as “the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software; that is, the application of engineering to software” (Fenton, N., Pfleeger, S., Glass, R, 1994). It should be noted, for organisations to attract and retain talent, they must ensure the tools, programming languages, and technologies align with their work but also, organisations are invested in educating them in the latest technology trends. Productive developers could help reduce costs, increase profits, and improve product quality. Retaining talent is especially important because high turnover introduces challenges with software quality when important knowledge is lost (P. C. Rigby, Y. C. Zhu, S. M. Donadelli, and A. Mockus, 2016). In this blog, I will be discussing the basic technology stacks back end Software Engineers use to build applications.

Programming Language

A programming language is a formal language comprising of a set of instructions that produce various kinds of output. Programming languages are used in computer programming to implement algorithms. Most programming languages consist of instructions for computers. Examples include Java, .NET, Python, C#, etc.

Framework and Libraries

A web framework (WF) or web application framework (WAF) is a software framework that is designed to support the development of web applications including web services, web resources, and web APIs. Web frameworks provide a standard way to build and deploy web applications on the World Wide Web. Web frameworks aim to automate the overhead associated with common activities performed in web development. For example, many web frameworks provide libraries for database access, templating frameworks, and session management, and they often promote code reuse. Examples include Spring Boot, Django, ASP.Net Core, etc.

Testing Tools

Software testing can be defined as products that support various test activities starting from planning, requirement gathering, build creation, test execution, defect logging and test analysis. Back-end testing elements include testing the Database, API’s and Servers. These testing tools are mainly used for testing software firmness, thoroughness, and other performance parameters. The most popular tool used for API testing is SOAPUI.

Database

Open source databases are free community databases with the source code available to the general public to use and may be modified or used in their original design. Popular examples of open source databases include MySQL, PostgreSQL and MongoDB.

Integrated Development Environment (IDE)

An integrated development environment is a software application that provides comprehensive facilities to computer programmers for software development. An IDE normally consists of at least a source code editor, build automation tools and a debugger. For example, Python IDE’s can include IDLE, PyCharm, Eclipse, etc.

CI/CD

Continuous delivery (CD) is to package and deploy what CI is to build and test. Teams practicing CD can build, configure, and package software and orchestrate its deployment in such a way that it can be released to production in a software-defined manner (low cost, high automation) at any time. For example, Maven is a dependency management and build automation tool from the Apache Software Foundation. Based on the concept of a project object model (POM), Maven can manage a project’s build, reporting and documentation from a central piece of information.

Monitoring and Logging

Logging is a method of tracking and storing data to ensure application availability and to assess the impact of state transformations on performance. Monitoring is a diagnostic tool used for alerting DevOps to system-related issues by analysing metrics.

Cloud Platform

Amazon Web Services (AWS) is a secure cloud services platform, offering computer power, database storage, content delivery and other functionality to help businesses scale and grow. Running web and application servers in the cloud to host dynamic websites.

Servers

A server is a software or hardware device that accepts and responds to requests made over a network. The device that makes the request, and receives a response from the server, is called a client. On the Internet, the term "server" commonly refers to the computer system that receives requests for a web files and sends those files to the client. Application Server examples include IBM, Tomcat, Oracle WebLogic, etc.

Version control

Version control, also known as source control, is the practice of tracking and managing changes to software code. Version control systems are software tools that help software teams manage changes to source code over time. The best version control systems include GitHub, GitLab, Beanstalk, Apache Subversion, etc.