Hi, I’m Imran Khan

A Software Engineer passionate about building scalable, efficient, and innovative web solutions. Dedicated to creating seamless digital experiences that make a real-world impact. Based in New York, USA. Read more.
Blueprint architectural drawing

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 built, tested, changed, and delivered. Process architecture Structural architecture Operational architecture Cross-cutting architecture Process Architecture Process architectural characteristics are where software development process intersects with software architect. They reflect with the decisions about the mechanics of building software. Modularity - Split the system into small, well-defined parts so changes stay localized....

January 28, 2026 · 3 min
Puzzle pieces representing architecture characteristics

Software Architect (Architecture Characteristics) Part 1

In software architecture, there are four dimensions. They are interconnected—think of a puzzle made up of small pieces. Each piece has a unique shape, and together they form a complete picture. They are: Architecture characteristics Architecture decisions Logical components Architecture styles In this part, we will talk about the first dimension: Architecture Characteristics. Architecture Characteristics Architecture characteristics form the foundation of a software system’s architecture. Without them, you cannot make good architecture decisions or analyze important trade-offs....

January 27, 2026 · 3 min
Network cables representing parallel processing

Worker Threads vs. Child Processes: Making the Right Choice in Node.js

Worker Threads vs. Child Processes in Node.js: When to Use Which? Early in my career when I first started working with Node.js, I loved how fast and event-driven it was. But then I hit a wall—what happens when my app needs to crunch a lot of data, like processing large files or performing complex calculations? The event loop would freeze, and everything would slow down. That’s when I discovered Worker Threads and Child Processes—two ways to run tasks in parallel without blocking the main thread....

February 24, 2025 · 5 min
Server room with database infrastructure

Using Redis with Keyv in NestJS for Caching

Introduction 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 migrated to Keyv In this post, I’ll show how to integrate Redis caching using Keyv in a NestJS application. Keyv is a simple key-value storage adapter that supports multiple backends, including Redis. First, install Keyv and the Redis adapter:...

February 12, 2025 · 2 min
Social media scrolling on smartphone

Why You Can’t Stop Scrolling: The Algorithm Explained

Introduction: How Social Media Knows What You Want to See Ever wonder why some posts on your social media feed feel like they were picked just for you? It’s not magic, it’s the algorithm at work, quietly learning your interests and connections to serve up content you’ll find engaging. Behind the scenes, it’s piecing together a puzzle based on your actions and interactions. Let’s see how this works in detail …...

January 14, 2025 · 2 min
Programming code on screen

Interface in Typescript

Understanding 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 interface, you specify the properties and their types that an object must have. This helps TypeScript’s compiler to catch errors and ensure that objects always meet the required shape. Why Use Interface? Type Checking: Interface help the compiler check if an object meets the criteria set in the interface....

January 6, 2025 · 2 min
Code editor with version control

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 commands will elevate your version control skills and make complex operations a breeze. Let’s get started! 1. Stashing Changes Stashing allows you to temporarily save your uncommitted changes without committing them. This is useful when you need to switch branches or perform other tasks without losing your current work....

December 14, 2024 · 5 min
Tree structure representing data hierarchy

Binary Search Tree (BST)

Binary Search Tree 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 manner. If you think of a tree, it has many branches. One branch leads to another branch, and that branch splits into others. The same concept applies to a binary search tree. In a BST, each node has at most two children, referred to as the left child and the right child....

July 11, 2024 · 5 min
Building blocks representing design patterns

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 ensure that software is well-structured and robust, reducing the chances of errors and improving development efficiency. for example when building something with lego we make sure everything fits together and works as intended. Same applies to design pattern in software development, they have tried and given proven solutions to the common problems that developers face when building software....

July 2, 2024 · 6 min
Clean code and software principles

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 the S.O.L.I.D acronyms and why we need to apply these principles into our project, first we should know what is SOLID stands for. S - Single Responsibility Principle Its is the first of the five design principle in object oriented design....

June 30, 2024 · 9 min