<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: SHIVAM UPADHYAY</title>
    <description>The latest articles on DEV Community by SHIVAM UPADHYAY (@upshivam786).</description>
    <link>https://dev.to/upshivam786</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3363702%2F62c03908-e71c-43c5-be0e-ba16be6a50d2.jpeg</url>
      <title>DEV Community: SHIVAM UPADHYAY</title>
      <link>https://dev.to/upshivam786</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/upshivam786"/>
    <language>en</language>
    <item>
      <title>Building an AI Cloud Cost Intelligence Platform That Doesn't Let AI Make Infrastructure Decisions</title>
      <dc:creator>SHIVAM UPADHYAY</dc:creator>
      <pubDate>Mon, 29 Jun 2026 04:11:00 +0000</pubDate>
      <link>https://dev.to/upshivam786/building-an-ai-cloud-cost-intelligence-platform-that-doesnt-let-ai-make-infrastructure-decisions-5gbn</link>
      <guid>https://dev.to/upshivam786/building-an-ai-cloud-cost-intelligence-platform-that-doesnt-let-ai-make-infrastructure-decisions-5gbn</guid>
      <description>&lt;p&gt;Most AI-powered cloud optimization demos follow a simple approach:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Azure Resources
      ↓
Large Language Model
      ↓
Recommendations
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;At first glance, this seems impressive.&lt;/p&gt;

&lt;p&gt;But while building my own Azure Cost Intelligence Platform, I ran into a problem that completely changed my architecture.&lt;/p&gt;

&lt;p&gt;The AI was generating infrastructure recommendations that looked correct—but some of them simply didn't exist.&lt;/p&gt;

&lt;p&gt;For example, it suggested VM SKUs that Azure doesn't support and even produced Azure CLI commands with incorrect parameters. That was a wake-up call.&lt;/p&gt;

&lt;p&gt;Instead of trying to "prompt engineer" my way out of the problem, I redesigned the application.&lt;/p&gt;

&lt;h2&gt;
  
  
  The New Architecture
&lt;/h2&gt;

&lt;p&gt;Rather than letting AI make decisions, I split the system into independent components:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Azure Scanner&lt;/strong&gt; → Discovers Azure resources.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Metrics Engine&lt;/strong&gt; → Collects real CPU utilization from Azure Monitor.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Pricing Engine&lt;/strong&gt; → Retrieves actual VM pricing.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Azure Advisor Integration&lt;/strong&gt; → Fetches Microsoft's own optimization recommendations.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Recommendation Engine&lt;/strong&gt; → Applies deterministic Python rules to decide what should happen.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Command Builder&lt;/strong&gt; → Generates verified Azure CLI commands.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;LLM&lt;/strong&gt; → Explains &lt;em&gt;why&lt;/em&gt; a recommendation matters in simple language.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The AI never decides &lt;strong&gt;what&lt;/strong&gt; to do—it only explains decisions that have already been made.&lt;/p&gt;

&lt;h2&gt;
  
  
  Example
&lt;/h2&gt;

&lt;p&gt;Instead of asking the LLM:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"What should I do with this VM?"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;the backend first gathers facts:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Current VM SKU: &lt;code&gt;Standard_B2ts_v2&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Average CPU: &lt;strong&gt;0.3%&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Peak CPU: &lt;strong&gt;1.9%&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Current Cost: &lt;strong&gt;$1.64/month&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Recommended Cost: &lt;strong&gt;$0.90/month&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The recommendation engine then determines:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Resize VM
↓
Target SKU: Standard_B2ats_v2
↓
Estimated Savings: $0.74/month
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Finally, the LLM produces a human-friendly explanation like:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"This virtual machine is significantly underutilized. Resizing it can reduce monthly costs without affecting current workloads."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Notice that the AI never invents the recommendation or the command—it only explains verified data.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tech Stack
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;FastAPI&lt;/li&gt;
&lt;li&gt;React + TypeScript&lt;/li&gt;
&lt;li&gt;Docker&lt;/li&gt;
&lt;li&gt;Azure Container Apps&lt;/li&gt;
&lt;li&gt;Azure Monitor&lt;/li&gt;
&lt;li&gt;Azure Advisor&lt;/li&gt;
&lt;li&gt;Azure Pricing APIs&lt;/li&gt;
&lt;li&gt;Azure Managed Identity&lt;/li&gt;
&lt;li&gt;PostgreSQL&lt;/li&gt;
&lt;li&gt;Groq API (LLM)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What I Learned
&lt;/h2&gt;

&lt;p&gt;This project taught me an important lesson:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AI should not replace engineering logic.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Cloud infrastructure decisions should come from verified APIs, business rules, and deterministic code. AI adds the most value when it helps engineers understand those decisions, not when it generates them.&lt;/p&gt;

&lt;p&gt;That's the architecture I'll continue using as I expand this platform with historical cost trends, anomaly detection, and multi-cloud (AWS &amp;amp; GCP) support.&lt;/p&gt;




&lt;p&gt;If you're building AI-assisted DevOps or FinOps tools, I'd love to hear how you're balancing automation with reliability.&lt;/p&gt;

</description>
      <category>blog</category>
    </item>
    <item>
      <title>Building a Self-Hosted MLOps Platform from Scratch with FastAPI, PostgreSQL, GCS, and Docker</title>
      <dc:creator>SHIVAM UPADHYAY</dc:creator>
      <pubDate>Tue, 23 Jun 2026 09:25:20 +0000</pubDate>
      <link>https://dev.to/upshivam786/building-a-self-hosted-mlops-platform-from-scratch-with-fastapi-postgresql-gcs-and-docker-46i0</link>
      <guid>https://dev.to/upshivam786/building-a-self-hosted-mlops-platform-from-scratch-with-fastapi-postgresql-gcs-and-docker-46i0</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;Over the past few months, I set out to answer a simple question:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What does it take to build a production-style MLOps platform from scratch?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;While tools like MLflow, SageMaker Model Registry, and Kubeflow provide powerful capabilities, I wanted to understand the underlying architecture and engineering decisions behind them. Instead of only using existing platforms, I decided to build my own.&lt;/p&gt;

&lt;p&gt;The result is &lt;strong&gt;Kimchi&lt;/strong&gt;, a self-hosted MLOps platform that supports:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Model Registration&lt;/li&gt;
&lt;li&gt;Model Versioning&lt;/li&gt;
&lt;li&gt;Artifact Management&lt;/li&gt;
&lt;li&gt;Experiment Tracking&lt;/li&gt;
&lt;li&gt;Audit Logging&lt;/li&gt;
&lt;li&gt;Role-Based Access Control (RBAC)&lt;/li&gt;
&lt;li&gt;Python SDK&lt;/li&gt;
&lt;li&gt;CI/CD Automation&lt;/li&gt;
&lt;li&gt;Google Cloud Storage Integration&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This project was built using:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;FastAPI&lt;/li&gt;
&lt;li&gt;PostgreSQL&lt;/li&gt;
&lt;li&gt;SQLAlchemy&lt;/li&gt;
&lt;li&gt;Alembic&lt;/li&gt;
&lt;li&gt;Docker&lt;/li&gt;
&lt;li&gt;Google Cloud Storage (GCS)&lt;/li&gt;
&lt;li&gt;GitHub Actions&lt;/li&gt;
&lt;li&gt;JWT Authentication&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In this article, I'll share how the project evolved from a simple model registry into a multi-phase MLOps platform.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Problem
&lt;/h2&gt;

&lt;p&gt;In many machine learning projects, models are often stored in random locations:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Local machines&lt;/li&gt;
&lt;li&gt;Shared drives&lt;/li&gt;
&lt;li&gt;Cloud storage buckets&lt;/li&gt;
&lt;li&gt;Team chat channels&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Over time, teams start asking difficult questions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Which model version is currently in production?&lt;/li&gt;
&lt;li&gt;Who promoted this version?&lt;/li&gt;
&lt;li&gt;Which dataset was used to train it?&lt;/li&gt;
&lt;li&gt;What accuracy did it achieve?&lt;/li&gt;
&lt;li&gt;Where is the model artifact stored?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Without a centralized platform, answering these questions becomes difficult.&lt;/p&gt;

&lt;p&gt;I wanted a system that could act as a single source of truth for the ML lifecycle.&lt;/p&gt;




&lt;h2&gt;
  
  
  Phase 1 — Building the Foundation
&lt;/h2&gt;

&lt;p&gt;The first phase focused on creating a Model Registry.&lt;/p&gt;

&lt;p&gt;Key capabilities:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Model registration&lt;/li&gt;
&lt;li&gt;Model versioning&lt;/li&gt;
&lt;li&gt;Artifact upload and download&lt;/li&gt;
&lt;li&gt;JWT Authentication&lt;/li&gt;
&lt;li&gt;Role-Based Access Control&lt;/li&gt;
&lt;li&gt;Google Cloud Storage integration&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Architecture
&lt;/h3&gt;

&lt;p&gt;The platform separates metadata from artifacts:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;PostgreSQL stores model metadata&lt;/li&gt;
&lt;li&gt;GCS stores model artifacts&lt;/li&gt;
&lt;li&gt;FastAPI exposes REST APIs&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This architecture mirrors how many production MLOps systems are designed.&lt;/p&gt;




&lt;h2&gt;
  
  
  Phase 2 — Governance Through Audit Logging
&lt;/h2&gt;

&lt;p&gt;Once the registry was functional, I realized something important:&lt;/p&gt;

&lt;p&gt;The platform had no memory.&lt;/p&gt;

&lt;p&gt;If someone promoted a model to production or deleted a version, there was no way to know:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Who made the change&lt;/li&gt;
&lt;li&gt;What changed&lt;/li&gt;
&lt;li&gt;When it happened&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;To solve this, I implemented an Audit Logging system.&lt;/p&gt;

&lt;p&gt;Every write operation now creates an immutable audit record:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;CREATE&lt;/li&gt;
&lt;li&gt;UPDATE&lt;/li&gt;
&lt;li&gt;DELETE&lt;/li&gt;
&lt;li&gt;PROMOTE&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This allows teams to trace every important lifecycle event.&lt;/p&gt;

&lt;p&gt;Example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Shivam
PROMOTE
Model Version 5
staging → production
2026-06-16 05:01
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This feature brought governance and accountability to the platform.&lt;/p&gt;




&lt;h2&gt;
  
  
  Phase 3 — Experiment Tracking
&lt;/h2&gt;

&lt;p&gt;At this stage, models could be registered, but training information was still buried inside artifact files.&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;p&gt;metrics.json&lt;br&gt;
params.json&lt;/p&gt;

&lt;p&gt;could be uploaded, but the platform couldn't answer:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Which model has the highest accuracy?&lt;/li&gt;
&lt;li&gt;Which version achieved the best F1 score?&lt;/li&gt;
&lt;li&gt;What hyperparameters were used?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;To solve this, I introduced Experiment Tracking.&lt;/p&gt;

&lt;p&gt;A new Training Run layer stores:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Hyperparameters&lt;/li&gt;
&lt;li&gt;Metrics&lt;/li&gt;
&lt;li&gt;Dataset hashes&lt;/li&gt;
&lt;li&gt;Framework information&lt;/li&gt;
&lt;li&gt;Training duration&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This enables powerful queries such as:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight http"&gt;&lt;code&gt;&lt;span class="err"&gt;GET /experiments?min_accuracy=0.90
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;and&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight http"&gt;&lt;code&gt;&lt;span class="err"&gt;GET /models/{id}/versions/compare
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The platform now supports experiment search, filtering, and version comparison.&lt;/p&gt;




&lt;h2&gt;
  
  
  Phase 4 — Improving Developer Experience
&lt;/h2&gt;

&lt;p&gt;After building the core platform, I shifted focus to usability.&lt;/p&gt;

&lt;h3&gt;
  
  
  Python SDK
&lt;/h3&gt;

&lt;p&gt;Instead of interacting with the API using raw curl commands, users can now work with a Python SDK.&lt;/p&gt;

&lt;p&gt;Example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;kimchi_sdk&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;ModelRegistry&lt;/span&gt;

&lt;span class="n"&gt;registry&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;ModelRegistry&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;http://localhost:8000&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;username&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;user&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;password&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;password&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;registry&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;create_model&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;fraud-detector&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  GitHub Actions CI/CD
&lt;/h3&gt;

&lt;p&gt;Every push automatically triggers:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Dependency installation&lt;/li&gt;
&lt;li&gt;Automated test execution&lt;/li&gt;
&lt;li&gt;Validation checks&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This ensures platform stability and catches regressions early.&lt;/p&gt;

&lt;h3&gt;
  
  
  Admin APIs
&lt;/h3&gt;

&lt;p&gt;Role management is now handled through APIs instead of direct database modifications.&lt;/p&gt;

&lt;h3&gt;
  
  
  Refresh Tokens
&lt;/h3&gt;

&lt;p&gt;Refresh tokens provide a smoother authentication experience and prepare the platform for future UI integrations.&lt;/p&gt;




&lt;h2&gt;
  
  
  Lessons Learned
&lt;/h2&gt;

&lt;p&gt;Building this platform taught me much more than simply writing APIs.&lt;/p&gt;

&lt;p&gt;Some of the key lessons included:&lt;/p&gt;

&lt;h3&gt;
  
  
  Designing for Evolution
&lt;/h3&gt;

&lt;p&gt;Each phase built on top of the previous one.&lt;/p&gt;

&lt;p&gt;Instead of trying to build everything at once, I focused on creating a strong foundation and then extending it incrementally.&lt;/p&gt;

&lt;h3&gt;
  
  
  Governance Matters
&lt;/h3&gt;

&lt;p&gt;Tracking who changed what becomes increasingly important as teams grow.&lt;/p&gt;

&lt;p&gt;Audit logging turned out to be one of the most valuable additions.&lt;/p&gt;

&lt;h3&gt;
  
  
  Experiment Metadata is First-Class Data
&lt;/h3&gt;

&lt;p&gt;Metrics and hyperparameters should not live only inside artifact files.&lt;/p&gt;

&lt;p&gt;Making them queryable dramatically improves usability.&lt;/p&gt;

&lt;h3&gt;
  
  
  Developer Experience Matters
&lt;/h3&gt;

&lt;p&gt;Features like SDKs and CI/CD pipelines are often overlooked but are critical for adoption.&lt;/p&gt;




&lt;h2&gt;
  
  
  What's Next?
&lt;/h2&gt;

&lt;p&gt;The next phase focuses on Governance and Enterprise Readiness:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Signed GCS URLs&lt;/li&gt;
&lt;li&gt;Model Cards&lt;/li&gt;
&lt;li&gt;Dataset Lineage&lt;/li&gt;
&lt;li&gt;Drift Monitoring&lt;/li&gt;
&lt;li&gt;Kubernetes Deployments&lt;/li&gt;
&lt;li&gt;Terraform Infrastructure&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The goal is to continue evolving Kimchi into a production-grade MLOps platform.&lt;/p&gt;




&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;

&lt;p&gt;This project started as an exercise to understand how model registries work internally.&lt;/p&gt;

&lt;p&gt;Over time, it evolved into a hands-on exploration of:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;MLOps&lt;/li&gt;
&lt;li&gt;Backend Engineering&lt;/li&gt;
&lt;li&gt;Cloud Infrastructure&lt;/li&gt;
&lt;li&gt;Governance&lt;/li&gt;
&lt;li&gt;Experiment Tracking&lt;/li&gt;
&lt;li&gt;Developer Experience&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Building systems from scratch is one of the best ways to understand the trade-offs behind production software.&lt;/p&gt;

&lt;p&gt;If you're interested in MLOps, backend engineering, or cloud-native systems, I highly recommend building something similar yourself.&lt;/p&gt;

&lt;h2&gt;
  
  
  Project Repository
&lt;/h2&gt;

&lt;p&gt;GitHub Repository:&lt;/p&gt;

&lt;p&gt;[Add your GitHub repository URL here]&lt;/p&gt;

&lt;p&gt;If you have suggestions, feedback, or ideas for future phases, feel free to connect with me.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>devops</category>
      <category>python</category>
      <category>mlops</category>
    </item>
    <item>
      <title>🎉 Happy New Year, Devs! 🎉</title>
      <dc:creator>SHIVAM UPADHYAY</dc:creator>
      <pubDate>Fri, 02 Jan 2026 05:15:22 +0000</pubDate>
      <link>https://dev.to/upshivam786/happy-new-year-devs-4j2e</link>
      <guid>https://dev.to/upshivam786/happy-new-year-devs-4j2e</guid>
      <description>&lt;p&gt;Grateful for another year of learning, building, breaking, and fixing things.&lt;br&gt;
Looking forward to writing cleaner code, learning new tools, and growing together as a community in 2026.&lt;/p&gt;

&lt;p&gt;Wishing you all successful builds, fewer bugs, and lots of innovation ahead 🚀&lt;br&gt;
Happy New Year!&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Completed Linux for DevOps Beginners 🚀 #devops #linux #learninginpublic #resources</title>
      <dc:creator>SHIVAM UPADHYAY</dc:creator>
      <pubDate>Thu, 24 Jul 2025 16:13:49 +0000</pubDate>
      <link>https://dev.to/upshivam786/completed-linux-for-devops-beginners-devops-linux-learninginpublic-resources-57j9</link>
      <guid>https://dev.to/upshivam786/completed-linux-for-devops-beginners-devops-linux-learninginpublic-resources-57j9</guid>
      <description>&lt;p&gt;Hey everyone! 👋&lt;/p&gt;

&lt;p&gt;Just wanted to share a small win — I’ve completed my first Linux course as part of my DevOps journey. 🐧&lt;br&gt;
I started with the basics: terminal commands, file management, permissions, and a bit of scripting.&lt;/p&gt;

&lt;p&gt;Why Linux?&lt;br&gt;
Because it’s everywhere in DevOps — servers, containers, cloud. It’s like the home base, so I knew I had to start here.&lt;/p&gt;

&lt;p&gt;If you’re also starting out, here are a few free resources I found super helpful:&lt;br&gt;
🔹 The Linux Command Line book — linuxcommand.org/tlcl.php&lt;br&gt;
🔹 Linux Journey (fun and simple) — linuxjourney.com&lt;br&gt;
🔹 FreeCodeCamp YouTube video — search "Linux crash course freecodecamp"&lt;br&gt;
🔹 Codecademy CLI basics — codecademy.com&lt;br&gt;
🔹 Ubuntu command line guide — ubuntu.com/tutorials/command-line-for-beginners&lt;/p&gt;

&lt;p&gt;Next, I’m going to explore Git and shell scripting. Excited to keep learning and building step by step.&lt;/p&gt;

&lt;p&gt;If you're also learning DevOps, let’s connect. We can share tips and support each other. This is all part of learning in public. :)&lt;/p&gt;

&lt;h1&gt;
  
  
  DevOpsJourney #LinuxBasics #KeepLearning #100DaysOfDevOps
&lt;/h1&gt;

</description>
    </item>
    <item>
      <title>My First Step into DevOps: Linux Basics</title>
      <dc:creator>SHIVAM UPADHYAY</dc:creator>
      <pubDate>Thu, 17 Jul 2025 12:34:37 +0000</pubDate>
      <link>https://dev.to/upshivam786/my-first-step-into-devops-linux-basics-4ih6</link>
      <guid>https://dev.to/upshivam786/my-first-step-into-devops-linux-basics-4ih6</guid>
      <description>&lt;p&gt;Hey Dev Community! 👋&lt;/p&gt;

&lt;p&gt;I'm excited to kick off my journey toward becoming a DevOps Engineer.&lt;br&gt;
Step 1: I'm diving into Linux for Beginners — building the foundation brick by brick. 🧱&lt;/p&gt;

&lt;p&gt;I'll be sharing my progress, learnings, and challenges here.&lt;br&gt;
If you're on a similar path or have tips to share, let's connect and grow together!&lt;/p&gt;

&lt;h1&gt;
  
  
  DevOps #Linux #BeginnerJourney #LearningInPublic
&lt;/h1&gt;

</description>
      <category>devops</category>
      <category>linux</category>
      <category>career</category>
    </item>
  </channel>
</rss>
