<?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: Nitish Pandey</title>
    <description>The latest articles on DEV Community by Nitish Pandey (@nitish_pandey_c5361afcae9).</description>
    <link>https://dev.to/nitish_pandey_c5361afcae9</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%2F4068324%2F813dd0d5-f7e7-42d9-bd84-782cc0d8d45c.jpg</url>
      <title>DEV Community: Nitish Pandey</title>
      <link>https://dev.to/nitish_pandey_c5361afcae9</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/nitish_pandey_c5361afcae9"/>
    <language>en</language>
    <item>
      <title>Biryani CSS Art — India's Soul in Every Grain 🍛</title>
      <dc:creator>Nitish Pandey</dc:creator>
      <pubDate>Sat, 08 Aug 2026 05:37:58 +0000</pubDate>
      <link>https://dev.to/nitish_pandey_c5361afcae9/biryani-css-art-indias-soul-in-every-grain-17hb</link>
      <guid>https://dev.to/nitish_pandey_c5361afcae9/biryani-css-art-indias-soul-in-every-grain-17hb</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for &lt;a href="https://dev.to/challenges/frontend-2026-07-29"&gt;Frontend Challenge - Comfort Food Edition, CSS Art&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Inspiration
&lt;/h2&gt;

&lt;p&gt;I chose to build a classic &lt;strong&gt;Dum Biryani&lt;/strong&gt; — the ultimate comfort food! 🍛&lt;br&gt;
There is nothing quite like opening a steaming handi of biryani and seeing the rich, saffron-colored rice dotted with fried onions, mint, and spices. It's a dish that brings people together and feels like a warm hug, making it the perfect inspiration for the Comfort Food challenge.&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;Here is my CSS Art representation of a traditional Biryani Handi! &lt;br&gt;
I built this primarily using vanilla CSS to create the realistic clay texture of the pot, the individual grains of rice, the steam animations, and the garnishes. I added a tiny bit of JavaScript just for a subtle mouse-parallax tilt effect and a saffron sparkle when you click the pot.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/pandeynitish23/dev_css_chalange/" rel="noopener noreferrer"&gt;https://github.com/pandeynitish23/dev_css_chalange/&lt;/a&gt;&lt;br&gt;
&lt;a href="https://dev-css-chalange.nitishkumar-nk-np.workers.dev/" rel="noopener noreferrer"&gt;https://dev-css-chalange.nitishkumar-nk-np.workers.dev/&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Journey
&lt;/h2&gt;

&lt;p&gt;Building this was a really fun exercise in CSS gradients and positioning! &lt;br&gt;
&lt;strong&gt;What I'm most proud of:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;The Clay Handi:&lt;/strong&gt; I used layered radial and linear gradients along with inset box shadows to give the pot a realistic, 3D clay texture with lighting highlights.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;The Rice &amp;amp; Garnishes:&lt;/strong&gt; Creating individual rice grains, mint leaves, and onion crisps using CSS border-radius and positioning was tedious but incredibly rewarding when it all came together.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;The Atmosphere:&lt;/strong&gt; Adding animated steam and floating background spice particles helped bring the scene to life and make it feel hot and fresh.
It was a great challenge keeping the JavaScript minimal and relying on pure CSS for the heavy lifting of the art itself!&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>frontendchallenge</category>
      <category>devchallenge</category>
      <category>css</category>
      <category>webdev</category>
    </item>
    <item>
      <title>How I Update Applications in an AWS Auto Scaling Group Using Golden AMIs</title>
      <dc:creator>Nitish Pandey</dc:creator>
      <pubDate>Sat, 08 Aug 2026 05:08:05 +0000</pubDate>
      <link>https://dev.to/nitish_pandey_c5361afcae9/how-i-update-applications-in-an-aws-auto-scaling-group-using-golden-amis-72g</link>
      <guid>https://dev.to/nitish_pandey_c5361afcae9/how-i-update-applications-in-an-aws-auto-scaling-group-using-golden-amis-72g</guid>
      <description>&lt;h1&gt;
  
  
  Introduction
&lt;/h1&gt;

&lt;p&gt;If you've ever managed applications running in an Amazon EC2 Auto Scaling Group, you've probably wondered what's the safest way to deploy updates without manually logging into every instance.&lt;/p&gt;

&lt;p&gt;Over the last few months, I've been using a --Golden AMI-- approach for application deployments. It has made deployments much more consistent, easier to roll back, and reduced the chances of configuration drift.&lt;/p&gt;

&lt;p&gt;In this article, I'll share the process I follow.&lt;/p&gt;

&lt;h1&gt;
  
  
  Why I Prefer Golden AMIs
&lt;/h1&gt;

&lt;p&gt;There are many ways to deploy applications on EC2.&lt;/p&gt;

&lt;p&gt;You can SSH into instances and update them manually, but over time that creates inconsistencies because every server ends up slightly different.&lt;/p&gt;

&lt;p&gt;Instead, I update one EC2 instance, verify everything, create a new AMI, and let the Auto Scaling Group launch new instances from that image.&lt;/p&gt;

&lt;p&gt;That way every instance is identical.&lt;/p&gt;

&lt;h1&gt;
  
  
  Step 1 – Prepare a Working EC2 Instance
&lt;/h1&gt;

&lt;p&gt;I usually follow one of these approaches:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Detach an EC2 instance from the Auto Scaling Group without reducing the desired capacity.&lt;/li&gt;
&lt;li&gt;Or launch a temporary EC2 instance from the current production AMI.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This gives me a safe environment to make changes without affecting live traffic.&lt;/p&gt;

&lt;h1&gt;
  
  
  Step 2 – Deploy the Changes
&lt;/h1&gt;

&lt;p&gt;Once connected to the instance, I:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Pull the latest application code&lt;/li&gt;
&lt;li&gt;Update configuration if needed&lt;/li&gt;
&lt;li&gt;Restart the application&lt;/li&gt;
&lt;li&gt;Verify the application starts correctly&lt;/li&gt;
&lt;/ul&gt;

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




&lt;p&gt;git pull origin main&lt;/p&gt;

&lt;h2&gt;
  
  
  sudo systemctl restart myapp
&lt;/h2&gt;

&lt;h1&gt;
  
  
  Step 3 – Verify Everything
&lt;/h1&gt;

&lt;p&gt;Before creating an AMI, I always make sure:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The application is running&lt;/li&gt;
&lt;li&gt;APIs respond correctly&lt;/li&gt;
&lt;li&gt;Services are healthy&lt;/li&gt;
&lt;li&gt;Logs don't show unexpected errors&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It's much better to spend a few extra minutes testing than discover a problem after every instance has been updated.&lt;/p&gt;

&lt;h1&gt;
  
  
  Step 4 – Create a Golden AMI
&lt;/h1&gt;

&lt;p&gt;After everything looks good, I create a new AMI from the updated instance.&lt;/p&gt;

&lt;p&gt;I also use a meaningful naming convention such as:&lt;/p&gt;




&lt;h2&gt;
  
  
  myapp-prod-v2
&lt;/h2&gt;

&lt;p&gt;This makes future deployments and rollbacks easier to manage.&lt;/p&gt;

&lt;h1&gt;
  
  
  Step 5 – Update the Launch Template
&lt;/h1&gt;

&lt;p&gt;Next, I create a new Launch Template version using the new AMI and set it as the default version.&lt;/p&gt;

&lt;p&gt;Now the Auto Scaling Group knows which image should be used for new instances.&lt;/p&gt;

&lt;h1&gt;
  
  
  Step 6 – Start an Instance Refresh
&lt;/h1&gt;

&lt;p&gt;This is probably my favorite part because AWS handles most of the work.&lt;/p&gt;

&lt;p&gt;The Auto Scaling Group:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Launches a new instance&lt;/li&gt;
&lt;li&gt;Waits for health checks&lt;/li&gt;
&lt;li&gt;Terminates one old instance&lt;/li&gt;
&lt;li&gt;Repeats until every instance has been replaced&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The deployment happens gradually, so users aren't affected.&lt;/p&gt;

&lt;h1&gt;
  
  
  Step 7 – Final Checks
&lt;/h1&gt;

&lt;p&gt;Once the refresh finishes, I verify:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Target Group health&lt;/li&gt;
&lt;li&gt;CloudWatch metrics&lt;/li&gt;
&lt;li&gt;Application functionality&lt;/li&gt;
&lt;li&gt;Auto Scaling Group status&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If everything looks good, I terminate the temporary EC2 instance.&lt;/p&gt;

&lt;h1&gt;
  
  
  What If Something Goes Wrong?
&lt;/h1&gt;

&lt;p&gt;One of the biggest benefits of this approach is how easy rollback becomes.&lt;/p&gt;

&lt;p&gt;I simply change the Launch Template back to the previous version and start another Instance Refresh.&lt;/p&gt;

&lt;p&gt;AWS gradually replaces the instances with the previous working AMI.&lt;/p&gt;

&lt;h1&gt;
  
  
  Final Thoughts
&lt;/h1&gt;

&lt;p&gt;This is the deployment process I've found most reliable for applications running on EC2 Auto Scaling Groups. It keeps deployments consistent, reduces manual work, and makes rolling back much less stressful when something doesn't go as planned.&lt;/p&gt;

&lt;p&gt;I'm always interested in learning different approaches, so if you manage applications on EC2, how do you handle deployments? Do you use Golden AMIs, CodeDeploy, containers, or something else?&lt;/p&gt;

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