<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Sadman Kabir Soumik</title>
    <link>https://blog.sksoumik.com/</link>
    <description>Recent content on Sadman Kabir Soumik</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en</language>
    <copyright>Copyright © 2022, Sadman Kabir Soumik</copyright>
    <lastBuildDate>Wed, 12 Aug 2026 18:00:00 +0000</lastBuildDate><atom:link href="https://blog.sksoumik.com/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Memory Systems in Agentic AI: Procedural, Semantic, and Episodic Memory</title>
      <link>https://blog.sksoumik.com/artificial-intelligence/memory-systems-agentic-ai/</link>
      <pubDate>Wed, 12 Aug 2026 18:00:00 +0000</pubDate>
      
      <guid>https://blog.sksoumik.com/artificial-intelligence/memory-systems-agentic-ai/</guid>
      <description>
        
          
            Large Language Models are good at understanding text and generating answers.
But there is an important problem.
By default, an LLM does not truly remember everything that happened before.
Imagine you talk to an AI assistant today and tell it:
I prefer short answers and I usually work with Python.
Tomorrow, you start a new conversation.
If the system has no memory, the assistant may know nothing about that previous conversation.
          
          
        
      </description>
    </item>
    
    <item>
      <title>How vLLM Works for Serving Large Language Models</title>
      <link>https://blog.sksoumik.com/artificial-intelligence/how_vllm_works_for_serving_llms/</link>
      <pubDate>Fri, 15 May 2026 00:00:00 +0000</pubDate>
      
      <guid>https://blog.sksoumik.com/artificial-intelligence/how_vllm_works_for_serving_llms/</guid>
      <description>
        
          
            You have downloaded an open source Large Language Model.
Maybe it is Llama, Qwen, Gemma, or another model.
You load it on an NVIDIA GPU and send a prompt:
1What is the capital of Bangladesh? The model answers:
1The capital of Bangladesh is Dhaka. Everything works.
But then 100 users start sending requests at the same time.
Suddenly things become harder.
Some requests wait.
GPU memory fills up.
Your expensive GPU may not be used efficiently.
          
          
        
      </description>
    </item>
    
    <item>
      <title>How to Make LLM Inference Faster</title>
      <link>https://blog.sksoumik.com/artificial-intelligence/how-to-make-llm-inference-faster/</link>
      <pubDate>Sun, 12 Apr 2026 00:00:00 +0000</pubDate>
      
      <guid>https://blog.sksoumik.com/artificial-intelligence/how-to-make-llm-inference-faster/</guid>
      <description>
        
          
            Running a Large Language Model is easy.
Running it fast, at scale, and without wasting expensive GPUs is much harder.
Imagine you deploy an open source LLM on an NVIDIA A100 GPU. Your API works, but users sometimes wait several seconds before they see the first word. When many users arrive at the same time, things get even slower.
Buying more GPUs is one solution.
But it is often not the best first solution.
          
          
        
      </description>
    </item>
    
    <item>
      <title>Kubernetes Made Simple: How GKE Runs and Scales Applications on GCP</title>
      <link>https://blog.sksoumik.com/cloud-computing/kubernetes-made-simple/</link>
      <pubDate>Mon, 16 Feb 2026 00:00:00 +0000</pubDate>
      
      <guid>https://blog.sksoumik.com/cloud-computing/kubernetes-made-simple/</guid>
      <description>
        
          
            Kubernetes can feel confusing when you first learn it.
You hear words like:
Cluster Node Pod Deployment Service Replica Autoscaling Load Balancer Then someone shows you a huge YAML file.
Suddenly Kubernetes looks much harder than it really is.
The basic idea is actually simple.
Kubernetes is a system that helps you run and manage containers across many machines.
In Google Cloud, the managed Kubernetes service is called Google Kubernetes Engine, usually called GKE.
          
          
        
      </description>
    </item>
    
    <item>
      <title>Building Multi Agent AI Systems: From Orchestration to Production</title>
      <link>https://blog.sksoumik.com/artificial-intelligence/building-multi-agent-ai-systems/</link>
      <pubDate>Thu, 15 Jan 2026 18:00:00 +0000</pubDate>
      
      <guid>https://blog.sksoumik.com/artificial-intelligence/building-multi-agent-ai-systems/</guid>
      <description>
        
          
            Building one AI agent is relatively easy.
You give an LLM some instructions, connect a few tools, and let it perform a task.
For example:
1User 2 ↓ 3Agent 4 ↓ 5LLM 6 ↓ 7Tools 8 ↓ 9Answer But imagine the task becomes much larger.
You want an AI system that can:
Understand a complex request Break the request into smaller tasks Search the web Read internal documents Write code Analyze data Ask another agent for help Remember previous work Check its own results Ask a human before taking risky actions Continue working even when one step fails One agent can try to do everything.
          
          
        
      </description>
    </item>
    
    <item>
      <title>MCP Servers Explained - Connect Your AI Tools to Everything</title>
      <link>https://blog.sksoumik.com/artificial-intelligence/mcp-servers-guide-ai-tools-integration/</link>
      <pubDate>Sun, 11 Jan 2026 00:00:00 +0000</pubDate>
      
      <guid>https://blog.sksoumik.com/artificial-intelligence/mcp-servers-guide-ai-tools-integration/</guid>
      <description>
        
          
            Author: Sadman Kabir Soumik
What is MCP? MCP stands for Model Context Protocol. It is an open standard created by Anthropic in November 2024. Think of it as a universal plug that connects AI tools (like Claude Code or Cursor) to external data sources and services.
Before MCP, if you wanted your AI coding assistant to access your database, you needed to build a custom connection. If you also wanted it to access GitHub, you needed another custom connection.
          
          
        
      </description>
    </item>
    
    <item>
      <title>How LLM Post Training Works: SFT, Preference Training, Reinforcement Learning, and Distillation</title>
      <link>https://blog.sksoumik.com/artificial-intelligence/how-llm-post-training-works/</link>
      <pubDate>Sun, 14 Dec 2025 18:00:00 +0000</pubDate>
      
      <guid>https://blog.sksoumik.com/artificial-intelligence/how-llm-post-training-works/</guid>
      <description>
        
          
            Training a large language model usually happens in more than one stage.
The first stage is pretraining.
This is where the model learns language, facts, patterns, coding concepts, reasoning patterns, and many other things from a very large amount of data.
But a pretrained model is not automatically a good assistant.
It might know a lot, but it may still struggle to follow instructions, answer in the right format, understand human preferences, or behave the way we want.
          
          
        
      </description>
    </item>
    
    <item>
      <title>Types of LLM Architectures</title>
      <link>https://blog.sksoumik.com/artificial-intelligence/different-types-of-llms-architectures/</link>
      <pubDate>Tue, 18 Mar 2025 00:00:00 +0000</pubDate>
      
      <guid>https://blog.sksoumik.com/artificial-intelligence/different-types-of-llms-architectures/</guid>
      <description>
        
          
            Let&#39;s first break it down: what exactly are large language models (LLMs), why do we call them &#39;large,&#39; and how are they different from other types of language models?
An LLM is a machine learning model trained on massive amounts of text using transformer-based architectures (or their variations). These models can generate, understand, and process human-like text, making them useful for tasks like translation, summarization, reasoning, coding etc,.
How is an LLM different from other language models?
          
          
        
      </description>
    </item>
    
    <item>
      <title>How Generative AI Works - ChatGPT, Midjourney, and Dall-E Demystified</title>
      <link>https://blog.sksoumik.com/artificial-intelligence/generative-ai-explained-chatgpt-midjourney-dalle/</link>
      <pubDate>Tue, 07 Mar 2023 00:00:00 +0000</pubDate>
      
      <guid>https://blog.sksoumik.com/artificial-intelligence/generative-ai-explained-chatgpt-midjourney-dalle/</guid>
      <description>
        
          
            Author: Sadman Kabir Soumik
What is Generative AI? Generative AI is a subset of artificial intelligence that creates completely new content, like images, videos, music, and text. It uses machine learning to find patterns in existing data and make new content based on these patterns. There are many great generative AI tools today, like -
ChatGPT (talking to a smart chatbot) DALL-E and MidJourney (they can create pictures) GitHub Copilot (coding assistant) How does Generative AI work?
          
          
        
      </description>
    </item>
    
    <item>
      <title>Brute-Force to Optimized Python Solutions for All LeetCode Blind-75 Problems</title>
      <link>https://blog.sksoumik.com/software-engineering/optimized-python-solutions-blind-75-leetcode/</link>
      <pubDate>Sun, 26 Feb 2023 00:00:00 +0000</pubDate>
      
      <guid>https://blog.sksoumik.com/software-engineering/optimized-python-solutions-blind-75-leetcode/</guid>
      <description>
        
          
            Blind-75 is a curated list of 75 LeetCode problems compiled by Yangshun Tay. The list can be accessed at this link.
Initially, I solved each problem using a brute-force approach, which often resulted in a Time Limit Exceeded (TLE) error. Then, I solved each problem with an optimized method that was accepted on LeetCode. For every problem on the list, I have provided both the naive brute force solution and an optimized solution.
          
          
        
      </description>
    </item>
    
    <item>
      <title>Building an MLOps Pipeline with Apache Airflow (Part 1)</title>
      <link>https://blog.sksoumik.com/artificial-intelligence/airflow-machine-learning-pipeline/</link>
      <pubDate>Fri, 17 Feb 2023 00:00:00 +0000</pubDate>
      
      <guid>https://blog.sksoumik.com/artificial-intelligence/airflow-machine-learning-pipeline/</guid>
      <description>
        
          
            Author: Sadman Kabir Soumik
Let&#39;s first understand what&#39;s MLOps.
What is MLOps? MLOps (Machine Learning Operations) is a set of practices and tools used to manage the entire lifecycle of machine learning models. MLOps includes everything from data preparation and model training to deployment, monitoring, and ongoing maintenance.
The primary goal of MLOps is to create a streamlined and automated process for deploying and managing machine learning models at scale.
          
          
        
      </description>
    </item>
    
    <item>
      <title>From RNN to Transformers (Without Math Jargon)</title>
      <link>https://blog.sksoumik.com/artificial-intelligence/from-rnn-to-transformers-without-math/</link>
      <pubDate>Mon, 30 Jan 2023 00:00:00 +0000</pubDate>
      
      <guid>https://blog.sksoumik.com/artificial-intelligence/from-rnn-to-transformers-without-math/</guid>
      <description>
        
          
            Transformer-based models are a types of neural network architecture that uses self-attention mechanisms to process input data. They were introduced in the paper &amp;quot;Attention Is All You Need&amp;quot; by Ashish Vaswani, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion Jones, Aidan N. Gomez, Lukasz Kaiser, Illia Polosukhin in 2017, and have since become a popular choice for many natural language processing task.
Prerequisite: Before going further, I assume that you have a basic understanding of how neural networks work.
          
          
        
      </description>
    </item>
    
    <item>
      <title>How to Achieve Perfect Selfie Segmentation and Background Removal</title>
      <link>https://blog.sksoumik.com/artificial-intelligence/removing-background-selfie-segmentation/</link>
      <pubDate>Mon, 16 Jan 2023 00:00:00 +0000</pubDate>
      
      <guid>https://blog.sksoumik.com/artificial-intelligence/removing-background-selfie-segmentation/</guid>
      <description>
        
          
            Project Goal The project aims to perform image segmentation on selfie images, see how we can blur the image&#39;s background, and even replace the background with some other solid colour like black.
We will use a framework called MediaPipe to accomplish this task.
About MediaPipe MediaPipe is an open-source framework developed by Google that allows developers to build and deploy cross-platform multimodal machine learning models. The framework provides a set of reusable components for tasks such as object detection, hand tracking, facial landmark detection, and gesture recognition.
          
          
        
      </description>
    </item>
    
    <item>
      <title>Building an Instagram Auto-Liker Bot - A Step-by-Step Guide</title>
      <link>https://blog.sksoumik.com/software-engineering/building-automated-instagram-liker-bot/</link>
      <pubDate>Thu, 12 Jan 2023 00:00:00 +0000</pubDate>
      
      <guid>https://blog.sksoumik.com/software-engineering/building-automated-instagram-liker-bot/</guid>
      <description>
        
          
            Goal of The Project The project aims to build an Instagram bot that will auto-scroll pages down and Like/Love posts automatically. We must log in to Instagram from our web browser and then run the program.
You will find all the source code in this GitHub repository.
Dependencies 1pip install pyautogui 2# if you are on Linux, you also need to install scrot 3sudo apt-get install scrot Task 1 At first, we need to find the exact RGB value of the love sign on Instagram when the post has already been liked, so that our program doesn&#39;t click on the posts that has been already liked.
          
          
        
      </description>
    </item>
    
    <item>
      <title>Ace Your Data Science Interview - Top Questions With Answers</title>
      <link>https://blog.sksoumik.com/artificial-intelligence/frequently-asked-data-science-interview-qestions/</link>
      <pubDate>Tue, 15 Nov 2022 00:00:00 +0000</pubDate>
      
      <guid>https://blog.sksoumik.com/artificial-intelligence/frequently-asked-data-science-interview-qestions/</guid>
      <description>
        
          
            Can you explain the bias-variance trade-off and how it relates to model performance? Machine learning and statistics have a fundamental concept that requires balancing the model&#39;s bias and variance, known as the bias-variance trade-off. These two types of errors can affect a model&#39;s performance.
Bias, a type of error, occurs when a model makes assumptions about the data that are too simplistic. High bias means the model is too simple to capture the underlying patterns.
          
          
        
      </description>
    </item>
    
    <item>
      <title>Understanding Top 10 Classical Machine Learning Algorithms</title>
      <link>https://blog.sksoumik.com/artificial-intelligence/common-machine-learning-algorithms/</link>
      <pubDate>Wed, 26 Oct 2022 00:00:00 +0000</pubDate>
      
      <guid>https://blog.sksoumik.com/artificial-intelligence/common-machine-learning-algorithms/</guid>
      <description>
        
          
            Before jumping into Deep Learning, one must know the classical/traditional Machine Learning algorithms, because understanding traditional machine learning algorithms can provide a strong foundation in machine learning concepts. These algorithms often involve simple, intuitive concepts that can be helpful in understanding more complex deep learning models.
Traditional machine learning algorithms can be faster to train and easier to interpret than deep learning models. This can be particularly useful in situations where you need to make quick decisions or where it&#39;s important to understand the reasoning behind a model&#39;s predictions.
          
          
        
      </description>
    </item>
    
    <item>
      <title>Cracking the LeetCode Two Sum Variations - All 5 Problems</title>
      <link>https://blog.sksoumik.com/software-engineering/all-leetcode-two-sum-problem-variations-with-python-solutions/</link>
      <pubDate>Fri, 21 Oct 2022 00:00:00 +0000</pubDate>
      
      <guid>https://blog.sksoumik.com/software-engineering/all-leetcode-two-sum-problem-variations-with-python-solutions/</guid>
      <description>
        
          
            Author: Sadman Kabir Soumik
Original Two Sum Problem Given an array of integers nums and an integer target, return indices of the two numbers such that they add up to target. You may assume that each input would have exactly one solution, and you may not use the same element twice. You can return the answer in any order.
1Example 1: 2Input: nums = [2,7,11,15], target = 9 3Output: [0,1] 4Explanation: Because nums[0] + nums[1] == 9, we return [0, 1].
          
          
        
      </description>
    </item>
    
    <item>
      <title>ML Model Compression Techniques - Reducing Size and Improving Performance</title>
      <link>https://blog.sksoumik.com/artificial-intelligence/machine-learning-model-compression-techniques/</link>
      <pubDate>Mon, 10 Oct 2022 00:00:00 +0000</pubDate>
      
      <guid>https://blog.sksoumik.com/artificial-intelligence/machine-learning-model-compression-techniques/</guid>
      <description>
        
          
            There are 4 main approaches you can consider for model compression. They are:
Quantization Pruning Knowledge Distillation Low-Rank Factorization Quantization Quantization is the most general and commonly used model compression method. Quantization reduces a model’s size by using fewer bits to represent its parameters. By default, most software packages use 32 bits to represent a float number (single precision floating point). If a model has 100M parameters and each requires 32 bits to store, it’ll take up 400 MB.
          
          
        
      </description>
    </item>
    
    <item>
      <title>Working with Elasticsearch on Linux Using Python Client</title>
      <link>https://blog.sksoumik.com/software-engineering/elasticsearch-python-client-tutorial/</link>
      <pubDate>Fri, 19 Aug 2022 00:00:00 +0000</pubDate>
      
      <guid>https://blog.sksoumik.com/software-engineering/elasticsearch-python-client-tutorial/</guid>
      <description>
        
          
            Elasticsearch Elasticsearch is a distributed, open-source search and analytics engine based on the Apache Lucene search library. It&#39;s designed to provide fast and scalable search and analysis capabilities for large volumes of data.
At its core, Elasticsearch is a document-oriented database that stores data in JSON format. This allows it to index and search through data quickly and efficiently. Elasticsearch uses a powerful query language called Elasticsearch Query DSL to perform complex search queries on this data.
          
          
        
      </description>
    </item>
    
    <item>
      <title>Core Concepts of System Design in Software Engineering</title>
      <link>https://blog.sksoumik.com/software-engineering/system-design-fundamentals-software-engineering/</link>
      <pubDate>Wed, 20 Jul 2022 00:00:00 +0000</pubDate>
      
      <guid>https://blog.sksoumik.com/software-engineering/system-design-fundamentals-software-engineering/</guid>
      <description>
        
          
            What is System Design in Software Engineering? System design in software engineering is defining the structure, components, connections, and information for a system that meets specific needs. It is a vital step in software development as it outlines how the system will work and be structured. A team of developers usually performs this process with input from business analysts and end-users.
Process of Designing a System To create a good software system, we need to follow these steps:
          
          
        
      </description>
    </item>
    
    <item>
      <title>All 6 Best Time to Buy and Sell Stock Problems Using The Same Formula</title>
      <link>https://blog.sksoumik.com/software-engineering/best_time_to_buy_all_sell_stocks_all_problems/</link>
      <pubDate>Wed, 15 Jun 2022 00:00:00 +0000</pubDate>
      
      <guid>https://blog.sksoumik.com/software-engineering/best_time_to_buy_all_sell_stocks_all_problems/</guid>
      <description>
        
          
            122.Best Time to Buy and Sell Stock II You are given an integer array prices where prices[i] is the price of a given stock on the ith day.
On each day, you may decide to buy and/or sell the stock. You can only hold at most one share of the stock at any time. However, you can buy it then immediately sell it on the same day.
Find and return the maximum profit you can achieve.
          
          
        
      </description>
    </item>
    
    <item>
      <title>Multi-class Text Classification Using Apache Spark MLlib</title>
      <link>https://blog.sksoumik.com/artificial-intelligence/multi-class-text-classification-apache-spark-mllib/</link>
      <pubDate>Tue, 24 May 2022 00:00:00 +0000</pubDate>
      
      <guid>https://blog.sksoumik.com/artificial-intelligence/multi-class-text-classification-apache-spark-mllib/</guid>
      <description>
        
          
            Spark MLlib MLlib is a library for machine learning in Spark that aims to make it easy to use and scalable for practical applications. It includes tools for common ML tasks, such as classification, regression, clustering, and collaborative filtering, as well as featurization methods for feature extraction, transformation, dimensionality reduction, and selection. MLlib also provides tools for building, evaluating, and tuning ML pipelines, as well as utilities for linear algebra, statistics, and data handling.
          
          
        
      </description>
    </item>
    
    <item>
      <title>Keyphrase Extraction with BERT Embeddings and Part-Of-Speech Patterns</title>
      <link>https://blog.sksoumik.com/artificial-intelligence/keyphrase-extraction-techniques-with-bert-embeddings-pos-patterns/</link>
      <pubDate>Thu, 19 May 2022 00:00:00 +0000</pubDate>
      
      <guid>https://blog.sksoumik.com/artificial-intelligence/keyphrase-extraction-techniques-with-bert-embeddings-pos-patterns/</guid>
      <description>
        
          
            Keyphrases are important pieces of information that can be extracted from text documents. These are words or phrases that summarize the main ideas or topics of a text, and they can be useful for a variety of applications, such as document summarization, text classification, and information retrieval. In this blog post, we will explore how keyphrases can be extracted from text documents, and discuss some of the techniques and tools that can be used for this task.
          
          
        
      </description>
    </item>
    
    <item>
      <title>Commonly Used Terms in The Startup Ecosystem</title>
      <link>https://blog.sksoumik.com/beyond-code/commonly-used-terms-startup-ecosystem/</link>
      <pubDate>Wed, 20 Apr 2022 00:00:00 +0000</pubDate>
      
      <guid>https://blog.sksoumik.com/beyond-code/commonly-used-terms-startup-ecosystem/</guid>
      <description>
        
          
            MVP (Minimum Viable Product) The idea of a Minimum Viable Product (MVP) is often used to test a business idea and get feedback from customers, without spending too much time and money on creating a full product.
Burn Rate The term &amp;quot;burn rate&amp;quot; means how quickly a company uses its money. It&#39;s usually calculated every month. To find the burn rate, you add up how much the company spends in a specific time period and divide it by how many months that period is.
          
          
        
      </description>
    </item>
    
    <item>
      <title>Understanding the Role of Data Normalization and Standardization in Machine Learning</title>
      <link>https://blog.sksoumik.com/artificial-intelligence/data-normalization-vs-standardization-machine-learning/</link>
      <pubDate>Sat, 12 Mar 2022 00:00:00 +0000</pubDate>
      
      <guid>https://blog.sksoumik.com/artificial-intelligence/data-normalization-vs-standardization-machine-learning/</guid>
      <description>
        
          
            Why do we scale features? For machine learning, every dataset does not require feature scaling, and it is only needed when features have different ranges.
For example, consider a data set containing two features, age(x1) and income(x2), where age ranges from 0–100, while income ranges from 0–20,000 and higher. Income is about 1,000 times larger than age and ranges from 20,000–500,000. So, these two features are in very different ranges. When we do further analysis, like multivariate linear regression, the attributed income will influence the result more due to its larger value.
          
          
        
      </description>
    </item>
    
    <item>
      <title>Bypass reCAPTCHA And Prevent IP Blocking Using Tor Proxy</title>
      <link>https://blog.sksoumik.com/software-engineering/rotate-ip-with-every-http-request-bypass-recaptcha-tor-proxy/</link>
      <pubDate>Wed, 09 Mar 2022 00:00:00 +0000</pubDate>
      
      <guid>https://blog.sksoumik.com/software-engineering/rotate-ip-with-every-http-request-bypass-recaptcha-tor-proxy/</guid>
      <description>
        
          
            When we run web crawlers, sometimes we get blocked by the target site. Sometimes we get reCAPTCHA to solve, and crawling gets interrupted. We can rotate the IP address with each request to avoid these issues, which solves the IP blocking and reCAPTCHA issues.
This blog is the written version of the video content I published on YouTube. If you prefer watching videos than reading blogs, then you can watch the video.
          
          
        
      </description>
    </item>
    
    <item>
      <title>Chrome Extensions That I Use for Productivity</title>
      <link>https://blog.sksoumik.com/beyond-code/top_chrome_extensions_for_productivity/</link>
      <pubDate>Fri, 04 Mar 2022 00:00:00 +0000</pubDate>
      
      <guid>https://blog.sksoumik.com/beyond-code/top_chrome_extensions_for_productivity/</guid>
      <description>
        
          
            Best way to use extensions is to set keyword shortcuts in chrome://extensions/shortcuts URL. It helps to quickly activate the extension just by using the predefined keyword shortcuts.
Focus To-Do: Pomodoro Timer &amp;amp; To Do List Focus To-Do combines Pomodoro Timer with Task Management, it is an app that will motivate you to stay focused and get things done.
It brings Pomodoro Technique and To Do List into one place, you can capture and organize tasks into your todo lists, start focus timer and focus on work &amp;amp; study, set reminders for important tasks and errands, check the time spent at work.
          
          
        
      </description>
    </item>
    
    <item>
      <title>One-Stage vs Two-Stage Instance Segmentation</title>
      <link>https://blog.sksoumik.com/artificial-intelligence/one-stage-two-stage-segmentation-difference/</link>
      <pubDate>Fri, 04 Mar 2022 00:00:00 +0000</pubDate>
      
      <guid>https://blog.sksoumik.com/artificial-intelligence/one-stage-two-stage-segmentation-difference/</guid>
      <description>
        
          
            In computer vision, image segmentation refers to the process of dividing an image into distinct regions or segments, each corresponding to a different object or background. There are two main approaches to image segmentation: one-stage and two-stage.
One-stage image segmentation methods aim to directly predict a segmentation mask for the entire image in a single pass. These methods are typically faster and more efficient than two-stage methods, but they may be less accurate and less flexible.
          
          
        
      </description>
    </item>
    
    <item>
      <title>How to Automate and Schedule GCP VM Instance</title>
      <link>https://blog.sksoumik.com/cloud-computing/automate-gcp-compute-engine-vm-instance/</link>
      <pubDate>Sat, 12 Feb 2022 00:00:00 +0000</pubDate>
      
      <guid>https://blog.sksoumik.com/cloud-computing/automate-gcp-compute-engine-vm-instance/</guid>
      <description>
        
          
            Suppose you have a script in the Google Cloud’s VM Instance that needs to run every day/week/month at a particular time ( e.g., a data pipeline for Machine Learning model training, data crawling, etc.). In that case, this article will guide you through automating the task.
Different ways you can automate a script on GCP Your script/program can be in any language, but let’s assume we are trying to automate a Python script for simplicity.
          
          
        
      </description>
    </item>
    
    <item>
      <title>Machine Learning Practices - Research vs Production</title>
      <link>https://blog.sksoumik.com/artificial-intelligence/machine_learning_research_vs_production/</link>
      <pubDate>Mon, 10 Jan 2022 00:00:00 +0000</pubDate>
      
      <guid>https://blog.sksoumik.com/artificial-intelligence/machine_learning_research_vs_production/</guid>
      <description>
        
          
            There are several key differences between using machine learning for research and using it for production.
One of the main differences is the focus of the work. Machine learning for research typically focuses on exploring new ideas and techniques, and on advancing the state of the art in the field. In contrast, machine learning for production focuses on building practical, real-world applications that can deliver value to organizations and individuals.
          
          
        
      </description>
    </item>
    
    <item>
      <title>Writing Machine Learning Model - PyTorch vs. TF-Keras</title>
      <link>https://blog.sksoumik.com/artificial-intelligence/writing-model-keras-vs-pytorch/</link>
      <pubDate>Thu, 09 Dec 2021 00:00:00 +0000</pubDate>
      
      <guid>https://blog.sksoumik.com/artificial-intelligence/writing-model-keras-vs-pytorch/</guid>
      <description>
        
          
            PyTorch and Keras are both open-source deep learning frameworks, but they have some significant differences. PyTorch is a low-level framework that allows you to define your own computation graphs, while Keras is a high-level framework that provides a pre-defined set of layers and routines for building deep learning models. This means that PyTorch offers more flexibility and customization, while Keras is easier to use and more accessible to beginners.
Choosing Framework - PyTorch vs.
          
          
        
      </description>
    </item>
    
    <item>
      <title>GPT-3 by OpenAI - The Largest and Most Advanced Language Model Ever Created</title>
      <link>https://blog.sksoumik.com/artificial-intelligence/a_brief_introduction_on_openai_gpt_3/</link>
      <pubDate>Sat, 20 Nov 2021 00:00:00 +0000</pubDate>
      
      <guid>https://blog.sksoumik.com/artificial-intelligence/a_brief_introduction_on_openai_gpt_3/</guid>
      <description>
        
          
            Author: Sadman Kabir Soumik
GPT-3, or Generative Pretrained Transformer 3, is a state-of-the-art language model developed by OpenAI. It has been trained on a massive amount of text data, including books, articles, and websites, to generate coherent and relevant text based on a given context.
GPT-3 is a transformer-based model, which means that it uses a type of neural network architecture called a transformer to process the input text. This allows the model to capture long-range dependencies and generate text that is more coherent and human-like than previous models.
          
          
        
      </description>
    </item>
    
    <item>
      <title>Vanishing Gradient Problem and How to Fix it</title>
      <link>https://blog.sksoumik.com/artificial-intelligence/vanishing-gradient_problem/</link>
      <pubDate>Sun, 24 Oct 2021 00:00:00 +0000</pubDate>
      
      <guid>https://blog.sksoumik.com/artificial-intelligence/vanishing-gradient_problem/</guid>
      <description>
        
          
            What is Vanishing Gradient Problem Neural networks are trained using stochastic gradient descent. This involves first calculating the prediction error made by the model and using the error to estimate a gradient used to update each weight in the network so that less error is made next time. This error gradient is propagated backward through the network from the output layer to the input layer.
As the backpropagation algorithm advances downwards (or backward) from the output layer towards the input layer, the gradients often get smaller and smaller and approach zero, eventually leaving the weights of the initial or lower layers nearly unchanged.
          
          
        
      </description>
    </item>
    
    <item>
      <title>Be a Master at Python Through Some Cool Code Snippets</title>
      <link>https://blog.sksoumik.com/software-engineering/python-code-snippets-tricks-tips/</link>
      <pubDate>Sun, 27 Jun 2021 00:00:00 +0000</pubDate>
      
      <guid>https://blog.sksoumik.com/software-engineering/python-code-snippets-tricks-tips/</guid>
      <description>
        
          
            Combine two lists as a dictionary | dict(zip) Program
1keys = [&amp;#39;a&amp;#39;, &amp;#39;b&amp;#39;, &amp;#39;c&amp;#39;] 2values = [1, 2, 3] 3dictionary = dict(zip(keys, values)) 4print(dictionary) Output
1{&amp;#39;a&amp;#39;: 1, &amp;#39;b&amp;#39;: 2, &amp;#39;c&amp;#39;: 3} Program
1keys = (&amp;#39;name&amp;#39;, &amp;#39;age&amp;#39;, &amp;#39;location&amp;#39;) 2values = (&amp;#39;Soumik&amp;#39;, 26, &amp;#39;Bangladesh&amp;#39;) 3 4new_dict = dict(zip(keys, values)) 5print(new_dict) Output
1# output 2{&amp;#39;name&amp;#39; : &amp;#39;Soumik&amp;#39;, &amp;#39;age&amp;#39; : 26, &amp;#39;location&amp;#39; : &amp;#39;Bangladesh&amp;#39;} Create nested directory Program
1from pathlib import Path 2 3Path(&amp;#34;father/child&amp;#34;).mkdir(parents=True, exist_ok=True) We can also the os module.
          
          
        
      </description>
    </item>
    
    <item>
      <title>Ensemble Techniques in Machine Learning - A Practical Guide to Bagging, Boosting, Stacking, Blending, and Bayesian Model Averaging</title>
      <link>https://blog.sksoumik.com/artificial-intelligence/bagging-boosting-stacking-blending-bayesian-averaging/</link>
      <pubDate>Thu, 10 Jun 2021 00:00:00 +0000</pubDate>
      
      <guid>https://blog.sksoumik.com/artificial-intelligence/bagging-boosting-stacking-blending-bayesian-averaging/</guid>
      <description>
        
          
            There are several types of ensemble techniques in machine learning, including: Bagging, Boosting, Stacking, Blending, Bootstrapped ensembles, Bayesian model averaging.
Bagging Bagging (short for bootstrapped aggregating) is an ensemble technique that involves training multiple models on different subsets of the training data, and then averaging the predictions of the individual models to make the final prediction. This can be done with decision trees, neural networks, or any other type of model.
          
          
        
      </description>
    </item>
    
    <item>
      <title>Python Collections Module Tutorial</title>
      <link>https://blog.sksoumik.com/software-engineering/tutorial-on-python-collections-module/</link>
      <pubDate>Fri, 23 Apr 2021 00:00:00 +0000</pubDate>
      
      <guid>https://blog.sksoumik.com/software-engineering/tutorial-on-python-collections-module/</guid>
      <description>
        
          
            Python&#39;s collections module implements specialized container datatypes providing alternatives to Python’s general purpose built-in containers, dict, list, set, and tuple.
This module has the following containers:
11. Counter() 22. namedtuple() 33. deque() 44. defaultdict() 55. OrderedDict() 66. UserDict() 77. UserString() 88. UserList() 99. ChainMap() In my experience, out of all of these modules Counter, defaultdict, OrderedDict, and deque are the most useful ones. The following section explains how Counter, defaultdict, OrderedDict, and deque works.
          
          
        
      </description>
    </item>
    
    <item>
      <title>Understanding the Differences between Decision Tree, Random Forest, and Gradient Boosting</title>
      <link>https://blog.sksoumik.com/artificial-intelligence/comparing-random-forest-decision-tree-gradient-boosting/</link>
      <pubDate>Sat, 27 Mar 2021 00:00:00 +0000</pubDate>
      
      <guid>https://blog.sksoumik.com/artificial-intelligence/comparing-random-forest-decision-tree-gradient-boosting/</guid>
      <description>
        
          
            Decision Tree, Random Forest (RF), and Gradient Boosting (GB) are three popular algorithms used for supervised learning tasks such as classification and regression. In this blog, we will compare these three algorithms in terms of their features, performance, and usability.
Decision Tree is a simple and intuitive algorithm that can be used for classification and regression tasks. A Decision Tree model is built by recursively partitioning the training data into smaller and smaller subsets based on the values of the input features.
          
          
        
      </description>
    </item>
    
    <item>
      <title>How to design a large scale software system that supports millions of users.</title>
      <link>https://blog.sksoumik.com/artificial-intelligence/designing-large-scale-high-performance-software-systems/</link>
      <pubDate>Fri, 12 Mar 2021 00:00:00 +0000</pubDate>
      
      <guid>https://blog.sksoumik.com/artificial-intelligence/designing-large-scale-high-performance-software-systems/</guid>
      <description>
        
          
            Start With A Simple Architecture To begin building an app, we will start from the beginning. We will create a basic app with some users. The easiest way to do this is to put the whole app on one server. This is a common way to start. The app and any API&#39;s will run on a server like Apache or Tomcat. We will also use a database like Oracle or MySQL.
          
          
        
      </description>
    </item>
    
    <item>
      <title>13 Reasons Why Linux Is Better Than Windows</title>
      <link>https://blog.sksoumik.com/software-engineering/benefits-of-linux-over-windows/</link>
      <pubDate>Thu, 21 Jan 2021 00:00:00 +0000</pubDate>
      
      <guid>https://blog.sksoumik.com/software-engineering/benefits-of-linux-over-windows/</guid>
      <description>
        
          
            Security Linux tends to be a highly reliable and secure system than any other operating system (OS). Linux and Unix-based OS have fewer security flaws, as many developers constantly review the code. And anyone has access to its source code. So, you won’t need any anti-virus software to protect your PC from malware and viruses. The reason it’s secure is that it’s open-source, which means you can see its source code.
          
          
        
      </description>
    </item>
    
    <item>
      <title>Different Word Embedding Techniques for Text Analysis</title>
      <link>https://blog.sksoumik.com/artificial-intelligence/understanding-word-embeddings/</link>
      <pubDate>Fri, 11 Dec 2020 00:00:00 +0000</pubDate>
      
      <guid>https://blog.sksoumik.com/artificial-intelligence/understanding-word-embeddings/</guid>
      <description>
        
          
            Word embedding is a technique in natural language processing (NLP) where words are represented as vectors of real numbers. This allows words with similar meanings to have similar representation, and can be used in various NLP tasks such as machine translation and text classification.
There are several different techniques for word embedding in natural language processing (NLP), including:
TF-IDF — Term Frequency-Inverse Document Frequency TF-IDF (Term Frequency-Inverse Document Frequency) is a technique used in natural language processing to measure the importance of a word in a document.
          
          
        
      </description>
    </item>
    
    <item>
      <title>Lambda, Map, Filter, and Reduce in Python</title>
      <link>https://blog.sksoumik.com/software-engineering/lambda-map-filter-reduce-python/</link>
      <pubDate>Fri, 11 Dec 2020 00:00:00 +0000</pubDate>
      
      <guid>https://blog.sksoumik.com/software-engineering/lambda-map-filter-reduce-python/</guid>
      <description>
        
          
            Lambda The Lambda function, also known as an anonymous or inline function, is a way to create a function without giving it a name. This can be useful when you need to define a function that will only be used once, or when you want to pass a function as an argument to another function.
Here is an example of using a Lambda function in Python:
1# Define a Lambda function that takes two arguments and returns their sum 2sum_func = lambda x, y: x + y 3 4# Call the Lambda function 5result = sum_func(1, 2) # Returns 3 Map The Map function in Python applies a function to each element in a sequence of data.
          
          
        
      </description>
    </item>
    
    <item>
      <title>How A Recurrent Neural Network Works</title>
      <link>https://blog.sksoumik.com/artificial-intelligence/understanding-recurrent-neural-networks/</link>
      <pubDate>Sun, 25 Oct 2020 00:00:00 +0000</pubDate>
      
      <guid>https://blog.sksoumik.com/artificial-intelligence/understanding-recurrent-neural-networks/</guid>
      <description>
        
          
            Recurrent Neural Network A recurrent neural network (RNN), is a type of neural network that can process sequential data, like text, audio, or time series data.
Here&#39;s how it works: first, the RNN takes in some input data, which could be a word in a sentence, a sound wave from an audio recording, or a measurement from a sensor at a specific time. Then, the RNN processes this input and generates an output, which could be a predicted next word in a sentence, a generated audio waveform, or a predicted sensor measurement.
          
          
        
      </description>
    </item>
    
    <item>
      <title>Unleashing the Power of Bit Manipulation in Computer Science</title>
      <link>https://blog.sksoumik.com/software-engineering/bit_manupulation_in_python/</link>
      <pubDate>Fri, 12 Jun 2020 00:00:00 +0000</pubDate>
      
      <guid>https://blog.sksoumik.com/software-engineering/bit_manupulation_in_python/</guid>
      <description>
        
          
            Bit Manipulation Bit manipulation is a technique used in computer science to manipulate data at the level of its binary representation. This can be useful for a variety of tasks, such as low-level optimization, data compression, and cryptography.
At its core, bit manipulation involves working with individual bits, rather than larger units of data such as bytes or words. This is typically done using bitwise operators, which perform operations on the individual bits of a number.
          
          
        
      </description>
    </item>
    
    <item>
      <title>Different Text Cleaning Methods for NLP Tasks</title>
      <link>https://blog.sksoumik.com/artificial-intelligence/nlp-text-cleaning-methods-explained/</link>
      <pubDate>Mon, 04 May 2020 00:00:00 +0000</pubDate>
      
      <guid>https://blog.sksoumik.com/artificial-intelligence/nlp-text-cleaning-methods-explained/</guid>
      <description>
        
          
            Cleaning text for natural language processing (NLP) tasks is an important step that can help improve the performance of your model. In this blog post, we will discuss some common text cleaning techniques and how to apply them to your text data.
The first step in cleaning text for NLP is to remove any noisy or irrelevant information. This can include things like HTML tags, URLs, and other extraneous characters. Removing this information can help the model focus on the relevant content and improve its performance.
          
          
        
      </description>
    </item>
    
    <item>
      <title>Comparing REST API and gRPC - Choosing the Right Web API</title>
      <link>https://blog.sksoumik.com/software-engineering/choosing-right-web-api-rest-grpc/</link>
      <pubDate>Fri, 10 Apr 2020 00:00:00 +0000</pubDate>
      
      <guid>https://blog.sksoumik.com/software-engineering/choosing-right-web-api-rest-grpc/</guid>
      <description>
        
          
            REST (Representational State Transfer) and gRPC are two different techniques for creating web APIs (Application Programming Interfaces).
What is REST API? A popular architectural design for developing web APIs is REST. It is built on the HTTP (HyperText Transfer Protocol) and operates on resources defined by URLs using common HTTP methods including GET, POST, PUT, and DELETE. REST APIs are simple to use with a variety of programming languages and tools since they exchange data using the JSON (JavaScript Object Notation) format.
          
          
        
      </description>
    </item>
    
    <item>
      <title>Compiler vs Interpreter - A Simple Guide for Beginners</title>
      <link>https://blog.sksoumik.com/software-engineering/compiler-vs-interpreter-in-simple-terms/</link>
      <pubDate>Tue, 21 Jan 2020 00:00:00 +0000</pubDate>
      
      <guid>https://blog.sksoumik.com/software-engineering/compiler-vs-interpreter-in-simple-terms/</guid>
      <description>
        
          
            Imagine you’ve written a letter in English, but your friend only speaks Spanish. You’d need someone (or something) to translate it for them, right? In programming, your code is like that letter, and the computer only understands a special language called &amp;quot;machine language&amp;quot; (all 0s and 1s). A compiler and an interpreter are like translators that help the computer understand what you’ve written in languages like Python, C++, or Java.
          
          
        
      </description>
    </item>
    
    <item>
      <title>Dynamic Programming - Step by Step Guide with Examples</title>
      <link>https://blog.sksoumik.com/software-engineering/dynamic-programming-step-by-step-explanation/</link>
      <pubDate>Mon, 23 Dec 2019 00:00:00 +0000</pubDate>
      
      <guid>https://blog.sksoumik.com/software-engineering/dynamic-programming-step-by-step-explanation/</guid>
      <description>
        
          
            Dynamic programming is a method for solving complex problems by breaking them down into smaller subproblems. It is a mathematical optimization technique that is mainly used for solving problems that exhibit the properties of overlapping subproblems and optimal substructure.
The basic idea behind dynamic programming is to solve a complex problem by breaking it down into smaller subproblems, solving each of those subproblems just once, and storing their solutions. The solutions to the subproblems are then used to solve the original problem.
          
          
        
      </description>
    </item>
    
    <item>
      <title>Multi-Threading vs Multi-Processing</title>
      <link>https://blog.sksoumik.com/software-engineering/multi-threading_vs_multi-processing/</link>
      <pubDate>Sun, 24 Nov 2019 00:00:00 +0000</pubDate>
      
      <guid>https://blog.sksoumik.com/software-engineering/multi-threading_vs_multi-processing/</guid>
      <description>
        
          
            Let&#39;s say you&#39;ve got a big school project to do. You need to write a report, paint a picture, and build a model. Here&#39;s how you might tackle the project under different scenarios:
Multi-processing This is like having multiple copies of yourself, each working independently on a different part of the project. One of you is writing the report, another one is painting the picture, and the third one is building the model.
          
          
        
      </description>
    </item>
    
    <item>
      <title>Different Types of Recommendation Systems</title>
      <link>https://blog.sksoumik.com/artificial-intelligence/types-of-recommender-systems-machine-learning/</link>
      <pubDate>Sat, 05 Oct 2019 00:00:00 +0000</pubDate>
      
      <guid>https://blog.sksoumik.com/artificial-intelligence/types-of-recommender-systems-machine-learning/</guid>
      <description>
        
          
            There are several different types of recommender systems, each with its own unique characteristics and applications. Some of the most commonly used types of recommender systems include:
Content-based recommender systems: These systems recommend items to users based on the characteristics of the items themselves. For example, a content-based recommender system for a movie website might recommend movies to users based on the genre, director, or actor.
Collaborative filtering recommender systems: These systems make recommendations to users based on the preferences of similar users.
          
          
        
      </description>
    </item>
    
    <item>
      <title>Understanding Logarithm Function</title>
      <link>https://blog.sksoumik.com/software-engineering/understanding-logarithm-function-computer-science/</link>
      <pubDate>Tue, 06 Aug 2019 00:00:00 +0000</pubDate>
      
      <guid>https://blog.sksoumik.com/software-engineering/understanding-logarithm-function-computer-science/</guid>
      <description>
        
          
            Logarithms are mathematical operations that are the inverse of exponentiation. In other words, if we have a base b and an exponent x, the logarithm of the resulting number y to the base b is x. This can be written as log_b(y) = x.
For example, the logarithm of 1000 to base 10 is 3, because 10^3 = 1000. Similarly, the logarithm of 100 to base 10 is 2, because 10^2 = 100.
          
          
        
      </description>
    </item>
    
    <item>
      <title>Decorators in Python</title>
      <link>https://blog.sksoumik.com/software-engineering/decorators_in_python/</link>
      <pubDate>Mon, 20 May 2019 00:00:00 +0000</pubDate>
      
      <guid>https://blog.sksoumik.com/software-engineering/decorators_in_python/</guid>
      <description>
        
          
            Decorator is a design pattern to extend the functionality of a function without modifying the structure of the original function. Decorators are usually applied to functions using the @decorator syntax, immediately before the function definition.
Example of how to use a decorator to extend the functionality of a function:
1def my_decorator(func): 2 def wrapper(*args, **kwargs): 3 # Do something before the function is called 4 result = func(*args, **kwargs) 5 # Do something after the function is called 6 return result 7 return wrapper 8 9@my_decorator 10def add(x, y): 11 return x + y The add function is decorated with the my_decorator function.
          
          
        
      </description>
    </item>
    
    <item>
      <title>How to Prevent Overfitting in Machine Learning Models</title>
      <link>https://blog.sksoumik.com/artificial-intelligence/tips-to-avoid-overfitting-machine-learning/</link>
      <pubDate>Thu, 09 May 2019 00:00:00 +0000</pubDate>
      
      <guid>https://blog.sksoumik.com/artificial-intelligence/tips-to-avoid-overfitting-machine-learning/</guid>
      <description>
        
          
            Very deep neural networks with a massive number of parameters are very robust machine learning systems. But, in this type of huge network, overfitting is a common serious problem. Learning how to deal with overfitting is essential to mastering machine learning. The fundamental issue in machine learning is the tension between optimization and generalization. Optimization refers to adjusting a model to get the best performance possible on the training data (the learning in machine learning).
          
          
        
      </description>
    </item>
    
    <item>
      <title>Understanding Graph Traversal - BFS vs DFS</title>
      <link>https://blog.sksoumik.com/software-engineering/understanding-graph-traversal-bfs-dfs/</link>
      <pubDate>Tue, 12 Mar 2019 00:00:00 +0000</pubDate>
      
      <guid>https://blog.sksoumik.com/software-engineering/understanding-graph-traversal-bfs-dfs/</guid>
      <description>
        
          
            Breadth-first search (BFS) and depth-first search (DFS) are two algorithms for traversing graphs. These algorithms are used to search for specific nodes or to find the shortest path between two nodes in a graph.
BFS The breadth-first search (BFS) algorithm is a graph traversal algorithm that explores all of the neighbors of a starting node before moving on to any of the neighbor&#39;s neighbors. It is called a &amp;quot;breadth-first&amp;quot; algorithm because it explores the neighbors at each level of the graph before moving on to the next level.
          
          
        
      </description>
    </item>
    
    <item>
      <title>Basic Coding Problems You Must Be Able to Solve As a Computer Science Graduate</title>
      <link>https://blog.sksoumik.com/software-engineering/basic_coding_problems_that_you_must_know_as_a_cse_graduate/</link>
      <pubDate>Fri, 22 Feb 2019 00:00:00 +0000</pubDate>
      
      <guid>https://blog.sksoumik.com/software-engineering/basic_coding_problems_that_you_must_know_as_a_cse_graduate/</guid>
      <description>
        
          
            Check Prime Number A prime number is a positive integer greater than 1 that has no positive integer divisors other than 1 and itself. For example, the first six prime numbers are 2, 3, 5, 7, 11, and 13.
The number 6 is not a prime number because it has more than two positive integer divisors. In fact, the divisors of 6 are 1, 2, 3, and 6.
To determine if a number is prime, you can check if it has any positive integer divisors other than 1 and itself.
          
          
        
      </description>
    </item>
    
    <item>
      <title>Learning the Django Framework Fundamentals</title>
      <link>https://blog.sksoumik.com/software-engineering/understanding-django-framework-python/</link>
      <pubDate>Sat, 05 Jan 2019 00:00:00 +0000</pubDate>
      
      <guid>https://blog.sksoumik.com/software-engineering/understanding-django-framework-python/</guid>
      <description>
        
          
            What&#39;s the architecture of Django framework? The architecture of Django is based on the Model-View-Controller (MVC) pattern, which is a way of organizing code in a web application. In Django, this pattern is modified slightly and is referred to as Model-View-Template (MVT).
Here&#39;s a simple explanation of each component in Django&#39;s architecture:
Model: This component represents the data and database schema of your web application. Models define the structure of your data and provide an API for querying and manipulating that data.
          
          
        
      </description>
    </item>
    
    <item>
      <title>Effective Transfer Learning - A Guide to Feature Extraction and Fine-Tuning Techniques</title>
      <link>https://blog.sksoumik.com/artificial-intelligence/guide-to-transfer-learning-techniques/</link>
      <pubDate>Mon, 21 May 2018 00:00:00 +0000</pubDate>
      
      <guid>https://blog.sksoumik.com/artificial-intelligence/guide-to-transfer-learning-techniques/</guid>
      <description>
        
          
            Transfer learning is a technique in machine learning that allows a model trained on one task to be reused and fine-tuned for another similar task. The idea behind transfer learning is that a model that has already learned to recognize patterns in one set of data can be applied to a different but related problem, allowing the model to learn faster and with less data than if it were trained from scratch.
          
          
        
      </description>
    </item>
    
    <item>
      <title>Understanding Dependency Injection - Real-World Examples and Advantages</title>
      <link>https://blog.sksoumik.com/software-engineering/dependency-injection-real-world-examples-advantages/</link>
      <pubDate>Sat, 10 Feb 2018 00:00:00 +0000</pubDate>
      
      <guid>https://blog.sksoumik.com/software-engineering/dependency-injection-real-world-examples-advantages/</guid>
      <description>
        
          
            Dependency injection is a design pattern that is widely used in software development to promote good software design and make code more flexible and easier to test. In this blog post, we will take a closer look at what dependency injection is, how it works, and its advantages.
What is Dependency Injection? Dependency injection is a technique that allows an object to receive its dependencies (other objects it needs to function) from the outside, rather than creating them itself.
          
          
        
      </description>
    </item>
    
  </channel>
</rss>
