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

Combinational Optimization Problem

The Knapsack problem is a classic optimization problem in computer science and mathematics. It belongs to a class of problems known as combinatorial optimization problems. The basic idea of the...

Category design

Optimize Java App Performance

When dealing with a monolithic Java application under heavy concurrent load that leads to issues like too many opened data pools, excessive resource consumption, performance degradation, and even system crashes,...

What are the Software Design Principles

Software design principles are guidelines and best practices that help software developers create high-quality, maintainable, and efficient software. Here are some commonly recognized software design principles:

What are the Soft Skills in Software Development

Soft skills are the personal attributes that enable individuals to interact effectively and harmoniously with others. In software development, having strong soft skills is just as important as technical skills....

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

Building a REST API Client

This guide walks you through creating a client application that consumes a RESTful web service.

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 gives 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...

Category startup

Best Startup Ideas to Make Money

There are many ideas that could be suitable for starting a successful startup, and the ideal one will depend on various factors such as your interests, skills, market demand, and...

Category Project

Web Dev Project Breakdown

Breaking down a large web development project into tasks is essential for effective project management. Here’s a step-by-step guide to help you with the process:

Category data structures

Data Structures: The Foundation of Efficient Programming

In the realm of computer science, data structures serve as the cornerstone of efficient and organized data manipulation. They provide a systematic framework for arranging and managing data, enabling programmers...

Category programming

Enum, Flags and bitwise operators

Java enums, bit flags, and bitwise operations are powerful features that can greatly enhance the functionality and efficiency of your code. Understanding how to leverage these features effectively can lead...

Understanding the Basics of Generics in Java

Generics in Java provide a powerful and flexible way to create classes, interfaces, and methods that can work with different data types while ensuring type safety. Introduced in Java 5,...

An Introduction to Functional Programming in Java

Functional programming is a programming paradigm that treats computation as the evaluation of mathematical functions and avoids changing-state and mutable data. While Java is traditionally seen as an object-oriented language,...