RSSAmplifier

Blog

Imran Khan

Recent content on Imran Khan

imran-khan.comRSS feed ↗13 posts

Latest posts

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…

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…

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…

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

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…

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…

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…

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…

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…

SOLID PRINCIPLES

T here 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…

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 read or write, the memory usage is less consumed, which is extremely useful. let me show two examples how streams can be optimized the memory consumption. writeStream.js const fs = require('fs'); const file =…

About Hugo

Hugo is the world’s fastest framework for building websites. It is written in Go. It makes use of a variety of open source projects including: https://github.com/russross/blackfriday https://github.com/alecthomas/chroma https://github.com/muesli/smartcrop https://github.com/spf13/cobra https://github.com/spf13/viper Learn more and contribute on GitHub.

About Me

about