Category algorithms

How to Post a Random Tweet using Twitter API

The Twitter API enables developers programmatically posting tweets.

Assemble Parts in Minimum Time

Write a method to calculate the minimum possible time to put the N parts together and build the final product. The input consists of two arguments: numOfParts, an integer representing...

Merge two sorted lists algorithm

A merging algorithm takes two sorted lists as input and produces a single list as output, containing all the elements of the two inputs lists in sorted order.

Big O Notation and Analysis of Algorithms - coding interview

Big O Notation is a mathematical notation that helps us analyze how complex an algorithm is in terms of time and space. When we build an application for one user...

Graphs: Depth-First Search

Depth-First Search (DFS), is an algorithm to search for information in Graphs.

Tree data structure: Binary Search Tree

Tree data structures are non-linear data structures, and they allow us to implement algorithms much faster than when using linear data structures.

Given N, find the smallest number with the same digits

Write a method that, given an original number N, returns the smallest number with the same number of digits.

Category test-driven development

Learning Test-Driven Development

Test-driven development (TDD) is a development approach that emphasizes writing a test before writing the necessary code and then refactoring the code to optimize it.

Category design

UML Diagrams for Java Developers

The Unified Modeling Language is a graphical notation for modeling systems and conveying User software requirements. All developers must understand this notation before starting programming.

SOLID principles: The Open-Closed Principle (Part II)

SOLID principles tell you how to arrange your functions into classes and how those classes should be interrelated.

SOLID principles: The Definitive Guide (Part I)

SOLID principles tell you how to arrange your functions into classes and how those classes should be interrelated.

Category Web APIs

REST API Overview

APIs (Application Programming Interfaces) enable communication and data exchange between systems. Among the various types of APIs, REST (Representational State Transfer) has emerged as a popular architectural style for building...

How to implement Rate Limiting

A rate-limiting system controls the rate of traffic sent or received on a network interface. APIs will use rate-limiting techniques to control how many times application Clients are allowed to...

REST client error handling - 503 Error

The HTTP 503 Service Unavailable server error response code indicates that the server is temporarily not ready to handle the request.

Resolving SSL handshake failure in Java applications

The Secure Socket Layer (SSL) enables a secured connection between a client and a server. SSL Handshake is a set of steps that make it possible for this secured connection...

Spring Boot, OpenAPI3, and OAuth2

This tutorial will show how to integrate OAuth2 with Spring Security in a Spring Boot application with OpenAPI 3.

Documenting a SpringBoot REST API with OpenAPI 3

The main idea for documenting our back-end RESTful APIs is to communicate to third-party developers what our endpoints are doing.

Category Coding Practices

Best practices for writing Clean Code

Clean code can be read and enhanced by a developer other than its original author.

Category distribuited systems

Implementing hot-warm architecture in Elasticsearch for time-series data

Elasticsearch is a distributed real-time document store where every field is indexed and searchable. It provides near real-time search and analysis for all types of data.

Category Object-Oriented

Understanding OOP concepts

Understanding OOP concepts give you a solid foundation for making critical decisions about object-oriented software design.

Category Domain-Driven Design

How to establish an effective ubiquitous language in domain-driven design

A Domain is an area of knowledge associated with a problem we are trying to solve.

Category Language

German vocabulary for Software Engineers

A helpful vocabulary with the most common words when working as a software developer in Germany.

Category Web Performance

File Access Denied in a Cluster with Load Balancing

Load balancing is a process that routes network traffic to a group of backend servers, also known as a server pool. A load balancer is responsible for distributing incoming requests...