<?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: M. Ibtsam</title>
    <description>The latest articles on DEV Community by M. Ibtsam (@m_ibtsam_8d90b7407629516).</description>
    <link>https://dev.to/m_ibtsam_8d90b7407629516</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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3065762%2F694d0b29-1586-4d39-a6d4-0ce7d387f9bb.png</url>
      <title>DEV Community: M. Ibtsam</title>
      <link>https://dev.to/m_ibtsam_8d90b7407629516</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/m_ibtsam_8d90b7407629516"/>
    <language>en</language>
    <item>
      <title>Key DevOps Career Lessons from an Industry Session at NetSol</title>
      <dc:creator>M. Ibtsam</dc:creator>
      <pubDate>Mon, 05 Jan 2026 16:59:19 +0000</pubDate>
      <link>https://dev.to/m_ibtsam_8d90b7407629516/key-devops-career-lessons-from-an-industry-session-at-netsol-1nd1</link>
      <guid>https://dev.to/m_ibtsam_8d90b7407629516/key-devops-career-lessons-from-an-industry-session-at-netsol-1nd1</guid>
      <description>&lt;p&gt;Today, I attended a highly insightful DevOps career guidance session hosted by &lt;strong&gt;Sir Muhammad Awais&lt;/strong&gt;, with &lt;strong&gt;Sir Faran Tariq&lt;/strong&gt;, a DevOps Team Lead at &lt;strong&gt;NetSol&lt;/strong&gt;, as the chief guest.&lt;/p&gt;

&lt;p&gt;The session was focused on helping students and freshers understand the current DevOps and Cloud job market, realistic career paths, and the skills that truly matter in the industry.&lt;/p&gt;

&lt;h2&gt;
  
  
  Will AI Replace DevOps Jobs?
&lt;/h2&gt;

&lt;p&gt;The session started with a common fear many of us have today:&lt;/p&gt;

&lt;p&gt;“AI will take over IT jobs.”&lt;/p&gt;

&lt;p&gt;Sir Faran cleared this misconception very clearly.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;AI will not replace problem solvers.&lt;/li&gt;
&lt;li&gt;If you are learning only to perform repetitive or labor-based tasks, AI may replace that role.&lt;/li&gt;
&lt;li&gt;But if you focus on problem-solving, critical thinking, and understanding systems deeply, AI will actually secure and enhance your career.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;DevOps engineers are expected to think, analyze, optimize, and improve systems—not just run commands.&lt;/p&gt;

&lt;h2&gt;
  
  
  Learn the “WHY” Before the “HOW”
&lt;/h2&gt;

&lt;p&gt;One of the most important lessons from the session was about learning effectively.&lt;/p&gt;

&lt;p&gt;Before learning any tool or technology, you should always ask:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Why am I learning this?&lt;/li&gt;
&lt;li&gt;What problem does it solve?&lt;/li&gt;
&lt;li&gt;How does it solve that problem?&lt;/li&gt;
&lt;li&gt;Which tools are used and why?&lt;/li&gt;
&lt;li&gt;How does it improve efficiency, security, and reliability?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For example, if you are learning DevOps, don’t start directly with tools. First, understand the problems DevOps was created to solve, and then move toward tools and implementations.&lt;/p&gt;

&lt;h2&gt;
  
  
  Interviews Are Learning Opportunities
&lt;/h2&gt;

&lt;p&gt;After technical skills, the session focused on interpersonal skills and interview mindset.&lt;/p&gt;

&lt;p&gt;Most interviewers look for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Clear communication skills&lt;/li&gt;
&lt;li&gt;Genuine interest in the company&lt;/li&gt;
&lt;li&gt;Passion and a positive learning attitude&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;An interview should not feel like a "jail". It should be treated as a learning center.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;If you fail to answer a question in an interview, that’s okay.&lt;/li&gt;
&lt;li&gt;But if you don’t learn it afterward and fail again later, that’s not okay.
A good habit is to write down interview questions after every interview and review them regularly.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Degrees vs Certificates vs Real Skills
&lt;/h2&gt;

&lt;p&gt;Sir Faran also shared clarity on degrees and certifications:&lt;/p&gt;

&lt;p&gt;In service-based companies, degrees and certifications can help you get shortlisted.&lt;/p&gt;

&lt;p&gt;In product-based companies, your concepts, hands-on work, and problem-solving skills matter more than certificates.&lt;/p&gt;

&lt;p&gt;Your real value comes from how well you understand systems and solve real-world problems.&lt;/p&gt;

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

&lt;p&gt;This session provided practical industry insights that every DevOps or Cloud aspirant should know. It helped clarify expectations, required skills, and the mindset needed to grow in this field.&lt;/p&gt;

&lt;p&gt;Special thanks to Sir Muhammad Awais for hosting this session and Sir Faran for sharing real-world DevOps experience and guidance.&lt;/p&gt;

&lt;p&gt;If you’re planning a career in DevOps or Cloud, sessions like these can give you clarity and direction.&lt;/p&gt;

</description>
      <category>devops</category>
      <category>cloudcomputing</category>
      <category>aws</category>
      <category>techcareers</category>
    </item>
    <item>
      <title>From Zero to ECS: My Journey of Deploying a Micro-service with AWS CodePipeline, CodeBuild &amp; ECS</title>
      <dc:creator>M. Ibtsam</dc:creator>
      <pubDate>Fri, 02 Jan 2026 08:45:32 +0000</pubDate>
      <link>https://dev.to/m_ibtsam_8d90b7407629516/from-zero-to-ecs-my-journey-of-deploying-a-micro-service-with-aws-codepipeline-codebuild-ecs-3322</link>
      <guid>https://dev.to/m_ibtsam_8d90b7407629516/from-zero-to-ecs-my-journey-of-deploying-a-micro-service-with-aws-codepipeline-codebuild-ecs-3322</guid>
      <description>&lt;p&gt;“Some projects don’t start with confidence. Some start with chaos… and slowly teach you who you really are.”&lt;/p&gt;

&lt;p&gt;Yesterday, I built a fully automated CI/CD pipeline on AWS, a project that initially seemed simple but turned into a challenging endeavor filled with valuable lessons, broken builds, IAM nightmares, and ultimately, the sweetest green deployment. This wasn’t just about deploying a template website. This was about building a micro-service pipeline, learning to trust automation, and fighting with AWS until it finally smiled back.&lt;br&gt;
Let me take you through the journey&lt;/p&gt;
&lt;h2&gt;
  
  
  The Beginning: A Dockerfile, a Template, and a Dream
&lt;/h2&gt;

&lt;p&gt;It all started with a simple static website template from Templatemo. Beautiful. Minimal. Lightweight.&lt;br&gt;
I wrote a small Dockerfile on top of Ubuntu + Apache:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;FROM ubuntu:latest

# Install Apache and tools
RUN apt-get update &amp;amp;&amp;amp; \
    apt-get install -y apache2 apache2-utils wget unzip &amp;amp;&amp;amp; \
    apt-get clean

# Set working directory
WORKDIR /var/www/html

# Download the template and name the downloaded file
RUN wget https://templatemo.com/download/templatemo_597_neural_glass -O template.zip

# Extract and copy files
RUN unzip template.zip &amp;amp;&amp;amp; \
    cp -rvf templatemo_597_neural_glass/* . &amp;amp;&amp;amp; \
    rm -rvf template.zip templatemo_597_neural_glass

EXPOSE 80

CMD ["/usr/sbin/apache2ctl", "-D", "FOREGROUND"]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;One container.&lt;br&gt;
One decision.&lt;br&gt;
One microservice.&lt;br&gt;
This service would not live inside a monolith. It would be independent, deployable on its own, and scalable on its own. And AWS would handle the rest.&lt;/p&gt;
&lt;h2&gt;
  
  
  Building the Pipeline That Would Change Everything
&lt;/h2&gt;

&lt;p&gt;AWS CodeCommit became my Git server — a quiet place where everything begins.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1rvu3ra2gp4t3gc1etcg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1rvu3ra2gp4t3gc1etcg.png" alt=" " width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Each commit in my Dockerfile triggered a pipeline.&lt;/p&gt;

&lt;p&gt;Step 1 — CodePipeline picks up the commit&lt;br&gt;
Step 2 — CodeBuild builds the image&lt;br&gt;
Step 3 — Pushes to ECR&lt;br&gt;
Step 4 — Updates ECS test cluster&lt;br&gt;
Step 5 — Manual approval&lt;br&gt;
Step 6 — Production deployment behind an ALB&lt;br&gt;
The heart of the build was my buildspec.yml:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;version: 0.2
phases:
  pre_build:
    commands:
      - echo Logging in to Amazon ECR...
      - aws --version
      - aws ecr get-login-password --region $AWS_DEFAULT_REGION | docker login --username AWS --password-stdin $AWS_ACCOUNT_ID.dkr.ecr.$AWS_DEFAULT_REGION.amazonaws.com
      - REPOSITORY_URI=$AWS_ACCOUNT_ID.dkr.ecr.$AWS_DEFAULT_REGION.amazonaws.com/$IMAGE_REPO_NAME

  build:
    commands:
      - echo Build started on $(date)
      - echo Building the Docker image...
      - docker build -t "$REPOSITORY_URI:$IMAGE_TAG" .

  post_build:
    commands:
      - echo Build completed on $(date)
      - echo Pushing the Docker image...
      - docker push "$REPOSITORY_URI:$IMAGE_TAG"
      - echo Writing image definitions file...
      - printf '[{"name":"%s","imageUri":"%s"}]' "$CONTAINER_NAME" "$REPOSITORY_URI:$IMAGE_TAG" &amp;gt; imagedefinitions.json

artifacts:
  files:
    - imagedefinitions.json
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The moment I saw my first image appear in ECR, I knew I was getting somewhere.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fded71rcxtdzwreajwspx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fded71rcxtdzwreajwspx.png" alt=" " width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The War With IAM Roles, Policies, &amp;amp; Security Groups
&lt;/h2&gt;

&lt;p&gt;Let me be honest.&lt;br&gt;
This was not a project.&lt;br&gt;
This was a battlefield.&lt;br&gt;
The biggest enemy?&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;IAM Roles&lt;/li&gt;
&lt;li&gt;Security Groups&lt;/li&gt;
&lt;li&gt;Trust Policies&lt;/li&gt;
&lt;li&gt;Missing Permissions&lt;/li&gt;
&lt;li&gt;SNS Publish Denied Errors&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;At one point, CodePipeline screamed:&lt;br&gt;
“sns:Publish is not allowed for this role.”&lt;br&gt;
And I just sat there… staring at it like:&lt;br&gt;
“AWS, yaar, ki problem hai teri?”&lt;br&gt;
I fixed it by adding its policy.&lt;/p&gt;

&lt;h2&gt;
  
  
  Creating Test &amp;amp; Production Clusters
&lt;/h2&gt;

&lt;p&gt;I separated environments:&lt;br&gt;
Test Cluster (Dev environment)&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Every commit goes here first&lt;/li&gt;
&lt;li&gt;Behind an ALB&lt;/li&gt;
&lt;li&gt;Quick validation&lt;/li&gt;
&lt;li&gt;No manual approvals&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Production Cluster&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Behind an ALB&lt;/li&gt;
&lt;li&gt;Scalable&lt;/li&gt;
&lt;li&gt;Auto-recovery&lt;/li&gt;
&lt;li&gt;Requires manual approval through SNS&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fe9mghhj99v18ngxg2736.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fe9mghhj99v18ngxg2736.png" alt=" " width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is where the pipeline became… real.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Sweetness of Manual Approval
&lt;/h2&gt;

&lt;p&gt;Before deploying to production, CodePipeline sends me:&lt;br&gt;
An SNS Email&lt;/p&gt;

&lt;p&gt;The email asks:&lt;br&gt;
“Do you approve this deployment?”&lt;/p&gt;

&lt;p&gt;This made the deployment feel like signing off on a release in a real company.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F69lbje3xww6ssr6aa4xv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F69lbje3xww6ssr6aa4xv.png" alt="Email recieved for manually approval " width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Once I click “Approve”, the production ECS service pulls the new image and updates behind ALB without downtime.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why This Project Mattered More Than I Expected
&lt;/h2&gt;

&lt;p&gt;This project wasn’t just CI/CD.&lt;br&gt;
It taught me:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Microservices give freedom
One service, one task definition, one pipeline, independent scaling.&lt;/li&gt;
&lt;li&gt;Cloud architecture humbles you
Security groups and IAM remind you that the cloud is powerful, but not forgiving.&lt;/li&gt;
&lt;li&gt;Automation is addictive
One commit → full deployment
Zero manual server management.&lt;/li&gt;
&lt;li&gt;CI/CD is not a luxury - it’s a survival
Modern development = pipelines + containers.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  The Final Deployment, The Moment I Trusted the Cloud
&lt;/h2&gt;

&lt;p&gt;When the ALB finally showed my website live and healthy…&lt;br&gt;
It felt magical.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi13x4q5w69d4uc08607b.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi13x4q5w69d4uc08607b.png" alt="One website is running on Test env and the other is on Prod env." width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;I didn’t open any EC2 machine.&lt;/li&gt;
&lt;li&gt;I didn’t configure any OS manually.&lt;/li&gt;
&lt;li&gt;I didn’t copy-paste files.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Just:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Write code&lt;/li&gt;
&lt;li&gt;Commit&lt;/li&gt;
&lt;li&gt;Approve&lt;/li&gt;
&lt;li&gt;Deploy&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That’s the real confidence CI/CD gives you.&lt;/p&gt;

&lt;h2&gt;
  
  
  If You’re Moving to Cloud, Move With Courage
&lt;/h2&gt;

&lt;p&gt;If you’re shifting from monolithic apps to microservices…&lt;br&gt;
If you want to understand real AWS DevOps…&lt;br&gt;
If you want to feel the thrill of automation…&lt;br&gt;
Then build a pipeline like this.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Break it.&lt;/li&gt;
&lt;li&gt;Fix it.&lt;/li&gt;
&lt;li&gt;Fear it.&lt;/li&gt;
&lt;li&gt;Love it.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Because every green checkmark on AWS teaches you something about yourself.&lt;br&gt;
And that’s why this project matters.&lt;/p&gt;

</description>
      <category>devops</category>
      <category>automation</category>
      <category>aws</category>
      <category>microservices</category>
    </item>
  </channel>
</rss>
