# Posts by Tag

## System Design Compendium

System design is a part of the system development process, focusing on the creation of a comprehensive blueprint for a system to satisfy specified requiremen...

## Trees

a data structure that is constructed with nodes, where each has some value and may point to child-nodes, which recursively form subtrees in the tree.

## Graphs

Graph is a collection of nodes that may or may not be connected to each other.

String

Stacks

## Hash Tables

A data structure that store data in key-value pairs and provides fast insertion, deletion and searching.

Is very similar to array, at least conceptually, to an array.

## Arrays

There are two types of arrays. Static and dynamic ones.

## Logarithm

It’s mathematical concept which is very often used in Computer Science in context of algorithms complexity, it’s even sounds similar 😀

## Big O Notation

The Big O Notation is a mathematical, asymptotic notation that describes time complexity and space complexity of algorithms/ function when the argument tends...

Key Terms

## Data Structures Compendium

Data structures can be seen as instrumental tools used to address a wide array of problems. They frequently encompass complex and mathematical concepts and c...

## Trees

a data structure that is constructed with nodes, where each has some value and may point to child-nodes, which recursively form subtrees in the tree.

## Graphs

Graph is a collection of nodes that may or may not be connected to each other.

String

Stacks

## Hash Tables

A data structure that store data in key-value pairs and provides fast insertion, deletion and searching.

Is very similar to array, at least conceptually, to an array.

## Arrays

There are two types of arrays. Static and dynamic ones.

## Logarithm

It’s mathematical concept which is very often used in Computer Science in context of algorithms complexity, it’s even sounds similar 😀

## Complexity Analysis

It’s a process in which we determine how efficient an algorithm is. There are multiple ways to solve the same issue but the complexity analysis will likely d...

## Unraveling the Schools of Unit Testing: The Classic and London Approaches

There exist two major methodologies when it comes to unit testing. These methodologies guide how much to use mocks, stubs, and the special test implementatio...

## Key Types of Testing in Software Development

Software testing is an integral part of the development process. Each type of testing has its specific purpose and helps ensure the highest quality of the fi...

## Best Practices for Writing Effective and Reliable Tests

Many teams face a common challenge after introducing the practice of writing tests: builds take up to half an hour, refactoring tests prove to be difficult, ...

## Why Are Tests Essential?

Software testing is a fundamental aspect of any successful software development project. It is the process of examining a system or system component to deter...

## The Economics of Software Testing

The Importance of Software Testing in Business

Introduce

## SOLID

The Facade design pattern is a structural pattern that allows for hiding the complexity of a subsystem by providing a simple interface to it. The interface ...

## Builder Design Patter

Builder is a creational design pattern that lets you construct complex objects step by step. The pattern allows you to produce different types and representa...

## Observer Design Patter

The observer pattern is a software design pattern in which an object, called the subject, maintains a list of its dependents, known as observers, and notifie...

## SOLID: The First 5 Principles of Object Oriented Design

SOLID is an acronym for the first five object-oriented design (OOD) principles by Robert C. Martin (also known as Uncle Bob).

## Prefer Composition over Inheritance

Prefer Composition over Inheritance

## Core concepts behind OOP

What does mean object-oriented programming?

Introduce

## SOLID: The First 5 Principles of Object Oriented Design

SOLID is an acronym for the first five object-oriented design (OOD) principles by Robert C. Martin (also known as Uncle Bob).

## Replication And Sharding

The performance of a system often depends on the efficiency of its database. By optimizing the database, the system’s performance can be significantly improv...

In addition to widely known SQL and NoSQL databases, such as document or key-value stores, there are specialized storage paradigms that are well-suited for s...

## SQL vs NoSQL Databases

SQL vs NoSQL Databases: Understanding the Difference and When to Choose Each

## CAP Theorem

What is CAP theorem?

Singleton

## Aggregate Pattern

The Aggregate is one of the main pattern in Domain Driven Design (DDD) introduced by Martin Fowler.

## Custom Assertions with AssertJ

You might have encountered tests that are difficult to read, especially when the failure messages are unclear. In such cases, consider creating your own spec...

Singleton

## Aggregate Pattern

The Aggregate is one of the main pattern in Domain Driven Design (DDD) introduced by Martin Fowler.

## Custom Assertions with AssertJ

You might have encountered tests that are difficult to read, especially when the failure messages are unclear. In such cases, consider creating your own spec...

## Design patterns

The Facade design pattern is a structural pattern that allows for hiding the complexity of a subsystem by providing a simple interface to it. The interface ...

## Builder Design Patter

Builder is a creational design pattern that lets you construct complex objects step by step. The pattern allows you to produce different types and representa...

## Observer Design Patter

The observer pattern is a software design pattern in which an object, called the subject, maintains a list of its dependents, known as observers, and notifie...

## Is Java Pass by Value or by Reference?

Let me answer that question right away, Java is ALWAYS pass by value.

## Depth First Search in Java

Depth First Search [DFS]

Equals() method

## Custom Assertions with AssertJ

You might have encountered tests that are difficult to read, especially when the failure messages are unclear. In such cases, consider creating your own spec...

## What are benefits of testing?

Do I really need tests? Isn’t it a waste of time? These are questions you might have asked once or still find yourself asking. However, the answer is that te...

## Spring Cache

What is Spring Cache? How to configure it in your project and how to use it? How does Spring Cache work? How to add an external provider that allows flexible...

## Spring Bean Scopes

Bean Scopes Define the Runtime Context Availability

## Prefer Composition over Inheritance

Prefer Composition over Inheritance

Introduce

Introduce

## Static Factory Method

In an object-oriented language like Java, what could be wrong with constructors? Overall, nothing. Even so, the famous Joshua Block’s Effective Java Item 1 c...

Introduce

## Is Java Pass by Value or by Reference?

Let me answer that question right away, Java is ALWAYS pass by value.

Key Terms

Singleton

## Aggregate Pattern

The Aggregate is one of the main pattern in Domain Driven Design (DDD) introduced by Martin Fowler.

Singleton

## Aggregate Pattern

The Aggregate is one of the main pattern in Domain Driven Design (DDD) introduced by Martin Fowler.

## Inversion of Control and Dependency Injection

Inversion of Control and Dependency Injection

## What is coupling?

In object-oriented paradigm, Coupling refers to the degree of direct knowledge that one element has of another. We may generally divide coupling to tight and...

Cohesion

## Defining Software Architecture

The software community has been engaged in a longstanding debate over how to define “architecture.” Some believe it refers to the underlying structure of a s...

## What are benefits of testing?

Do I really need tests? Isn’t it a waste of time? These are questions you might have asked once or still find yourself asking. However, the answer is that te...

## What are benefits of testing?

Do I really need tests? Isn’t it a waste of time? These are questions you might have asked once or still find yourself asking. However, the answer is that te...

## Strategy Design Patter

Understanding and Implementing the Strategy Design Pattern

## Custom Assertions with AssertJ

You might have encountered tests that are difficult to read, especially when the failure messages are unclear. In such cases, consider creating your own spec...

## Spring Bean Scopes

Bean Scopes Define the Runtime Context Availability

## Spring Bean Scopes

Bean Scopes Define the Runtime Context Availability

## Spring Bean Scopes

Bean Scopes Define the Runtime Context Availability

## Observer Design Patter

The observer pattern is a software design pattern in which an object, called the subject, maintains a list of its dependents, known as observers, and notifie...

## Spring Cache

What is Spring Cache? How to configure it in your project and how to use it? How does Spring Cache work? How to add an external provider that allows flexible...

## Spring Cache

What is Spring Cache? How to configure it in your project and how to use it? How does Spring Cache work? How to add an external provider that allows flexible...

Comparable.

Comparable.

Comparable.

Equals() method

## Builder Design Patter

Builder is a creational design pattern that lets you construct complex objects step by step. The pattern allows you to produce different types and representa...

DeMorgan’s Laws

DeMorgan’s Laws

BigDecimal

BigDecimal

Introduce

Introduce

Introduce

## Complexity Analysis

It’s a process in which we determine how efficient an algorithm is. There are multiple ways to solve the same issue but the complexity analysis will likely d...

## Big O Notation

The Big O Notation is a mathematical, asymptotic notation that describes time complexity and space complexity of algorithms/ function when the argument tends...

## Arrays

There are two types of arrays. Static and dynamic ones.

Is very similar to array, at least conceptually, to an array.

## Hash Tables

A data structure that store data in key-value pairs and provides fast insertion, deletion and searching.

Stacks

Stacks

String

## Graphs

Graph is a collection of nodes that may or may not be connected to each other.

## Trees

a data structure that is constructed with nodes, where each has some value and may point to child-nodes, which recursively form subtrees in the tree.

## Static Factory Method

In an object-oriented language like Java, what could be wrong with constructors? Overall, nothing. Even so, the famous Joshua Block’s Effective Java Item 1 c...

Introduce

Introduce

Introduce

## Depth First Search in Java

Depth First Search [DFS]

Introduction

Introduction

## What is coupling?

In object-oriented paradigm, Coupling refers to the degree of direct knowledge that one element has of another. We may generally divide coupling to tight and...

## What is coupling?

In object-oriented paradigm, Coupling refers to the degree of direct knowledge that one element has of another. We may generally divide coupling to tight and...

## Concurrency

Those two concepts are often misunderstood or used interchangeably, where they are completely different concepts.

## Parallelism

Those two concepts are often misunderstood or used interchangeably, where they are completely different concepts.

## Inversion of Control and Dependency Injection

Inversion of Control and Dependency Injection

## Inversion of Control and Dependency Injection

Inversion of Control and Dependency Injection

## Prefer Composition over Inheritance

Prefer Composition over Inheritance

The Facade design pattern is a structural pattern that allows for hiding the complexity of a subsystem by providing a simple interface to it. The interface ...

## CAP Theorem

What is CAP theorem?

## Defining Software Architecture

The software community has been engaged in a longstanding debate over how to define “architecture.” Some believe it refers to the underlying structure of a s...

Cohesion

Cohesion

## Java Memory Models

Java Memory Models

## Java Memory Models

Java Memory Models

## Network Protocols

What a protocol is?

## Network Protocols

What a protocol is?

## Latency And Throughput

Latency and throughput are the two most important measures of the performance of a system.

## Availability

What is availability?

## Caching

Caching is utilized to speed up a system and reduce or improve the latency of that system.

## Proxies

Commonly utilized by malicious hackers to mask their identity and disguise their location, these distinct proxy servers also serve a variety of essential rea...

A load balancer can be better understood through a simple use case. Consider a basic client-server architecture where a client sends requests to a server, wh...

## Hashing

Hashing is a process that transforms an arbitrary piece of data into a fixed-size value, typically an integer. In the context of system design, this arbitrar...

## Java Synchronized vs Volatile

Execution Control and Memory Visibility

## Java Synchronized vs Volatile

Execution Control and Memory Visibility

## Java Synchronized vs Volatile

Execution Control and Memory Visibility

## SQL vs NoSQL Databases

SQL vs NoSQL Databases: Understanding the Difference and When to Choose Each

## SQL vs NoSQL Databases

SQL vs NoSQL Databases: Understanding the Difference and When to Choose Each

In most societies, citizens elect their leaders through a voting system. Similarly, in a distributed system, servers utilize a set of algorithms to select a ...

## Peer-To-Peer Networks

Introduction to Peer-To-Peer Networks

## Polling And Streaming

In computing systems, the interaction between clients and servers is fundamental. This interaction often revolves around the client sending requests, and the...

## Rate Limiting

Rate limiting is a pivotal technique employed to manage and control the number of incoming and outgoing requests interacting with a system. Not only does it ...

## Request-Response vs Publish-Subscribe Architecture

Request-Response Architecture Request-Response is a foundational communication pattern primarily utilized in client-server architectures. In this model, a cl...

## Request-Response vs Publish-Subscribe Architecture

Request-Response Architecture Request-Response is a foundational communication pattern primarily utilized in client-server architectures. In this model, a cl...