2026

Timeouts, Retries, and Backoff with Jitter

Have you ever wondered when one service calls to another service and you get no response back? its hard to tell of the other side is slow , dead or message got lost. These are 4 …

System design, 3 min

Things I've Read and Love to Share

Over the past months I’ve been collecting the second kind: proverbs from every corner of the world, lines from old novels, letters, small poems, and sentences that made me put my …

Off the clock, 17 min

Mutexes and Semaphores

The first time I ran into a race condition, I spent an entire afternoon convinced my computer was broken. My program counted things. Sometimes the count was right, sometimes it was …

Concurrency, 10 min

Your connection pool is too big or too small.

A few years ago I had an API that got slower and slower as traffic went up, which is normal, except the database was sitting at about 20% CPU the whole time. I stared at query …

System design, 10 min

Where Does Your Login Live? JWT vs Sessions

Ask which one to use and you’ll get two confident camps yelling past each other. Most of the disagreement comes from people comparing them without first being clear on what each …

System design, 4 min

Software Architect (Architecture Characteristics) Part 2

Process architectural characteristics describe where the software development process intersects with architecture. They reflect decisions that affect how easily the system can be …

Architecture & patterns, 3 min

2025

Using Redis with Keyv in NestJS for Caching

Caching is essential for improving performance and reducing database load. With new update on the nestjs , there are few breaking changes modules. One of them is caching. They have …

Code & tools, 2 min

Interface in Typescript

An interface in TypeScript is a powerful way to define the structure of an object. It acts like a contract within your code or a blueprint for an object. When you create an …

Code & tools, 2 min

2024

Advanced Git Commands

In this article, we’ll dive into some of the most powerful and essential Git commands. Whether it’s managing changes, working with tags, rebasing commits, or debugging, these …

Code & tools, 5 min

Binary Search Tree (BST)

Today I wanted to talk about Binary Search Tree (BST). Basically, a binary search tree is a data structure used in computer science for organizing and storing data in a sorted …

Code & tools, 5 min

Design Patterns in software development

Design patterns are essential in software development because they provide proven solutions to common problems, making code easier to understand, reuse, and maintain. They help …

Architecture & patterns, 6 min

SOLID Principles

There are 5 SOLID Principles that is used in software development that helps the developers to maintain, test and extensible the code as it grows. Before we jump into know each of …

Architecture & patterns, 9 min

2019

Working with streams in NodeJS

What are Streams ? Streams are just collections of data that is sent in small chunks, and it also don’t have to fit in memory. Meaning, when dealing with big chunk of data either …

Concurrency, 2 min