DevOps and SDLC

Software engineering is the use of engineering fundamentals within the field of software development. The primary goal is the creation, improvement, and maintenance of software. Software engineering takes into account engineering concepts, such as rigorous testing, the hardware and software environment, and systematic discovery.

Section Menu

How do I use this section?

1. LESSON

What is DevOps?

Back in the day, to craft a robust software application, developers dove deep into the heart of the problem the software aimed to solve. They would often start with something like a pseudo-code or flowchart: START INPUT: User requirements PROCESS: Analyze and design solution OUTPUT: Software application END This demanded an in...

2. LESSON

Waterfall vs. Agile Software Development

When it comes to software development, there are always crucial decisions the development team has to make in the beginning of the development process, regarding the principles and technologies that they will use. Everyone has different opinions, and often come to disagreements, especially when having to choose a project management methodology. T...

3. LESSON

What is Github? A Git Tutorial

In this lesson, we will learn about managing source code, with a focus on following key points: What are version control systems? Understanding git workflow using examples. Understanding remote code hosting provided by GitHub. Often while working with code, you encounter a situation when you wa...

4. LESSON

Git Commands Cheat Sheet

What is Git? In the past decades, software engineering started to become more complex than ever, requiring larger project structures, and more collaborators on the same project. These advancements in technology and software development showed an increased need of a version control system. This type of system is responsible for changes track...

5. LESSON

Introduction to CI/CD and Pipelines

CI/CD pipelines-- where CI stands for Continuous Integration and CD stands Continuous Delivery-- is a software development practice through which all developers make code changes to a central depository multiple times a day. It automates the entire software release process. The pipeline builds code, runs test cases (continuous **inte...

6. LESSON

Configuration as Code: Why and How?

Managing the configuration settings of an application is an increasingly important aspect of modern software development. These configurations used to be stored with their associated application code repositories and any changes required a new version of the code to be deployed, even if a single configuration needed to be changed. As teams nowada...

7. LESSON

Understanding Jenkins and Its Pipelines

Unveiling the Magic of Jenkins: Mastering CI/CD Pipelines The world of Continuous Integration and Continuous Deployment (CI/CD) is a realm where code changes transform into features, almost like spells turning frogs into princes. But, how does one master this arcane art? Enter Jenkins, your wand for automating, building, testing, and deploying...

8. LESSON

What is a Container? A Docker Tutorial

Embarking on a Journey with Docker: Understanding Its Essence Why Docker? The Fundamental Question Before we dive into the nuts and bolts of Docker, let's first examine the "why" behind it. Understanding the problem that Docker solves will give you a much deeper comprehension of its significance in software development, far beyond the sup...

9. LESSON

Building and Using Docker Containers and Images

Setting the Stage: A Refresher on Docker and Its Ecosystem Docker Unpacked: More Than Just a Definition Before we delve into the art of building containers and images with Docker, let's take a moment to revisit what Docker actually is and what it brings to the table. Docker is an open-source tool designed to facilitate the building, d...

10. LESSON

Docker Interview Questions

Introduction As Docker continues to gain popularity as a containerization tool for developing, deploying, and managing applications, it's no surprise that it has become a hot topic in the tech...

11. LESSON

Debugging and Profiling 101

One of the most important steps in the software development process is to detect and identify the origin of errors, so that they can be eliminated. These errors can include memory leaks, different kinds of exceptions, or even just business logic mistakes, and can be identified during the debugging process, using the proper debugging tools - de...

12. LESSON

Linux Interview Questions

Introduction Linux is an open-source, Unix-like, freely-distributable computer operating system (OS) built around the Linux Kernel. This operating system is responsible for managing the system’s hardware and resources, such as its CPU, memory, and storage, _as well as managing the communication betwe...

13. LESSON

Linux Bash Commands Cheat Sheet

In this lesson, we will learn about bash and its basic commands, with a focus on the following key points: Getting an introduction to bash and its commands. Understanding how to perform operations using the command line. Computers provide two kinds of interfaces to the user: Graphical User Inter...

14. LESSON

Introduction to Security in Software Development

Security risks in software applications are all around. Especially in these times of constant cyberattacks happening every minute, they can affect everyone — including individuals, businesses, and governments. For that reason, ensuring security in software development is essential. Cybercriminals are constantly looking for ways to use the vulnera...

15. LESSON

Web Application Security Principles

We use web applications for so many things in everyday life. Thus, several times a day, we find ourselves inputting sensitive information into many different types of online channels. As developers, we face a lot of challenges, of which security is both important and often underrated. Because of that, we should be dedicated to making more of an e...

16. LESSON

Introduction to Network Topologies

Network topology is the way a network is arranged, including the > physical or logical description of how links and nodes are set up to > relate to each other. The configuration or topology of a network plays an important role in its performance. There are many possible ways for arranging a network, and all come with different advantages and di...

17. LESSON

Introduction to Kubernetes

What is an orchestration system? Kubernetes, in its most common usage, is a container orchestration system. Of course, we need to define what that means! Look no further: > An orchestration system provides automated configuration, > coordination and management of complex computing networks, systems and > services. So these systems a...

18. LESSON

Introduction to Data Cleaning and Wrangling

The Importance of High-Quality Data In the modern business landscape, data is often considered the lifeblood of an organization. Industries like banking, insurance, retail, and telecommunications heavily rely on data to drive performance and gain a competitive edge. The Cost of Poor Data Imagine you're an archer, and your data is the bo...

19. LESSON

Hands-On With Terraform Tutorial

Introduction to Terraform What is Terraform? Terraform is an open-source infrastructure as code (IaC) tool that automates the provisioning, management, and destruction of infrastructure across a variety of cloud providers and on-premises environments. Terraform uses a declarative language to define the desired state of your infrastructure...

20. LESSON

What is DNS and How Does It Work?

The Domain Name System (DNS) is a critical component of the internet, allowing users to access websites and other online resources by using simple names rather than long strings of numbers. Let's go deeper and learn more about DNS. What is DNS? The Domain Name System (DNS) is a server-based network that converts human-readable domain names...

21. LESSON

Logging with the ELK Stack

A Comprehensive Guide to Centralized Logging with the ELK Stack Why Logging Matters The Vital Role of Logging Logging serves as the central nervous system of modern software applications. Think of it as th...

22. LESSON

Monorepo vs Polyrepo: A Comparison

Introduction: Navigating the Monorepo vs. Polyrepo Maze Welcome to the world of code repositories! Imagine your codebase as a library: would you prefer one massive room containing all books and resources or multiple specialized rooms? This question brings us to the crossroads between Monorepo and Polyrepo architectures. What is a...

23. LESSON

Azure Interview Questions

Introduction Azure is a cloud computing platform headed by Microsoft that offers a large spectrum of services ranging from storage to analytics and networking. But, what is cloud computing first of all? Well, to put it simply, _cloud computing is the use of technological resources to store, retrieve, and pr...