<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Stories by Sandip Das on Medium]]></title>
        <description><![CDATA[Stories by Sandip Das on Medium]]></description>
        <link>https://medium.com/@sandipdas?source=rss-c11f2503225b------2</link>
        <image>
            <url>https://cdn-images-1.medium.com/fit/c/150/150/1*i2_JX5pP3ZI7baZaYq71qA.png</url>
            <title>Stories by Sandip Das on Medium</title>
            <link>https://medium.com/@sandipdas?source=rss-c11f2503225b------2</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Sun, 31 May 2026 20:42:09 GMT</lastBuildDate>
        <atom:link href="https://medium.com/@sandipdas/feed" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com" rel="hub"/>
        <item>
            <title><![CDATA[MLOps Day-Wise Roadmap 2025]]></title>
            <link>https://sandipdas.medium.com/mlops-day-wise-roadmap-2025-5f6ed17997cb?source=rss-c11f2503225b------2</link>
            <guid isPermaLink="false">https://medium.com/p/5f6ed17997cb</guid>
            <category><![CDATA[devops]]></category>
            <category><![CDATA[mlops]]></category>
            <category><![CDATA[roadmaps]]></category>
            <category><![CDATA[ai]]></category>
            <category><![CDATA[machine-learning]]></category>
            <dc:creator><![CDATA[Sandip Das]]></dc:creator>
            <pubDate>Sat, 16 Aug 2025 01:59:57 GMT</pubDate>
            <atom:updated>2025-08-16T01:59:57.983Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*3K11m6ybH6Q2ZtY8PHobJg.png" /></figure><p>Day 1: Intro to MLOps: ML Meets DevOps: <a href="https://lxop.in/day1">https://lxop.in/day1</a><br>Day 2: MLOps Tools Landscape: <a href="https://lxop.in/day2">https://lxop.in/day2</a><br>Day 3: Data Versioning with DVC: <a href="https://lxop.in/day3">https://lxop.in/day3</a><br>Day 4: Reproducible ML environments (Conda &amp; Docker): <a href="https://lxop.in/day4">https://lxop.in/day4</a><br>Day 5: Feature Engineering &amp; Feature Stores: <a href="https://lxop.in/day5">https://lxop.in/day5</a><br>Day 6: Training ML Models with Scikit-learn &amp; TensorFlow: <a href="https://lxop.in/day6">https://lxop.in/day6</a><br>Day 7: Model Experiment Tracking with MLflow: <a href="https://lxop.in/day7">https://lxop.in/day7</a><br>Day 8: Model Evaluation &amp; Metrics: <a href="https://lxop.in/day8">https://lxop.in/day8</a><br>Day 9: ML Pipelines with Kubeflow Pipelines — <a href="https://lxop.in/day9">https://lxop.in/day9</a><br>Day 10: Serving ML Models with FastAPI &amp; Flask: <a href="https://lxop.in/day10">https://lxop.in/day10</a><br>Day 11: Packaging Models with Docker: <a href="https://lxop.in/day11">https://lxop.in/day11</a><br>Day 12: CI/CD for ML with GitHub Actions: <a href="https://lxop.in/day12">https://lxop.in/day12</a><br>Day 13: ML Model Deployment: <a href="https://lxop.in/day13">https://lxop.in/day13</a><br>Day 14: Data Drift &amp; ML Model Drift Detection : <a href="https://lxop.in/day14">https://lxop.in/day14</a><br>Day 15: Automated Retraining ML Pipelines: <a href="https://lxop.in/day15">https://lxop.in/day15</a><br>Day 16: Security in MLOps: <a href="https://lxop.in/day16">https://lxop.in/day16</a><br>Day 17: Explainable AI (XAI) in Production: <a href="https://lxop.in/day17">https://lxop.in/day17</a><br>Day 18: ML Model Governance &amp; Compliance: <a href="https://lxop.in/day18">https://lxop.in/day18</a><br>Day 19: Monitoring ML Systems in Production: <a href="https://lxop.in/day19">https://lxop.in/day19</a><br>Day 20: Model Registry: <a href="https://lxop.in/day20">https://lxop.in/day20</a><br>Day 21: Scaling ML Model Inference with Kubernetes: <a href="https://lxop.in/day21">https://lxop.in/day21</a><br>Day 22: MLOps with ML Platforms: <a href="https://lxop.in/day22">https://lxop.in/day22</a><br>Day 23: Managing LLMs in Production: <a href="https://lxop.in/day23">https://lxop.in/day23</a><br>Day 24: Agentic AI &amp; RAG: <a href="https://lxop.in/day24">https://lxop.in/day24</a><br>Day 25: MCP Explained for MLOps Engineers: <a href="https://lxop.in/day25">https://lxop.in/day25</a><br>Day 26: Project: End-to-End MLOps Pipeline: <a href="https://lxop.in/day26">https://lxop.in/day26</a><br>Day 27: Model Deployment with Serverless Architectures: <a href="https://lxop.in/day27">https://lxop.in/day27</a><br>Day 28: Cost &amp; Performance Tuning in MLOps: <a href="https://lxop.in/day28">https://lxop.in/day28</a><br>Day 29: Disaster Recovery &amp; HA for ML Systems: <a href="https://lxop.in/day29">https://lxop.in/day29</a><br>Day 30: MLOps Interview Question &amp; Answers: <a href="https://lxop.in/day30">https://lxop.in/day30</a></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=5f6ed17997cb" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[I have written Awesome Ebooks for Cloud & DevOps Engineers]]></title>
            <link>https://sandipdas.medium.com/i-have-written-awesome-ebooks-for-cloud-devops-engineers-f70614903afa?source=rss-c11f2503225b------2</link>
            <guid isPermaLink="false">https://medium.com/p/f70614903afa</guid>
            <category><![CDATA[cloud-computing]]></category>
            <category><![CDATA[aws]]></category>
            <category><![CDATA[terraform]]></category>
            <category><![CDATA[devops]]></category>
            <category><![CDATA[kubernetes]]></category>
            <dc:creator><![CDATA[Sandip Das]]></dc:creator>
            <pubDate>Tue, 29 Jul 2025 01:47:12 GMT</pubDate>
            <atom:updated>2025-07-29T01:47:12.636Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/800/1*lvAWqZPwWIOpb5nNVqXCTQ.jpeg" /></figure><p>Hey there, this is Sandip Das, with 12+ years of experience. I thought, why not write awesome guide content for my fellow Cloud &amp; DevOps Engineers and make it available for a very affordable price point, and it turned out to be one of the best things I have ever done.</p><p>Check out these ebooks and give them a read:</p><p>Ebook#1: <a href="https://www.learnxops.com/linux-master-handbook/">Linux Master Handbook</a><br>Ebook#2: <a href="https://www.learnxops.com/shell-scripting-handbook/">Shell Scripting Handbook</a><br>Ebook#3: <a href="https://www.learnxops.com/4-ebooks-job-search-tracker/">Kubernetes Handbook</a><br>Ebook#4: <a href="https://www.learnxops.com/4-ebooks-job-search-tracker/">Kubernetes Troubleshooting Handbook</a><br>Ebook#5: <a href="https://www.learnxops.com/kubernetes-production-guide-on-aws/">Kubernetes Production Guide on AWS</a><br>Ebook#6: <a href="https://www.learnxops.com/4-ebooks-job-search-tracker/">Terraform Masterbook</a><br>Ebook#7: <a href="https://www.learnxops.com/4-ebooks-job-search-tracker/">Freelance Masterbook</a></p><p>All these ebooks and all future ebooks you will get if you <a href="https://www.learnxops.com/membership-payment/"><strong>become a LearnXops Premium Member</strong></a> for a very minimal cost.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=f70614903afa" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[60 Days of DevOps]]></title>
            <link>https://sandipdas.medium.com/60-days-of-devops-85f471a9ad28?source=rss-c11f2503225b------2</link>
            <guid isPermaLink="false">https://medium.com/p/85f471a9ad28</guid>
            <category><![CDATA[cloud-computing]]></category>
            <category><![CDATA[devops]]></category>
            <category><![CDATA[software-engineering]]></category>
            <category><![CDATA[platform-engineering]]></category>
            <category><![CDATA[software-development]]></category>
            <dc:creator><![CDATA[Sandip Das]]></dc:creator>
            <pubDate>Sat, 31 May 2025 10:00:28 GMT</pubDate>
            <atom:updated>2025-05-31T10:00:28.001Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*Njy8v1aSjNqXPzRBljvzpg.png" /></figure><h3>What is 60 Days of DevOps?</h3><p>“60 Days of DevOps” is a structured, community-driven learning challenge. It provides a curated, hands-on journey through the essential tools, practices, and mindsets that define modern DevOps and Cloud Engineering.</p><p>Each day focuses on a specific topic, ranging from foundational concepts like version control and containerization to advanced subjects such as Kubernetes, GitOps, observability, infrastructure as code, security, and platform engineering. The series includes theoretical knowledge, real-world tasks, curated resources, and challenges for self-assessment.</p><h3>Motivation Behind 60 Days of DevOps</h3><p>I observed a common problem: aspiring and practicing engineers often lacked a structured path to master DevOps. Most online resources are fragmented, tool-specific, or theoretical without real-world context. This created confusion, burnout, or slow progress for learners.</p><p>The motivation was to:</p><ul><li>Create a cohesive and progressive learning journey that reflects how DevOps works in real environments.</li><li>Provide a daily habit of learning, which builds consistency and retention.</li><li>Bridge the gap between theory and production-grade implementation.</li><li>Share hands-on tasks and open-ended challenges to build practitioner skills.</li><li>Empower individuals to move from DevOps basics to platform engineering and SRE roles.</li></ul><p>Goal of 60 Days of DevOps (5 E’s)</p><ol><li>Educate engineers on real-world DevOps tools, concepts, and workflows.</li><li>Enable hands-on learning through implementation-focused tasks.</li><li>Encourage consistency by breaking the journey into manageable daily segments.</li><li>Elevate DevOps maturity from beginner to expert, including platform and SRE practices.</li><li>Engage the community to share knowledge, experiences, and grow together.</li></ol><h3>Here’s the full list of #60DaysOfDevOps</h3><p><strong>Day 1: Linux Basics — Commands, File System, Users &amp; Permissions</strong></p><p>🔗 <a href="https://www.learnxops.com/linux-basics-commands-file-system-users-permissions-challange">https://www.learnxops.com/linux-basics-commands-file-system-users-permissions-challange</a></p><p><strong>Day 2: Linux Shell Scripting &amp; Automation</strong></p><p>🔗 <a href="https://www.learnxops.com/linux-shell-scripting-automation-challenge">https://www.learnxops.com/linux-shell-scripting-automation-challenge</a></p><p><strong>Day 3: Git &amp; GitHub — Basics, Branching, Merging, PRs</strong></p><p>🔗 <a href="https://www.learnxops.com/git-github-basics-branching-merging-prs-challange">https://www.learnxops.com/git-github-basics-branching-merging-prs-challange</a></p><p><strong>Day 4: Git Advanced — Rebase, Cherry-pick, Conflict Resolution</strong></p><p>🔗 <a href="https://www.learnxops.com/git-advanced-rebase-cherry-pick-conflict-resolution">https://www.learnxops.com/git-advanced-rebase-cherry-pick-conflict-resolution</a></p><p><strong>Day 5: Python Basics for DevOps</strong></p><p>🔗 <a href="https://www.learnxops.com/python-basics-for-devops">https://www.learnxops.com/python-basics-for-devops</a></p><p><strong>Day 6: Advanced Python for DevOps</strong></p><p>🔗 <a href="https://www.learnxops.com/advanced-python-for-devops">https://www.learnxops.com/advanced-python-for-devops</a></p><p><strong>Day 7: AWS Cloud Automation with Python &amp; Boto3</strong></p><p>🔗 <a href="https://www.learnxops.com/aws-cloud-automation-with-python-boto3">https://www.learnxops.com/aws-cloud-automation-with-python-boto3</a></p><p><strong>Day 8: Docker Basics</strong></p><p>🔗 <a href="https://www.learnxops.com/docker-basics">https://www.learnxops.com/docker-basics</a></p><p><strong>Day 9: Docker Networking, Volumes, and Compose</strong></p><p>🔗 <a href="https://www.learnxops.com/docker-networking-volumes-and-compose">https://www.learnxops.com/docker-networking-volumes-and-compose</a></p><p><strong>Day 10: Building &amp; Running Multi-Arch Docker Containers</strong></p><p>🔗 <a href="https://www.learnxops.com/building-running-multi-arch-docker-containers">https://www.learnxops.com/building-running-multi-arch-docker-containers</a></p><p><strong>Day 11: Making Docker Containers Production-Ready</strong></p><p>🔗 <a href="https://www.learnxops.com/making-docker-containers-production-ready">https://www.learnxops.com/making-docker-containers-production-ready</a></p><p><strong>Day 12: Docker Mini Projects — Applying What We Learned</strong></p><p>🔗 <a href="https://www.learnxops.com/docker-mini-projects-applying-what-we-learned">https://www.learnxops.com/docker-mini-projects-applying-what-we-learned</a></p><p><strong>Day 13: AWS Global Infrastructure &amp; EC2 Basics</strong></p><p>🔗 <a href="https://www.learnxops.com/aws-global-infrastructure-ec2-basics">https://www.learnxops.com/aws-global-infrastructure-ec2-basics</a></p><p><strong>Day 14: AWS EC2 Real-Life Challenges</strong></p><p>🔗 <a href="https://www.learnxops.com/aws-ec2-deep-dive-real-life-challenges">https://www.learnxops.com/aws-ec2-deep-dive-real-life-challenges</a></p><p><strong>Day 15: AWS VPC: Secure, Scalable, and Private Cloud Networking</strong></p><p>🔗 <a href="https://www.learnxops.com/aws-vpc-secure-scalable-and-private-cloud-networking">https://www.learnxops.com/aws-vpc-secure-scalable-and-private-cloud-networking</a></p><p><strong>Day 16: AWS IAM: Identity and Access Management</strong></p><p>🔗 <a href="https://www.learnxops.com/aws-iam-identity-and-access-management">https://www.learnxops.com/aws-iam-identity-and-access-management</a></p><p><strong>Day 17: AWS S3 for DevOps</strong></p><p>🔗 <a href="https://www.learnxops.com/aws-s3-for-devops">https://www.learnxops.com/aws-s3-for-devops</a></p><p><strong>Day 18: AWS ECS: Run and Scale Containerized Applications Effortlessly</strong></p><p>🔗 <a href="https://www.learnxops.com/aws-ecs-run-and-scale-containerized-applications-effortlessly">https://www.learnxops.com/aws-ecs-run-and-scale-containerized-applications-effortlessly</a></p><p><strong>Day 19: AWS RDS: Managed Relational Databases</strong></p><p>🔗 <a href="https://www.learnxops.com/aws-rds-managed-relational-databases">https://www.learnxops.com/aws-rds-managed-relational-databases</a></p><p><strong>Day 20: Amazon DynamoDB: Serverless NoSQL DB at any scale</strong></p><p>🔗 <a href="https://www.learnxops.com/amazon-dynamodb-serverless-nosql-db-at-any-scale">https://www.learnxops.com/amazon-dynamodb-serverless-nosql-db-at-any-scale</a></p><p><strong>Day 21: Ansible Basics</strong></p><p>🔗 <a href="https://www.learnxops.com/ansible-basics">https://www.learnxops.com/ansible-basics</a></p><p><strong>Day 22: Ansible Playbook — Deep Dive</strong></p><p>🔗 <a href="https://www.learnxops.com/ansible-playbook-deep-dive">https://www.learnxops.com/ansible-playbook-deep-dive</a></p><p><strong>Day 23: Ansible Vault &amp; Secrets Management</strong></p><p>🔗 <a href="https://www.learnxops.com/ansible-vault-secrets-management">https://www.learnxops.com/ansible-vault-secrets-management</a></p><p><strong>Day 24: Jenkins Basics</strong></p><p>🔗 <a href="https://www.learnxops.com/jenkins-basics">https://www.learnxops.com/jenkins-basics</a></p><p><strong>Day 25: Jenkins Pipeline Deep Dive</strong></p><p>🔗 <a href="https://www.learnxops.com/jenkins-pipeline-deep-dive">https://www.learnxops.com/jenkins-pipeline-deep-dive</a></p><p><strong>Day 26: GitHub Actions Basics</strong></p><p>🔗 <a href="https://www.learnxops.com/github-actions-basics">https://www.learnxops.com/github-actions-basics</a></p><p><strong>Day 27: GitHub Actions — Advanced Workflows</strong></p><p>🔗 <a href="https://www.learnxops.com/github-actions-advanced-workflows">https://www.learnxops.com/github-actions-advanced-workflows</a></p><p><strong>Day 28: Kubernetes Basics &amp; Architecture + Easy Local Setup (Minikube &amp; Kind)</strong></p><p>🔗<a href="https://www.learnxops.com/kubernetes-basics-architecture-easy-local-setup-minikube-kind/">https://www.learnxops.com/kubernetes-basics-architecture-easy-local-setup-minikube-kind/</a></p><p><strong>Day 29: Kubernetes Namespace</strong></p><p>🔗 <a href="https://www.learnxops.com/kubernetes-namespace/">https://www.learnxops.com/kubernetes-namespace/</a></p><p><strong>Day 30: Kubernetes Pods</strong></p><p>🔗 <a href="https://www.learnxops.com/kubernetes-pods/">https://www.learnxops.com/kubernetes-pods/</a></p><p><strong>Day 31: Kubernetes Deployments — Scale, Roll, and Recover Like a Pro</strong></p><p>🔗 <a href="https://www.learnxops.com/kubernetes-deployments-scale-roll-and-recover-like-a-pro/">https://www.learnxops.com/kubernetes-deployments-scale-roll-and-recover-like-a-pro/</a></p><p><strong>Day 32: Kubernetes Services — Exposing and Connecting Workloads</strong></p><p>🔗 <a href="https://www.learnxops.com/kubernetes-services-deep-dive-exposing-and-connecting-workloads/">https://www.learnxops.com/kubernetes-services-deep-dive-exposing-and-connecting-workloads/</a></p><p><strong>Day 33: Kubernetes StatefulSets — Stable Identity, Persistent Pods</strong></p><p>🔗 <a href="https://www.learnxops.com/kubernetes-statefulsets-stable-identity-persistent-pods/">https://www.learnxops.com/kubernetes-statefulsets-stable-identity-persistent-pods/</a></p><p><strong>Day 34: Kubernetes DaemonSets — Run on Every Node</strong></p><p>🔗 <a href="https://www.learnxops.com/kubernetes-daemonsets-run-on-every-nodes/">https://www.learnxops.com/kubernetes-daemonsets-run-on-every-nodes/</a></p><p><strong>Day 35: Kubernetes Jobs &amp; CronJobs — Automate One-Time &amp; Scheduled Tasks</strong></p><p>🔗 <a href="https://www.learnxops.com/kubernetes-jobs-cronjobs-automate-one-time-scheduled-tasks/">https://www.learnxops.com/kubernetes-jobs-cronjobs-automate-one-time-scheduled-tasks/</a></p><p><strong>Day 36: Kubernetes Operators &amp; CRDs Made Simple: Automate Like a Pro</strong></p><p>🔗 <a href="https://www.learnxops.com/kubernetes-operators-crds-made-simple-automate-like-a-pro/">https://www.learnxops.com/kubernetes-operators-crds-made-simple-automate-like-a-pro/</a></p><p><strong>Day 37: Kubernetes Storage — PV &amp; PVC</strong></p><p>🔗 <a href="https://www.learnxops.com/kubernetes-storage-pv-pvc/">https://www.learnxops.com/kubernetes-storage-pv-pvc/</a></p><p><strong>Day 38: Kubernetes ConfigMaps — Managing Configuration for Your Apps</strong></p><p>🔗 <a href="https://www.learnxops.com/kubernetes-configmaps-managing-configuration-for-your-apps/">https://www.learnxops.com/kubernetes-configmaps-managing-configuration-for-your-apps/</a></p><p><strong>Day 39: Kubernetes Secrets Management — Native &amp; External Integrations</strong></p><p>🔗 <a href="https://www.learnxops.com/kubernetes-secrets-management-native-external-integrations/">https://www.learnxops.com/kubernetes-secrets-management-native-external-integrations/</a></p><p><strong>Day 40: Kubernetes RBAC — Secure Access Control</strong></p><p>🔗 <a href="https://www.learnxops.com/kubernetes-rbac-secure-access-control/">https://www.learnxops.com/kubernetes-rbac-secure-access-control/</a></p><p><strong>Day 41: Kubernetes Logs — Debug Everything</strong></p><p>🔗 <a href="https://www.learnxops.com/kubernetes-logs-debug-everything">https://www.learnxops.com/kubernetes-logs-debug-everything</a></p><p><strong>Day 42: Kubernetes Resource Requests and Limits — Control Resource Usage</strong></p><p>🔗 <a href="https://www.learnxops.com/kubernetes-resource-requests-and-limits-control-resource-usage/">https://www.learnxops.com/kubernetes-resource-requests-and-limits-control-resource-usage/</a></p><p><strong>Day 43: Kubernetes Troubleshooting — Diagnose &amp; Fix Like a Pro</strong></p><p>🔗 <a href="https://www.learnxops.com/kubernetes-troubleshooting-diagnose-fix-like-a-pro/">https://www.learnxops.com/kubernetes-troubleshooting-diagnose-fix-like-a-pro/</a></p><p><strong>Day 44: Kubernetes Scaling — Scale Smarter, Not Harder</strong></p><p>🔗 <a href="https://www.learnxops.com/kubernetes-scaling-scale-smarter-not-harder/">https://www.learnxops.com/kubernetes-scaling-scale-smarter-not-harder/</a></p><p><strong>Day 45: Helm Charts — Kubernetes Package Manager</strong></p><p>🔗 <a href="https://www.learnxops.com/helm-charts-kubernetes-package-manager/">https://www.learnxops.com/helm-charts-kubernetes-package-manager/</a></p><p><strong>Day 46: Kubernetes Ingress &amp; Gateway API — Smart Traffic Control</strong></p><p>🔗 <a href="https://www.learnxops.com/kubernetes-ingress-gateway-api-smart-traffic-control/">https://www.learnxops.com/kubernetes-ingress-gateway-api-smart-traffic-control/</a></p><p><strong>Day 47: Kubernetes Ingress &amp; Gateway API — Smart Traffic Control</strong></p><p>🔗 <a href="https://www.learnxops.com/kubernetes-monitoring-with-prometheus-grafana/">https://www.learnxops.com/kubernetes-monitoring-with-prometheus-grafana/</a></p><p><strong>Day 48: Terraform Basics — Infrastructure as Code (IaC) Foundation</strong></p><p>🔗 <a href="https://www.learnxops.com/terraform-basics-infrastructure-as-code-iac-foundation/">https://www.learnxops.com/terraform-basics-infrastructure-as-code-iac-foundation/</a></p><p><strong>Day 49: Terraform Advanced — Modules, Remote State, Workspaces &amp; More</strong></p><p>🔗 <a href="https://www.learnxops.com/terraform-advanced-modules-remote-state-workspaces-more/">https://www.learnxops.com/terraform-advanced-modules-remote-state-workspaces-more/</a></p><p><strong>Day 50: Pulumi — True Infrastructure as Code (IaC) with Real Programming Languages</strong></p><p>🔗 <a href="https://www.learnxops.com/pulumi-true-infrastructure-as-code-iac-with-real-programming-languages/">https://www.learnxops.com/pulumi-true-infrastructure-as-code-iac-with-real-programming-languages/</a></p><p><strong>Day 51: AWS CDK — Infrastructure as Code with Real Programming Languages</strong></p><p>🔗 <a href="https://www.learnxops.com/aws-cdk-infrastructure-as-code-with-real-programming-languages/">https://www.learnxops.com/aws-cdk-infrastructure-as-code-with-real-programming-languages/</a></p><p><strong>Day 52: Crossplane — Kubernetes-Native Infrastructure Management</strong></p><p>🔗 <a href="https://www.learnxops.com/crossplane-kubernetes-native-infrastructure-management/">https://www.learnxops.com/crossplane-kubernetes-native-infrastructure-management/</a></p><p><strong>Day 53: GitOps with ArgoCD — Automating Kubernetes Deployments</strong></p><p>🔗 <a href="https://www.learnxops.com/gitops-with-argocd-automating-kubernetes-deployments/">https://www.learnxops.com/gitops-with-argocd-automating-kubernetes-deployments/</a></p><p><strong>Day 54: Production-Grade Secrets Management Using HashiCorp Vault</strong></p><p>🔗 <a href="https://www.learnxops.com/production-grade-secrets-management-using-hashicorp-vault/">https://www.learnxops.com/production-grade-secrets-management-using-hashicorp-vault/</a></p><p><strong>Day 55: Grafana Loki — Scalable, Cost-Effective Logging for Kubernetes and Cloud-Native Systems</strong></p><p>🔗 <a href="https://www.learnxops.com/grafana-loki-scalable-cost-effective-logging-for-kubernetes-and-cloud-native-systems/">https://www.learnxops.com/grafana-loki-scalable-cost-effective-logging-for-kubernetes-and-cloud-native-systems/</a></p><p><strong>Day 56: Distributed Tracing &amp; Observability for Kubernetes Microservices using Jaeger, OpenTelemetry &amp; Grafana Tempo</strong></p><p>🔗 <a href="https://www.learnxops.com/distributed-tracing-observability-jaeger-opentelemetry-grafana-tempo/">https://www.learnxops.com/distributed-tracing-observability-jaeger-opentelemetry-grafana-tempo/</a></p><p><strong>Day 57: Build Container Images with Cloud Native Buildpacks &amp; VM/Container Images with HashiCorp Packer</strong></p><p>🔗 <a href="https://www.learnxops.com/build-container-images-with-cloud-native-buildpacks-vm-container-images-with-hashicorp-packer/">https://www.learnxops.com/build-container-images-with-cloud-native-buildpacks-vm-container-images-with-hashicorp-packer/</a></p><p><strong>Day 58: Chaos Engineering in DevOps — Break Things Before They Break You</strong></p><p>🔗 <a href="https://www.learnxops.com/chaos-engineering-in-devops-break-things-before-they-break-you/">https://www.learnxops.com/chaos-engineering-in-devops-break-things-before-they-break-you/</a></p><p><strong>Day 59: Security in DevOps (DevSecOps) — Building Secure Pipelines and Infrastructure</strong></p><p>🔗 <a href="https://www.learnxops.com/security-in-devops-devsecops-building-secure-pipelines-and-infrastructure/">https://www.learnxops.com/security-in-devops-devsecops-building-secure-pipelines-and-infrastructure/</a></p><p><strong>Day 60: From DevOps to Platform Engineering &amp; SRE — Building Scalable, Reliable Systems</strong></p><p>🔗 <a href="https://www.learnxops.com/from-devops-to-platform-engineering-sre-building-scalable-reliable-systems/">https://www.learnxops.com/from-devops-to-platform-engineering-sre-building-scalable-reliable-systems/</a></p><h3>🧠 Final Thoughts</h3><p>DevOps is more than just tooling — it’s a mindset and culture shift. The 60-day challenge is a gateway to structured, real-world learning. Consistency and curiosity are the keys to mastery. Start small, think big, and build daily. Let’s build better systems and stronger communities — together.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=85f471a9ad28" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Announcement for future posts & introducing LearnXOps]]></title>
            <link>https://sandipdas.medium.com/announcement-for-future-posts-introducing-learnxops-b6a6712906eb?source=rss-c11f2503225b------2</link>
            <guid isPermaLink="false">https://medium.com/p/b6a6712906eb</guid>
            <dc:creator><![CDATA[Sandip Das]]></dc:creator>
            <pubDate>Mon, 03 Mar 2025 07:44:31 GMT</pubDate>
            <atom:updated>2025-03-03T07:44:31.006Z</atom:updated>
            <content:encoded><![CDATA[<p>Hi Everyone,</p><p>Thanks for being an awesome audience and encouraging me to write more on Cloud, DevOps &amp; programming.</p><p>On this platform, I have been here for many years and writing to all of you.</p><p>Now, that I have an official site, all upcoming posts, articles, and videos will be there only.</p><p>Please feel free to visit <a href="https://www.learnxops.com/">https://www.learnxops.com/</a> and learn DevOps, DevSecOps, CloudOps, MLOps, AIOps …..XOps</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=b6a6712906eb" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[MLOps Step 1: Data Extraction, Validation & Preparation for ML Training]]></title>
            <link>https://sandipdas.medium.com/mlops-step-1-data-extraction-validation-preparation-for-ml-training-ad9099cb83ff?source=rss-c11f2503225b------2</link>
            <guid isPermaLink="false">https://medium.com/p/ad9099cb83ff</guid>
            <category><![CDATA[ai]]></category>
            <category><![CDATA[mlops]]></category>
            <category><![CDATA[machine-learning]]></category>
            <category><![CDATA[development]]></category>
            <category><![CDATA[devops]]></category>
            <dc:creator><![CDATA[Sandip Das]]></dc:creator>
            <pubDate>Mon, 24 Feb 2025 14:29:46 GMT</pubDate>
            <atom:updated>2025-02-24T14:58:31.725Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*ouAoAkSxTT_a9XRch1Vs8w.png" /></figure><blockquote>Any ML Model training requires good data and the first step in MLOps flow is to automate data extraction, validation, and preparing data for ML Model training!</blockquote><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2F_mpl6RmJedQ%3Ffeature%3Doembed&amp;display_name=YouTube&amp;url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3D_mpl6RmJedQ&amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2F_mpl6RmJedQ%2Fhqdefault.jpg&amp;type=text%2Fhtml&amp;schema=youtube" width="854" height="480" frameborder="0" scrolling="no"><a href="https://medium.com/media/caba1168d248f387fb730671d56fe05f/href">https://medium.com/media/caba1168d248f387fb730671d56fe05f/href</a></iframe><h4>Let’s break down each topic: Data Extraction, Validation &amp; Preparation with coding examples to understand this even better way:</h4><h3>Data extraction</h3><p>— — — — — — — — — — — -</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*3WeaxmZbYK94AvoB" /></figure><p><strong>Data extraction involves retrieving data from sources such as databases, APIs, flat files, or web scraping. Important considerations include:</strong></p><p><strong>Structured Data Sources (Well-organized data, often in tabular form)</strong></p><p><strong>Databases</strong>: MySQL, PostgreSQL, Oracle, SQL Server</p><p><strong>Data Warehouses</strong>: Amazon Redshift, Google BigQuery, Snowflake</p><p><strong>Spreadsheets</strong>: Microsoft Excel, Google Sheets</p><p><strong>ERP Systems</strong>: SAP, Oracle ERP, Microsoft Dynamics</p><p><strong>Semi-Structured Data Sources (Organized but not in traditional tables)</strong></p><p><strong>APIs</strong>: REST, GraphQL, SOAP (e.g., Twitter API, Google Maps API) JSON/XML</p><p><strong>Files</strong>: Logs or configuration files in cloud platforms</p><p><strong>Email Systems</strong>: Extracting structured data from emails using IMAP, SMTP</p><p><strong>NoSQL Databases</strong>: MongoDB, Cassandra, Redis</p><p><strong>Unstructured Data Sources (Raw data without predefined structure)</strong></p><p><strong>Documents</strong>: PDFs, Word files</p><p>Media Files: Images, audio, video</p><p><strong>Web Scraping</strong>: Extracting data from websites (e.g., BeautifulSoup for Python)</p><p><strong>Logs</strong>: System logs, application logs (from sources like AWS CloudWatch, ELK Stack)</p><p><strong>Real-Time Data Streams</strong></p><p><strong>IoT Devices</strong>: Sensors, smart meters</p><p><strong>Message Queues</strong>: Kafka, RabbitMQ, AWS Kinesis</p><p><strong>Social Media Feeds</strong>: Live data from platforms like Twitter or Facebook</p><p><strong>Manual Data Collection</strong></p><p><strong>Surveys</strong>: Google Forms, Typeform</p><p><strong>User Inputs</strong>: Form submissions from web or mobile apps</p><p><strong>Cloud-Based Data Sources:</strong></p><p><strong>Cloud Storage Service</strong>s: AWS S3, Google Cloud Storage, Azure Blob Storage <strong>SaaS Platforms</strong>: Salesforce, HubSpot, Google Analytics</p><h3>Data Formats:</h3><p>— — — — — — — — — —</p><p>Understand formats (CSV, JSON, XML, etc.).</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*9Yz018mG4Y19vREfnY9IqQ.png" /></figure><h3>Automation:</h3><p>— — — — — — — — —</p><p>Use scripts to streamline the process.</p><p>e.g.</p><p>Sample Data:</p><p>We’ll start with a simple CSV file:</p><pre>csv<br>user_id,name,email,age<br>1,John Doe,john.doe@example.com,28<br>2,Jane Smith,jane.smith@example.com,34<br>3,Sam Johnson,sam.johnson@example.com,22</pre><p>Sample script to extract data and work with it:</p><pre># Import required libraries<br>import pandas as pd</pre><pre># Load CSV data<br>data = pd.DataFrame({<br>    &#39;user_id&#39;: [1, 2, 3],<br>    &#39;name&#39;: [&#39;John Doe&#39;, &#39;Jane Smith&#39;, &#39;Sam Johnson&#39;],<br>    &#39;email&#39;: [&#39;john.doe@example.com&#39;, &#39;jane.smith@example.com&#39;, &#39;sam.johnson@example.com&#39;],<br>    &#39;age&#39;: [28, 34, 22]<br>})</pre><pre># Display extracted data<br>print(&quot;Extracted Data:&quot;)<br>data.head()</pre><h3>Data Validation</h3><p>— — — — — — — — — — — -</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*lSYENhrK-YKlAZeL" /></figure><p>After extraction, validating the data ensures quality and consistency. Important steps include:</p><ul><li>Schema Validation: Ensure proper data types.</li><li>Missing Values: Handle missing entries.</li><li>Outlier Detection: Detect and manage outliers.</li><li>Consistency Checks: Ensure consistency across sources.</li></ul><h3>Sample Data with Issues</h3><pre>csv<br>user_id,name,email,age<br>1,John Doe,john.doe@example.com,28<br>2,Jane Smith,jane.smith@example.com,<br>3,Sam Johnson,,22<br>4,Emily Davis,emily.davis@example.com,120</pre><h3>Python Script to validate:</h3><pre>import pandas as pd</pre><pre># Introducing issues in data<br>data_with_issues = pd.DataFrame({<br>    &#39;user_id&#39;: [1, 2, 3, 4, 4],<br>    &#39;name&#39;: [&#39;John Doe&#39;, &#39;Jane Smith&#39;, &#39;Sam Johnson&#39;, &#39;Emily Davis&#39;, &#39;Emily Davis&#39;],<br>    &#39;email&#39;: [&#39;john.doe@example.com&#39;, &#39;jane.smith@example.com&#39;, None, &#39;emily.davis@example.com&#39;, &#39;emily.davis@example.com&#39;],<br>    &#39;age&#39;: [28, None, 22, 120, 120]<br>})</pre><pre># Check for missing values<br>missing_values = data_with_issues.isnull().sum()<br>print(&quot;Missing Values:\n&quot;, missing_values)</pre><pre># Outlier detection<br>outliers = data_with_issues[(data_with_issues[&#39;age&#39;] &gt; 100) | (data_with_issues[&#39;age&#39;] &lt; 0)]<br>print(&quot;Outliers:\n&quot;, outliers)</pre><pre># Basic schema validation<br>print(&quot;Data Types:\n&quot;, data_with_issues.dtypes)</pre><pre># Duplication validation<br>duplicates = data_with_issues[data_with_issues.duplicated(keep=False)]<br>if not duplicates.empty:<br>    print(&quot;Duplicate Records:\n&quot;, duplicates)<br>else:<br>    print(&quot;No duplicate records found.&quot;)</pre><h3>Data Preparation</h3><p>— — — — — — — — — — — -</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*-_5ep6r8gZlFuQVY" /></figure><p>This phase transforms validated data for analysis:</p><ul><li>Data Cleaning: Remove duplicates and handle errors.</li><li>Feature Engineering: Create or adjust features for better model performance.</li><li>Normalization and Scaling: Adjust data for better convergence.</li><li>Splitting the Data: Create training, validation, and testing datasets.</li></ul><h3>Python Code Example:</h3><pre>from sklearn.preprocessing import MinMaxScaler<br>from sklearn.model_selection import train_test_split<br>import pandas as pd</pre><pre># Introducing issues in data<br>data_with_issues = pd.DataFrame({<br>    &#39;user_id&#39;: [1, 2, 3, 4, 4],  # Added a duplicate for testing<br>    &#39;name&#39;: [&#39;John Doe&#39;, &#39;Jane Smith&#39;, &#39;Sam Johnson&#39;, &#39;Emily Davis&#39;, &#39;Emily Davis&#39;],<br>    &#39;email&#39;: [&#39;john.doe@example.com&#39;, &#39;jane.smith@example.com&#39;, None, &#39;emily.davis@example.com&#39;, &#39;emily.davis@example.com&#39;],<br>    &#39;age&#39;: [28, None, 22, 120, 120]<br>})</pre><pre># Checking for duplicates before removal<br>duplicates = data_with_issues[data_with_issues.duplicated(keep=False)]<br>if not duplicates.empty:<br>    print(&quot;Duplicate Records Found:\n&quot;, duplicates)<br>else:<br>    print(&quot;No duplicate records found.&quot;)</pre><pre># Cleaning data: Remove duplicates and fill missing values<br>data_cleaned = data_with_issues.drop_duplicates()<br>print(&quot;\nData after removing duplicates:\n&quot;, data_cleaned)</pre><pre># Filling missing age values with the median<br>data_cleaned[&#39;age&#39;].fillna(data_cleaned[&#39;age&#39;].median(), inplace=True)</pre><pre># Normalize the age feature<br>scaler = MinMaxScaler()<br>data_cleaned[&#39;age_scaled&#39;] = scaler.fit_transform(data_cleaned[[&#39;age&#39;]])</pre><pre># Splitting data into train and test sets<br>train, test = train_test_split(data_cleaned, test_size=0.2, random_state=42)</pre><pre>print(&quot;\nTraining Data:&quot;)<br>print(train)<br>print(&quot;\nTesting Data:&quot;)<br>print(test)</pre><p>This process is very similar to the ETL process of many companies, let’s discuss it:</p><h3>ETL:</h3><p>— — —</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*U1zDBgwAaB2h4VSs" /></figure><p>The ETL (Extract, Transform, Load) process is a crucial component in data warehousing and data integration, enabling organizations to consolidate data from various sources into a single repository for analysis and reporting.</p><p>The Data extraction process and preparation process are similar to the Extract (E) and Transform (T) processes of the ETL process!</p><p>Since we already talked about data extraction and the data preparation process, let’s talk about storing such data as well.</p><h3>Data Lake:</h3><p>— — — — — — —</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*4pupb6xaAm5SzkiT" /></figure><p>Data Lake stores raw, unprocessed data in various formats (structured, semi-structured, unstructured) and uses schema-on-read, making it flexible for big data, AI, and machine learning applications.</p><p>Examples: Amazon S3 Data Lake, Azure Data Lake Storage (ADLS), Google Cloud Storage Data Lake, Snowflake on AWS/Azure/GCP</p><h3>Data Warehouse:</h3><p>— — — — — — — — — — — —</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*PHDfp92NEKZ51XCs" /></figure><p>Data Warehouse stores structured, processed data optimized for querying, reporting, and analysis, often using predefined schemas (schema-on-write). It’s ideal for business intelligence.</p><p>Examples: Amazon Redshift, Google BigQuery, Azure Synapse Analytics, Snowflake, Greenplum, Apache Hive, Vertica</p><p>Hope this knowledge will be helpful starting with MLOps! Stay tuned for what’s next!</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=ad9099cb83ff" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[What to do before Interview? What to do during the interview? and what to do after the interview.]]></title>
            <link>https://sandipdas.medium.com/what-to-do-before-interview-what-to-do-during-the-interview-and-what-to-do-after-the-interview-51f3e7b3706f?source=rss-c11f2503225b------2</link>
            <guid isPermaLink="false">https://medium.com/p/51f3e7b3706f</guid>
            <category><![CDATA[interview-tips]]></category>
            <category><![CDATA[interview]]></category>
            <category><![CDATA[interviewing]]></category>
            <category><![CDATA[careers]]></category>
            <category><![CDATA[interview-preparation]]></category>
            <dc:creator><![CDATA[Sandip Das]]></dc:creator>
            <pubDate>Fri, 21 Feb 2025 15:22:57 GMT</pubDate>
            <atom:updated>2025-02-21T17:24:00.167Z</atom:updated>
            <content:encoded><![CDATA[<h3>The Ultimate Interview Checklist: What to Do Before, During &amp; After to Land the Job</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*XnFgr8zv0R6qt5uOSZj2Gw.png" /></figure><p>Let’s go straight discussion of what to do before the Interview. What to do during the interview? and what to do after the interview :</p><h3>First, let’s discuss what you should do before the interview:</h3><h3>🔍 1. Research the Company &amp; Industry</h3><ul><li>Understand the company’s mission, values, and recent developments.</li><li>Stay updated on industry news, company growth, sales figures, and future plans.</li><li>Check for recent achievements, product launches, or leadership changes.</li></ul><h3>👤 2. Research the Interviewer &amp; Interview Type</h3><ul><li>Find out who will be interviewing you — ask the HR manager if needed.</li><li>Look up the interviewer on LinkedIn to identify mutual connections or shared interests.</li><li>Understand the interview format (technical, HR, panel, etc.).</li></ul><h3>📄 3. Know Your Resume Inside Out</h3><ul><li>Be ready to discuss every detail mentioned on your resume.</li><li>Prepare to elaborate on your experiences, achievements, and skills confidently.</li></ul><h3>🏃 4. Plan Logistical Details</h3><ul><li>Prepare your interview outfit a day before — ensure it’s clean and appropriate.</li><li>Plan your route to the interview location in advance.</li><li>Aim to arrive at least 10–15 minutes early to settle and mentally prepare.</li></ul><h3>💡 5. Prepare Interview Materials</h3><ul><li>Bring multiple copies of your resume.</li><li>Have your portfolio, certifications, or any required documents ready.</li><li>Prepare thoughtful questions to ask the interviewer about the role, team, or company.</li></ul><h3>🧘 6. Stay Calm and Confident</h3><ul><li>Take deep breaths to relax before the interview.</li><li>Visualize success and maintain a positive, confident demeanor.</li></ul><h3>Now, let’s discuss what to do during the interview:</h3><h3>🎯 1. Make a Strong First Impression</h3><ul><li>Greet confidently with a firm handshake, smile, and good eye contact.</li><li>Use polite language and maintain positive body language throughout.</li><li>Introduce yourself clearly and be enthusiastic about the opportunity.</li></ul><h3>🗣️ 2. Communicate Effectively</h3><ul><li>Listen carefully to the questions being asked.</li><li>Answer concisely and stay on topic.</li><li>Use the STAR method (Situation, Task, Action, Result) to structure your answers for behavioral questions.</li></ul><h3>💼 3. Showcase Your Skills and Experience</h3><ul><li>Highlight your relevant achievements and skills.</li><li>Connect your past experiences to the requirements of the role.</li><li>Mention any relevant projects, leadership experiences, or technical skills.</li></ul><h3>🤝 4. Engage with the Interviewer</h3><ul><li>Maintain good eye contact and active listening cues (nodding, acknowledging).</li><li>Show genuine interest in the role and company.</li><li>Be open and honest about your skills and experiences.</li></ul><h3>❓ 5. Ask Thoughtful Questions</h3><p>Prepare some insightful questions to ask the interviewer, such as:</p><ul><li>“Can you describe the team I’ll be working with?”</li><li>“What are the immediate challenges for this role?”</li><li>“How is performance typically measured here?”</li></ul><h3>😌 6. Stay Calm and Professional</h3><ul><li>If you don’t know an answer, stay calm — it’s okay to take a moment to think.</li><li>Be honest if you’re unsure but show a willingness to learn.</li><li>Avoid negative comments about previous employers or roles.</li></ul><h3>🔚 7. End on a Positive Note</h3><ul><li>Thank the interviewer for their time.</li><li>Express enthusiasm for the opportunity and mention that you’re looking forward to hearing back.</li><li>Ask about the next steps in the process.</li></ul><h3>Now, let’s discuss what to do after interview :</h3><h3>📝 1. Reflect and Evaluate</h3><ul><li>Review your performance: Write down what went well and areas where you struggled.</li><li>Identify any mistakes: Reflect on questions you could have answered better.</li><li>Track the experience: Keep a journal for future reference and improvement.</li></ul><h3>📩 2. Follow Up with a Thank You Note</h3><ul><li>Send a personalized ‘Thank You’ email within 24 hours of the interview.</li><li>If the interview was in person, consider sending a handwritten note for a personal touch.</li><li>In your message, include:A thank you for their time.A brief mention of something specific you discussed.A reaffirmation of your interest in the role.</li></ul><h3>🔄 3. Request Feedback</h3><ul><li>Politely reach out to the recruiter or interviewer for feedback.</li><li>Ask about areas where you could improve, even if you don’t get the job.</li><li>This will help you grow and prepare better for future opportunities.</li></ul><h3>🎯 4. Plan Your Next Steps</h3><ul><li>Stay proactive and continue applying for other roles.</li><li>Have backup interviews lined up, as not every interview will lead to an offer.</li><li>Keep refining your resume and interview skills based on the feedback received.</li></ul><h3>📅 5. Follow Up on Application Status</h3><ul><li>If you haven’t heard back within the expected time frame, send a polite follow-up email to check on the status of your application.</li></ul><h3>📊 6. Keep Networking</h3><ul><li>Stay connected with the interviewer on LinkedIn (if appropriate).</li><li>Engage with company content or updates to keep yourself visible.</li></ul><p>Keep all the points in mind during your next interview 👍</p><p>If you found this article useful, repost it ♼ and like so that it will reach to others who need to read this article.</p><p>Follow <a href="https://www.linkedin.com/in/sandip-das-developer/">Sandip Das</a> , so that you never miss a single post / article.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=51f3e7b3706f" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Learn about Load Balancing & Load Balancing Algorithms: Round Robin, Least Connection, IP Hash &…]]></title>
            <link>https://sandipdas.medium.com/load-balancing-deep-dive-5e30d7ed627c?source=rss-c11f2503225b------2</link>
            <guid isPermaLink="false">https://medium.com/p/5e30d7ed627c</guid>
            <category><![CDATA[load-balancing]]></category>
            <category><![CDATA[cloud]]></category>
            <category><![CDATA[web-development]]></category>
            <category><![CDATA[load-balancing-algorithm]]></category>
            <category><![CDATA[devops]]></category>
            <dc:creator><![CDATA[Sandip Das]]></dc:creator>
            <pubDate>Mon, 17 Feb 2025 07:21:00 GMT</pubDate>
            <atom:updated>2025-02-17T07:41:28.596Z</atom:updated>
            <content:encoded><![CDATA[<h3>Learn about Load Balancing &amp; Load Balancing Algorithms: Round Robin, Least Connection, IP Hash &amp; Random</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*4dIwZdGkpVH0OYzGLlpRcQ.png" /></figure><p>When we have a basic application ready, we host that in a single server, but as the user base grows and the application matures more, there is a need to add more servers, and not just that we have to do the load balancing as well.</p><h3>So, what is this load balancing?</h3><blockquote><em>Load balancing is a critical component in modern computing environments, ensuring that workloads are distributed efficiently across multiple servers or resources.</em></blockquote><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*KnrVNgchF5Yew2nB" /></figure><h3>Importance of Load Balancing</h3><ol><li>Improved Performance: By distributing requests evenly across multiple servers, load balancers help to optimize resource use, reduce response times, and improve overall application performance.</li><li>High Availability: Load balancers can detect server failures and reroute traffic to healthy servers, ensuring that applications remain available even in the event of hardware or software failures.</li><li>Scalability: As demand increases, load balancers allow for the seamless addition of new servers to handle the increased load without disrupting service.</li><li>Security: Load balancers can provide an additional layer of security by hiding the internal structure of the network and protecting against certain types of attacks.</li></ol><h3>Load Balancing Algorithms</h3><p>There are several algorithms used for load balancing, each with its own advantages and use cases. Here are some of the most common ones:</p><h3>1. Round Robin</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/744/0*DFAHDhxKA8SdQg4p" /></figure><p>This is one of the simplest load balancing algorithms. It distributes requests sequentially across the available servers. Once the last server is reached, it starts again from the first server. This method is effective for servers with similar capabilities.</p><p>Example:</p><ul><li>Request 1 → Server A</li><li>Request 2 → Server B</li><li>Request 3 → Server C</li><li>Request 4 → Server A (restarts cycle)</li></ul><h3>2. Least Connections</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*8dO1xSJDr4nZN0a9" /></figure><p>This algorithm directs traffic to the server with the fewest active connections. It is particularly useful in environments where servers have varying capacities and workloads, as it helps to ensure that no single server is overwhelmed.</p><p>Example:</p><ul><li>Server A: 5 active connections</li><li>Server B: 2 active connections</li><li>Server C: 8 active connections</li><li>A new request will be directed to Server B as it has the least connections.</li></ul><h3>3. IP Hash</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/744/0*RsPpViQeV0CKDCXh" /></figure><p>In this method, the load balancer uses a hash of the client’s IP address to determine which server will handle the request. This ensures that a client is consistently directed to the same server, which can be beneficial for session persistence.</p><p>Example:</p><ul><li>Client IP: 192.168.1.10 → Hash Function → Server B</li><li>Client IP: 192.168.1.11 → Hash Function → Server A</li><li>The same IP address will always be mapped to the same server unless the server goes down.</li></ul><h3>4. Weighted Round Robin</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*43OhmQJEassP4WeX" /></figure><p>Similar to the Round Robin method, but with weights assigned to each server based on their capacity. Servers with higher weights receive more requests than those with lower weights, allowing for more efficient resource utilization.</p><ul><li>Server A (weight 3): Gets 3 requests</li><li>Server B (weight 2): Gets 2 requests</li><li>Server C (weight 1): Gets 1 request</li><li>The cycle then repeats.</li></ul><h3>5. Random</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/744/0*sFXOfqXbTommlKWS" /></figure><p>As the name suggests, this algorithm randomly selects a server to handle each request. While simple, it may not always lead to optimal resource utilization, especially in environments with servers of varying capabilities.</p><p>Example:</p><ul><li>Request 1 → Server B</li><li>Request 2 → Server A</li><li>Request 3 → Server C</li><li>Request 4 → Server A (random selection continues)</li></ul><h3>6. Least Response Time</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/744/0*pjBTsKEmlCwAfaAn" /></figure><p>This algorithm directs traffic to the server that has the lowest response time. It is particularly useful in scenarios where response time is critical, as it helps to ensure that users receive the fastest possible service.</p><p>Example:</p><ul><li>Server A: Response Time 50ms</li><li>Server B: Response Time 30ms</li><li>Server C: Response Time 20ms</li><li>A new request will be directed to Server C as it has the lowest response time.</li></ul><p>Here’s a custom logic in Python if you would like to understand in much more hands-on way:</p><pre>import random<br>import hashlib</pre><pre>class LoadBalancer:<br>    def __init__(self, servers):<br>        self.servers = servers<br>        self.index = 0<br>        self.connections = {server: 0 for server in servers}<br>        self.weights = {server: 1 for server in servers}  # Default weight is 1<br>        self.server_response_times = {server: random.uniform(0.1, 1.0) for server in servers}</pre><pre>    def round_robin(self):<br>        server = self.servers[self.index]<br>        self.index = (self.index + 1) % len(self.servers)<br>        return server</pre><pre>    def least_connections(self):<br>        server = min(self.connections, key=self.connections.get)<br>        self.connections[server] += 1<br>        return server<br>    <br>    def ip_hash(self, client_ip):<br>        hash_value = int(hashlib.md5(client_ip.encode()).hexdigest(), 16)<br>        server_index = hash_value % len(self.servers)<br>        return self.servers[server_index]<br>    <br>    def weighted_round_robin(self):<br>        server = max(self.weights, key=self.weights.get)<br>        self.weights[server] -= 1  # Reduce weight after selecting<br>        if all(weight == 0 for weight in self.weights.values()):<br>            self.weights = {server: 1 for server in self.servers}  # Reset weights<br>        return server<br>    <br>    def random_selection(self):<br>        return random.choice(self.servers)<br>    <br>    def least_response_time(self):<br>        server = min(self.server_response_times, key=self.server_response_times.get)<br>        return server</pre><pre># Example usage<br>servers = [&quot;Server1&quot;, &quot;Server2&quot;, &quot;Server3&quot;]<br>lb = LoadBalancer(servers)</pre><pre>print(&quot;Round Robin:&quot;, lb.round_robin())<br>print(&quot;Least Connections:&quot;, lb.least_connections())<br>print(&quot;IP Hash:&quot;, lb.ip_hash(&quot;192.168.1.1&quot;))<br>print(&quot;Weighted Round Robin:&quot;, lb.weighted_round_robin())<br>print(&quot;Random Selection:&quot;, lb.random_selection())<br>print(&quot;Least Response Time:&quot;, lb.least_response_time())</pre><h3>Conclusion</h3><p>Load balancers play a vital role in ensuring the reliability and performance of applications and services in today’s digital landscape. By understanding the various load balancing algorithms available, organizations can choose the most suitable method for their specific needs, ultimately leading to improved user experiences and efficient resource management.</p><p>if you found this useful, like this article and repost with other’s so they too get a better understanding of Load balancer and follow <a href="https://www.linkedin.com/in/sandip-das-developer/">Sandip Das</a> for more.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=5e30d7ed627c" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Client-Server Communication Deep Dive]]></title>
            <link>https://sandipdas.medium.com/client-server-communication-deep-dive-314a7fe15c06?source=rss-c11f2503225b------2</link>
            <guid isPermaLink="false">https://medium.com/p/314a7fe15c06</guid>
            <category><![CDATA[cloud]]></category>
            <category><![CDATA[web-development]]></category>
            <category><![CDATA[servers]]></category>
            <category><![CDATA[devops]]></category>
            <category><![CDATA[software-development]]></category>
            <dc:creator><![CDATA[Sandip Das]]></dc:creator>
            <pubDate>Sun, 16 Feb 2025 16:06:09 GMT</pubDate>
            <atom:updated>2025-02-16T16:06:09.026Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*5KH2RxFNo_wRcPEjP2bOag.gif" /></figure><p>Client-server communication is a fundamental concept enabling interaction between clients and servers, but let me clear it a bit more:</p><blockquote><em>Client-server communication is a model where a client (e.g., browser, mobile app) requests services from a server (e.g., web server, database), which processes the request and responds over a network using protocols like HTTP, WebSockets, or gRPC. It enables distributed computing, ensuring efficient resource sharing and data exchange.</em></blockquote><p>Understanding different communication methods is essential for designing efficient and scalable network applications.</p><p>Below are the key types of client-server communication, their characteristics, advantages, use cases, and coding examples.</p><h3>1. Synchronous Communication</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*5-Gq3xTI9V0hNDBb" /></figure><p>Synchronous communication occurs in real-time, requiring both client and server to be available simultaneously. It is characterized by immediate responses and is crucial for applications demanding timely data exchange.</p><p><strong>Advantages:</strong></p><ul><li>Real-time interaction</li><li>Immediate feedback</li><li>Ideal for time-sensitive applications</li></ul><p><strong>Use Cases:</strong></p><ul><li>Video conferencing</li><li>Online multiplayer gaming</li><li>Stock market trading platforms</li></ul><p><strong>Example:</strong></p><ul><li>HTTP (Hypertext Transfer Protocol)</li><li>WebSockets</li><li>gRPC (Google Remote Procedure Call)</li></ul><p><strong>Code Example: (Python — Synchronous HTTP Request):</strong></p><pre>import requests<br>response = requests.get(&#39;https://api.example.com/data&#39;)<br>print(response.text)</pre><h3>2. Asynchronous Communication</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*LrpQCgAxj9PeQHdb" /></figure><p>Asynchronous communication allows clients and servers to operate independently. The client can send a request without waiting for an immediate response, improving efficiency and scalability.</p><p><strong>Advantages:</strong></p><ul><li>Enhanced performance and scalability</li><li>Reduced wait times for clients</li><li>Flexibility in request processing</li></ul><p><strong>Use Cases:</strong></p><ul><li>Background task processing (e.g., order processing systems)</li><li>Push notifications in mobile apps</li><li>Asynchronous event-driven architectures</li></ul><p><strong>Example</strong>:</p><ul><li>RabbitMQ</li><li>Apache Kafka</li><li>AWS SQS (Simple Queue Service)</li><li>Programming Async scanarios</li></ul><p><strong>Code Example: Python — Asynchronous HTTP Request</strong></p><pre>import aiohttp<br>import asyncio</pre><pre>async def fetch():<br>    async with aiohttp.ClientSession() as session:<br>        async with session.get(&#39;https://api.example.com/data&#39;) as response:<br>            print(await response.text())</pre><pre>asyncio.run(fetch())</pre><h3>3. Request-Response Communication</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/744/0*J7dBNHFwsMiyqEkF" /></figure><p>In this model, the client sends a request, and the server processes it before returning a response. It is commonly used in web applications and API interactions.</p><p><strong>Advantages:</strong></p><ul><li>Simple and easy to implement</li><li>Well-supported across platforms</li><li>Predictable and structured</li></ul><p><strong>Use Cases:</strong></p><ul><li>RESTful API interactions</li><li>CRUD operations in web applications</li><li>Database queries and transactions</li></ul><p><strong>Example:</strong></p><ul><li>RESTful APIs</li><li>GraphQL</li><li>SOAP (Simple Object Access Protocol)</li></ul><p><strong>Code Example: Python — Flask API Request-Response</strong></p><pre>from flask import Flask, request, jsonify<br>app = Flask(__name__)</pre><pre>@app.route(&#39;/data&#39;, methods=[&#39;GET&#39;])<br>def get_data():<br>    return jsonify({&quot;message&quot;: &quot;Hello, World!&quot;})</pre><pre>if __name__ == &#39;__main__&#39;:<br>    app.run(debug=True)</pre><h3>4. Publish-Subscribe Communication (Pub-Sub)</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*hgcofXbxAhj7tYNJ" /></figure><p>The publish-subscribe model allows clients to subscribe to topics while servers publish messages to those topics. It enables decoupled and scalable communication.</p><p><strong>Advantages:</strong></p><ul><li>Scalable and flexible</li><li>Decoupled architecture</li><li>Efficient broadcasting to multiple clients</li></ul><p><strong>Use Cases:</strong></p><ul><li>Real-time news feeds (e.g., stock market alerts)</li><li>Social media notifications (e.g., Facebook updates)</li><li>IoT sensor data distribution</li></ul><p><strong>Example:</strong></p><ul><li>MQTT (Message Queuing Telemetry Transport)</li><li>Apache Kafka</li><li>Redis Pub/Sub</li></ul><p><strong>Code Example: Python — MQTT Publish-Subscribe</strong></p><pre>import paho.mqtt.client as mqtt</pre><pre>def on_message(client, userdata, message):<br>    print(f&quot;Received message: {message.payload.decode()}&quot;)</pre><pre>client = mqtt.Client()<br>client.on_message = on_message<br>client.connect(&quot;mqtt.example.com&quot;)<br>client.subscribe(&quot;/topic/test&quot;)<br>client.loop_start()</pre><h3>5. Peer-to-Peer (P2P) Communication</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/744/0*eFI-SelFnmP4TIDx" /></figure><p>In P2P communication, clients can act as both servers and clients, allowing direct resource sharing without a centralized server.</p><p><strong>Advantages:</strong></p><ul><li>Reduced server load</li><li>Increased fault tolerance</li><li>Enhanced resource sharing</li></ul><p><strong>Use Cases:</strong></p><ul><li>File sharing networks (e.g., BitTorrent)</li><li>Decentralized blockchain networks (e.g., Bitcoin, Ethereum)</li><li>Distributed computing systems (e.g., SETI@home)</li></ul><p><strong>Example:</strong></p><ul><li>BitTorrent</li><li>IPFS (InterPlanetary File System)</li><li>WebRTC</li></ul><p><strong>Code Example: Python — P2P Socket Communication</strong></p><pre>import socket</pre><pre># Server<br>server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)<br>server.bind((&quot;0.0.0.0&quot;, 5000))<br>server.listen(1)<br>conn, addr = server.accept()<br>print(&quot;Connected by&quot;, addr)<br>conn.sendall(b&#39;Hello, Peer!&#39;)<br>conn.close()</pre><pre># Client<br>client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)<br>client.connect((&quot;127.0.0.1&quot;, 5000))<br>data = client.recv(1024)<br>print(f&quot;Received {data.decode()}&quot;)<br>client.close()</pre><h3>Conclusion</h3><p>Choosing the right client-server communication method is crucial for building efficient and scalable network applications. Each method offers unique advantages suited for specific use cases. By leveraging these communication models effectively, developers can create robust, responsive, and scalable systems that meet user demands</p><p>Found it useful?</p><p>If Yes repost this article with your network and follow <a href="https://www.linkedin.com/in/sandip-das-developer/">Sandip Das</a> for more!</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=314a7fe15c06" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[I Wish I Knew These Design Principles & Patterns Before I Started Coding!]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-image"><a href="https://sandipdas.medium.com/i-wish-i-knew-these-design-principles-patterns-before-i-started-coding-19a064136e2f?source=rss-c11f2503225b------2"><img src="https://cdn-images-1.medium.com/max/1920/1*ybAcDD3MECXXNVuYxuIq4A.png" width="1920"></a></p><p class="medium-feed-snippet">First, let&#x2019;s understand what are Design principles and Design Patterns:</p><p class="medium-feed-link"><a href="https://sandipdas.medium.com/i-wish-i-knew-these-design-principles-patterns-before-i-started-coding-19a064136e2f?source=rss-c11f2503225b------2">Continue reading on Medium »</a></p></div>]]></description>
            <link>https://sandipdas.medium.com/i-wish-i-knew-these-design-principles-patterns-before-i-started-coding-19a064136e2f?source=rss-c11f2503225b------2</link>
            <guid isPermaLink="false">https://medium.com/p/19a064136e2f</guid>
            <category><![CDATA[development]]></category>
            <category><![CDATA[software-engineering]]></category>
            <category><![CDATA[software-architecture]]></category>
            <category><![CDATA[software-development]]></category>
            <category><![CDATA[coding]]></category>
            <dc:creator><![CDATA[Sandip Das]]></dc:creator>
            <pubDate>Fri, 14 Feb 2025 06:38:16 GMT</pubDate>
            <atom:updated>2025-02-14T06:38:16.937Z</atom:updated>
        </item>
        <item>
            <title><![CDATA[Basic AI & ML Concepts for MLOps Engineers]]></title>
            <link>https://sandipdas.medium.com/basic-ai-ml-concepts-for-mlops-engineers-d84a33d2418c?source=rss-c11f2503225b------2</link>
            <guid isPermaLink="false">https://medium.com/p/d84a33d2418c</guid>
            <category><![CDATA[artificial-intelligence]]></category>
            <category><![CDATA[devops]]></category>
            <category><![CDATA[machine-learning]]></category>
            <category><![CDATA[ai]]></category>
            <category><![CDATA[mlops]]></category>
            <dc:creator><![CDATA[Sandip Das]]></dc:creator>
            <pubDate>Fri, 31 Jan 2025 15:01:35 GMT</pubDate>
            <atom:updated>2025-01-31T15:01:35.694Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*CORuBZLH-pjUuqizuGMBjg.png" /></figure><p>There’s a lot of misunderstanding (or no understanding at all) of AI &amp; ML , before jumping deep into the world of MLOps, let’s clear those concepts RIGHT NOW!</p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2FAP5rgj7n100%3Ffeature%3Doembed&amp;display_name=YouTube&amp;url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DAP5rgj7n100&amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2FAP5rgj7n100%2Fhqdefault.jpg&amp;type=text%2Fhtml&amp;schema=youtube" width="854" height="480" frameborder="0" scrolling="no"><a href="https://medium.com/media/08f64f4cbac3dd0a792c4660f669f072/href">https://medium.com/media/08f64f4cbac3dd0a792c4660f669f072/href</a></iframe><h3>First, let’s understand what is AI?</h3><p>Artificial Intelligence (AI) is the simulation of human intelligence in machines to perform tasks like learning, reasoning, and problem-solving.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/919/0*GG4HQiKTkqchTYf6" /></figure><h3>What is ML?</h3><p>Machine Learning (ML) is a subset of AI that enables systems to learn from data and make predictions or decisions without explicit programming.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/998/0*exa48-FLimpmgJ4E" /></figure><h3>What is the ML Model?</h3><p>An ML (Machine Learning) model is a mathematical representation trained on data using an algorithm to recognize patterns, make predictions, or decisions without explicit programming.</p><p>It is the output of the training process, enabling a system to infer outcomes from new, unseen data.</p><p>ML Model Training Methods:</p><ul><li><strong>Supervised Learning</strong>: Learns a mapping from input data to labeled outputs for prediction tasks (e.g., regression, classification).</li><li><strong>Unsupervised Learning</strong>: Identifies patterns, structures, or clusters in unlabeled data (e.g., clustering, dimensionality reduction).</li><li><strong>Reinforcement Learning</strong>: Trains agents to make sequential decisions by maximizing rewards in an environment (e.g., Q-learning, policy-based methods).</li><li><strong>Semi-Supervised Learning</strong>: Combines labeled and unlabeled data to improve learning accuracy, especially when labeled data is scarce.</li><li><strong>Deep Learning (DL)</strong>: Uses neural networks with multiple layers to learn complex features from data, enabling tasks like image recognition and natural language understanding.</li><li><strong>Online Learning</strong>: Continuously updates the model as new data arrives, ideal for dynamic environments.</li><li><strong>Transfer Learning</strong>: Adapts knowledge from a previously trained model to a new, but related, task or domain.</li><li><strong>Ensemble Learning:</strong> Combines multiple models to improve overall prediction accuracy, often using techniques like bagging and boosting.</li></ul><h3>Foundation Models (FMs):</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/744/0*SptYk7AeBIfrdfJt" /></figure><p><strong>Foundation Models (FMs) are large-scale AI models trained on vast amounts of diverse data</strong>, making them general-purpose and adaptable for a wide range of tasks, such as <strong>natural language processing (NLP), image generation, and coding</strong>. These models serve as the “<strong>foundation</strong>” for <strong>various AI applications, allowing fine-tuning for specific use cases.</strong></p><p><strong>Key Characteristics of Foundation Models</strong></p><ul><li>Pretrained on Massive Datasets Trained on billions of parameters using text, code, images, and videos.Learn broad patterns in data, making them adaptable.</li><li>General-Purpose Capabilities Can perform multiple tasks (e.g., text summarization, translation, image generation) without retraining. Examples: GPT-4 (text), Stable Diffusion (images), Code Llama (coding).</li><li>Fine-Tuning for Custom Use Cases Can be customized for domain-specific applications. Example: A healthcare chatbot trained on medical literature.</li><li>Scalability &amp; API Access Deployed in cloud environments like AWS, Azure, and Google Cloud.Available via APIs for easy integration.</li></ul><h3>Famous ML Models</h3><ul><li><strong>DeepSeek R1</strong> — A high-performance Chinese AI model optimized for reasoning and language tasks.</li><li><strong>Sonet</strong> — A small but efficient LLM designed for resource-constrained environments.</li><li><strong>Meta’s LLaMA</strong> — A family of open-weight AI models optimized for research and deployment.</li><li><strong>OpenAI’s GPT</strong> — A state-of-the-art generative AI model powering ChatGPT and other applications.</li><li><strong>Google’s Gemini </strong>— A multimodal AI model integrating text, images, and reasoning capabilities.</li><li><strong>BERT (Bidirectional Encoder Representations from Transformers) </strong>— A pre-trained NLP model by Google designed for understanding context in language tasks, widely used for search ranking, Q&amp;A, and text classification.</li><li><strong>Mistral AI </strong>— A state-of-the-art open-weight model known for efficiency and performance.</li><li><strong>Claude (Anthropic)</strong> — A conversational AI model focused on safety, accuracy, and reliability</li><li><strong>Mosaic MPT</strong> — A scalable LLM optimized for low-latency inference.</li></ul><p>While talking about Foundation models or any famous opensource models , let’s talk about Hugging face, using which we can download and do a lot more:</p><h3>Hugging Face</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/744/0*ag3PhMqlxuGnMhTs" /></figure><p>Hugging Face is the leading open-source AI hub, providing pretrained AI models, datasets, and developer tools for NLP, computer vision, and beyond. It acts as a collaborative AI platform where researchers and developers share and fine-tune models.</p><p><strong>Key Features:</strong></p><ul><li>Hosts thousands of open-source AI models (GPT, LLaMA, DeepSeek, Mistral, etc.).</li><li>Provides Transformers library, a widely used framework for NLP models.</li><li>Allows easy fine-tuning and deployment of models via Inference API.</li><li>Supports AI communities, enabling research collaboration and development.</li><li>Hugging Face is central to the AI ecosystem, powering AI applications across research, startups, and enterprise deployments.</li></ul><p>Now, before we talk about Generative AI , we should first learn about LLM</p><h3>LLM</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*ZxorX3e7Z552K8Rg" /></figure><p><strong>LLMs stands for Large Language Models!</strong></p><p>I<strong>t’s an advanced deep learning models trained on vast amounts of text data to understand, generate, and process human language. These models, based on architectures like Transformer (e.g., GPT, BERT, LLaMA)</strong></p><h3>How LLMs Work?</h3><ul><li><strong>Training on Massive Datasets</strong> — LLMs are trained on billions to trillions of words and diverse datasets (e.g., books, websites, articles)</li><li><strong>Tokenization</strong> — Text is broken into smaller units e.g. words or subwords (called “tokens”) for processing.</li><li><strong>Self-Attention Mechanism</strong> — LLMs weigh the importance of different words in a sentence to understand context.</li><li><strong>Contains billions of parameters (e.g., GPT-3 has 175 billion parameters).</strong></li></ul><p>LLMs Limitations:</p><ul><li><strong>Hallucinations</strong>: May generate plausible-sounding but incorrect/fabricated information.</li><li><strong>Bias</strong>: Reflects biases present in training data (e.g., cultural, gender, or political biases).</li><li><strong>Computational Cost:</strong> Requires massive computational power for training and inference.</li><li><strong>Ethics</strong>: Risks of misuse (e.g., deepfakes, spam, misinformation).</li><li><strong>Context Window</strong>: Limited memory of earlier text in long conversations (though newer models have improved this).</li></ul><p><strong>Now, let’s learn about Generative AI:</strong></p><h3>Generative AI</h3><p>Generative AI refers to artificial intelligence models that can generate new content (text, images, code, music, video, etc.) based on learned patterns from large datasets. Unlike traditional AI, which mainly classifies or predicts, Generative AI creates new outputs. e.g. ChatGPT, Claude, Gemini, Github co-pilot etc</p><p><strong>How Generative AI Works?</strong></p><ul><li><strong>Pre-training on Large Datasets</strong> — AI models are trained on massive datasets (text, images, code, etc.).</li><li><strong>Transformer-Based Architectures </strong>— Uses deep learning models like GPT (for text), Stable Diffusion (for images), or DALL·E.</li><li><strong>Prompt-Based Generation</strong> — Users input a text prompt, and the AI generates relevant content.</li><li><strong>Fine-tuning for Specific Tasks</strong> — The models can be adapted for specific domains (e.g., DevOps automation, cybersecurity).</li></ul><p><strong>Key Models in Generative AI:</strong></p><ul><li><strong>LLMs (Large Language Models)</strong> — DeepSeek v3 &amp; R1, GPT, LLaMA, Falcon (for text &amp; code generation)</li><li><strong>Image Generators</strong> — DALL·E, MidJourney, Stable Diffusion</li><li><strong>Audio &amp; Music Generators</strong> — OpenAI’s Jukebox, Google’s MusicLM</li><li><strong>Video Generators </strong>— RunwayML, Sora</li></ul><p>While talking about Gen AI, we should learn about RAG:</p><p><strong>Retrieval-Augmented Generation (RAG):</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/898/0*gSQSEuRBxSIxL1Jx" /><figcaption>Credits: AWS Blogs</figcaption></figure><p><strong>Retrieval-Augmented Generation (RAG)</strong> is an AI technique that enhances the responses of large language models (LLMs) by retrieving relevant external data before generating an answer. It helps LLMs overcome knowledge cutoffs, hallucinations, and limited context windows.</p><p>How RAG Works?</p><ul><li><strong>User Query → </strong>The model receives a question or prompt.</li><li><strong>Retrieval Step →</strong> It searches external data sources (databases, documents, APIs, etc.) for relevant information.</li><li><strong>Augmentation Step →</strong> The retrieved data is fed back into the LLM to improve its understanding.</li><li><strong>Generation Step →</strong> The model generates an accurate, context-aware response.</li></ul><p>This approach combines retrieval-based search with generative AI, leading to more accurate, up-to-date, and explainable results.</p><p>While talking about GenAI , how can we miss Amazon BedRock:</p><h3>Amazon BedRock</h3><p>Amazon Bedrock is a fully managed service by AWS that allows users to build and scale generative AI applications using foundation models (FMs) from various AI model providers. It enables developers to integrate these models into their applications without managing the underlying infrastructure.</p><h4><strong>Why to use Amazon Bedrock?</strong></h4><p><strong>Access to Multiple Foundation Models:</strong></p><ul><li>Supports models from Amazon, Anthropic, Cohere, Meta, Stability AI, Mistral AI, and others.</li><li>Examples: Claude (Anthropic), Llama (Meta), Command R (Cohere), Stable Diffusion (Stability AI).</li></ul><p><strong>Customization with Fine-tuning &amp; RAG:</strong></p><ul><li>Fine-tune foundation models using your own proprietary data.</li><li>Use Retrieval Augmented Generation (RAG) to improve model responses with enterprise data.</li></ul><p><strong>Seamless Integration with AWS Services</strong></p><ul><li>Amazon S3 (for data storage).</li><li>AWS Lambda (for serverless execution).</li><li>Amazon SageMaker (for ML/AI workflows).</li><li>Amazon Kendra (for AI-powered search).</li><li>Amazon DynamoDB / RDS (for structured data storage)</li></ul><p>Hope this will help understand AI &amp; ML basics, next, we will cover Data Extraction, Vadilation &amp; Preparation for MLOps</p><p>Follow <a href="https://www.linkedin.com/in/sandip-das-developer/">Sandip Das</a> for more!</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=d84a33d2418c" width="1" height="1" alt="">]]></content:encoded>
        </item>
    </channel>
</rss>