Skip to content

Category: Software Design

This category includes component design, user experience considerations, algorithmic design, and quality assurance in order to ensure that applications are well-structured, scalable, and efficient.

Strangler Fig Pattern: How to migrate from an old to a better architecture

Reading Time: 3 minutes

Migrating from monolithic apps to efficient ones is a widespread software challenge. Fortunately, there’s a proven strategy that can guide this process, known as the Strangler Fig Pattern. Coined by Martin Fowler, this pattern outlines a gradual approach to migrating a application by iteratively transferring its functionality to a new system. The end result is a more readable, maintainable, and feature-rich application that aligns with modern technology trends.

Forging the One Tech Architecture to Rule Them All

Reading Time: 3 minutes


As Tolkien wrote, “One Ring to rule them all, One Ring to find them, One Ring to bring them all and in the darkness bind them”. Software architecture arise when creating a project with the intention of addressing all current and anticipated code organization problems. However, some programmers tend to use the same architecture that worked for them in previous projects, assuming it will work in the current one, but that is not always correct.

Welcome to the Fighting club today Aggregation vs Extension

Reading Time: < 1 minute

As a junior programmer in object-oriented languages, I learned that extension (or subclassing) eliminates duplicate code. Two subclasses with the same parent and common behavior move that code to the parent, removing it from the children. It became a code reuse mantra, but also one of my early programming vices.