<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Latest Blogs on Ansuman Satapathy</title><link>https://ansuman-satapathy.github.io/blog/</link><description>Recent content in Latest Blogs on Ansuman Satapathy</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Thu, 12 Mar 2026 08:47:25 +0530</lastBuildDate><atom:link href="https://ansuman-satapathy.github.io/blog/index.xml" rel="self" type="application/rss+xml"/><item><title>Ever Wondered How Docker Actually Works Under the Hood?</title><link>https://ansuman-satapathy.github.io/blog/ever-wondered-how-docker-actually-works-under-the-hood/</link><pubDate>Thu, 12 Mar 2026 08:47:25 +0530</pubDate><guid>https://ansuman-satapathy.github.io/blog/ever-wondered-how-docker-actually-works-under-the-hood/</guid><description>&lt;p&gt;If you use Docker daily, the workflow becomes second nature:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;docker pull
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;docker build
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;docker run
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Containers appear, applications start, and everything “just works”.&lt;/p&gt;
&lt;p&gt;But if you&amp;rsquo;re a software engineer or working in infrastructure, treating Docker like a magical black box is not ideal. Containers are not virtual machines, and Docker isn&amp;rsquo;t creating tiny computers.&lt;/p&gt;
&lt;p&gt;Under the hood, a &lt;strong&gt;container is simply a Linux process&lt;/strong&gt; that the kernel isolates using a few powerful features.&lt;/p&gt;</description></item><item><title>Terraform Best Practices: How to Not Nuke Production</title><link>https://ansuman-satapathy.github.io/blog/terraform-best-practices-how-not-to-nuke-production/</link><pubDate>Sun, 25 Jan 2026 20:30:00 +0530</pubDate><guid>https://ansuman-satapathy.github.io/blog/terraform-best-practices-how-not-to-nuke-production/</guid><description>&lt;p&gt;Writing Terraform is easy. Managing Terraform at scale without destroying your company’s infrastructure is hard.&lt;/p&gt;
&lt;p&gt;If your idea of &amp;ldquo;state management&amp;rdquo; is a file on your laptop named &lt;code&gt;terraform.tfstate.backup2&lt;/code&gt;, stop. Here are some tips to not embarrass yourself in front of management.&lt;/p&gt;
&lt;h3 id="1-remote-state-is-non-negotiable"&gt;1. Remote State is Non-Negotiable&lt;/h3&gt;
&lt;p&gt;If you work on a team (or ever plan to), your state file cannot live on your local machine.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;The Problem:&lt;/strong&gt; If two people run &lt;code&gt;terraform apply&lt;/code&gt; at the same time with different local states, you get a race condition that corrupts everything.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;The Fix:&lt;/strong&gt; Use a &lt;strong&gt;Remote Backend&lt;/strong&gt; (like AWS S3).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;The Lock:&lt;/strong&gt; Use &lt;strong&gt;DynamoDB&lt;/strong&gt; for state locking. This prevents &amp;ldquo;Person B&amp;rdquo; from writing to the state while &amp;ldquo;Person A&amp;rdquo; is still deploying.&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-hcl" data-lang="hcl"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# backend.tf
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;terraform&lt;/span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;backend&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;s3&amp;#34;&lt;/span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; bucket &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;my-corp-terraform-state&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; key &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;prod/app-server/terraform.tfstate&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; region &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;us-east-1&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; dynamodb_table &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;terraform-state-locks&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; encrypt &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;true&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;img src="fear.png" alt="Fear" style="width: 100%; height: auto; border-radius: 8px;"&gt;
*Fig: Actual footage of a DevOps engineer looking at a local state file.*
&lt;h3 id="2-keep-it-dry-dummy"&gt;2. Keep it DRY Dummy!&lt;/h3&gt;
&lt;p&gt;Stop Copy-Pasting resource blocks. If you need 5 web servers, do not write the &lt;code&gt;aws_instance&lt;/code&gt; block 5 times. Use &lt;strong&gt;Modules&lt;/strong&gt;.&lt;/p&gt;</description></item><item><title>Understanding Concurrency and Goroutines</title><link>https://ansuman-satapathy.github.io/blog/understanding-go-concurrency-through-memes/</link><pubDate>Sun, 18 Jan 2026 17:02:11 +0530</pubDate><guid>https://ansuman-satapathy.github.io/blog/understanding-go-concurrency-through-memes/</guid><description>&lt;p&gt;If you listen to Senior Engineers talk about Concurrency, you’d think it’s the plot of a spy thriller.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&amp;ldquo;We have a Race Condition in the kernel! The Deadlock is spreading! If we don&amp;rsquo;t Mutex the shared memory in 10 seconds, the whole heap is going to blow!&amp;rdquo;&lt;/em&gt;&lt;/p&gt;
&lt;img src="pepe-silvia.jpg" alt="Me trying to explain why my CLI tool needs multi-threading just to read a string" style="width: 100%; height: auto; border-radius: 8px;"&gt;
&lt;p&gt;It sounds terrifying. It sounds complex. It sounds like you need a PhD in Computer Science and a leather trench coat to pull it off.&lt;/p&gt;</description></item><item><title>Git Rebase: How to Hide Your Shameful Commit History</title><link>https://ansuman-satapathy.github.io/blog/git-rebase-how-to-hide-your-shameful-commit-history/</link><pubDate>Sun, 11 Jan 2026 22:12:03 +0530</pubDate><guid>https://ansuman-satapathy.github.io/blog/git-rebase-how-to-hide-your-shameful-commit-history/</guid><description>&lt;p&gt;Let’s be real for a second. Your actual development process involves roughly 45 commits named &amp;ldquo;wip&amp;rdquo;, &amp;ldquo;fixing typo&amp;rdquo;, &amp;ldquo;minor fix&amp;rdquo;, &amp;ldquo;ffs why isn&amp;rsquo;t this working&amp;rdquo;, and finally, &amp;ldquo;this time it works i think.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;Now, I can&amp;rsquo;t be the only one who has nightmares about juniors laughing at my commit history? Right? &amp;hellip;Right? You never want this to happen. You want to look like a disciplined, experienced engineer who writes perfect code in a single, surgical commit.&lt;/p&gt;</description></item><item><title>How I Automated My Blog with Hugo and GitOps</title><link>https://ansuman-satapathy.github.io/blog/how-i-automated-my-blog-with-hugo-and-gitops/</link><pubDate>Thu, 01 Jan 2026 15:42:59 +0530</pubDate><guid>https://ansuman-satapathy.github.io/blog/how-i-automated-my-blog-with-hugo-and-gitops/</guid><description>&lt;p&gt;This is the first blog of the site. So, I thought why not write about how I automated the infrastructure behind it so that I can put my focus on writing and also other important things in life like&amp;hellip; &lt;em&gt;(starts overthinking)&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;I really like Linux and automation and surprisingly I like to write too (which came as a late realization). I tried some blogging platforms like Hashnode and Dev.to. While the features they offer are really nice, I wanted something cleaner and distraction-free. Most importantly, I wanted to &lt;strong&gt;own&lt;/strong&gt; what I write and have the power to change anything, anytime. And with great power, comes great memes.&lt;/p&gt;</description></item></channel></rss>