<?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: Anubhav Ranjan</title>
    <description>The latest articles on DEV Community by Anubhav Ranjan (@code_crafter_14).</description>
    <link>https://dev.to/code_crafter_14</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%2F3269754%2Fea3d88a0-60ee-4731-ace0-87bc7e24ca77.jpg</url>
      <title>DEV Community: Anubhav Ranjan</title>
      <link>https://dev.to/code_crafter_14</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/code_crafter_14"/>
    <language>en</language>
    <item>
      <title>Master API Security from Scratch – Course Introduction by Code Spark</title>
      <dc:creator>Anubhav Ranjan</dc:creator>
      <pubDate>Sun, 26 Oct 2025 15:01:11 +0000</pubDate>
      <link>https://dev.to/code_crafter_14/master-api-security-from-scratch-course-introduction-by-code-spark-3k65</link>
      <guid>https://dev.to/code_crafter_14/master-api-security-from-scratch-course-introduction-by-code-spark-3k65</guid>
      <description>&lt;p&gt;Full Video Link : (&lt;a href="https://youtu.be/qgYDdbCb4FM" rel="noopener noreferrer"&gt;https://youtu.be/qgYDdbCb4FM&lt;/a&gt;)&lt;br&gt;
What if I told you that 83% of data breaches happen because of weak API authentication? Hi, I'm Anubhav Ranjan, a Software Developer from Bangalore, and today we're starting a comprehensive course that will transform how you think about API security.&lt;/p&gt;

&lt;p&gt;This API Authentication &amp;amp; Security course is designed specifically for developers who want to master real-world authentication systems. Whether you're a junior developer struggling with OAuth implementations or a senior engineer architecting enterprise security solutions, this course covers everything from fundamental concepts to advanced security patterns.&lt;/p&gt;

&lt;p&gt;Over the next several sessions, we'll journey through:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;API fundamentals and security landscape&lt;/li&gt;
&lt;li&gt;Authentication vs Authorization (and why the difference matters)&lt;/li&gt;
&lt;li&gt;JWT tokens and session management&lt;/li&gt;
&lt;li&gt;OAuth 2.0 implementation patterns&lt;/li&gt;
&lt;li&gt;Zero Trust API architecture&lt;/li&gt;
&lt;li&gt;Real-world security vulnerabilities and how to prevent them&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;By the end of this series, you'll confidently implement production-ready authentication systems and understand security patterns used by companies like Google, GitHub, and Stripe.&lt;/p&gt;

&lt;p&gt;If you're ready to level up your API security skills, hit that subscribe button and ring the notification bell – we're releasing new episodes every week. Drop a comment below telling me what specific authentication challenge you're facing right now.&lt;/p&gt;

</description>
      <category>coding</category>
      <category>developer</category>
      <category>programming</category>
      <category>api</category>
    </item>
    <item>
      <title>Why MD5 Password Hashing is a Terrible Idea</title>
      <dc:creator>Anubhav Ranjan</dc:creator>
      <pubDate>Sat, 27 Sep 2025 17:44:35 +0000</pubDate>
      <link>https://dev.to/code_crafter_14/why-md5-password-hashing-is-a-terrible-idea-1dma</link>
      <guid>https://dev.to/code_crafter_14/why-md5-password-hashing-is-a-terrible-idea-1dma</guid>
      <description>&lt;p&gt;&lt;a href="https://youtu.be/-MPN5Y8BpHk" rel="noopener noreferrer"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>programming</category>
      <category>security</category>
      <category>md5</category>
      <category>java</category>
    </item>
    <item>
      <title>This Java feature feels like cheating</title>
      <dc:creator>Anubhav Ranjan</dc:creator>
      <pubDate>Thu, 14 Aug 2025 04:25:49 +0000</pubDate>
      <link>https://dev.to/code_crafter_14/this-java-feature-feels-like-cheating-50on</link>
      <guid>https://dev.to/code_crafter_14/this-java-feature-feels-like-cheating-50on</guid>
      <description>&lt;p&gt;Ready to delete 98% of the code in your Java data classes? The endless boilerplate of constructors, getters, equals(), hashCode(), and toString() is a classic Java pain point.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://youtube.com/shorts/0tsa66Wyyn8?feature=share" rel="noopener noreferrer"&gt;Watch the full tutorial here &lt;/a&gt;&lt;/p&gt;

</description>
      <category>java</category>
      <category>coding</category>
      <category>developer</category>
      <category>programming</category>
    </item>
    <item>
      <title>This "Clean" Java Code Hides a Bug! 🐛</title>
      <dc:creator>Anubhav Ranjan</dc:creator>
      <pubDate>Tue, 12 Aug 2025 18:35:24 +0000</pubDate>
      <link>https://dev.to/code_crafter_14/this-clean-java-code-hides-a-bug-24if</link>
      <guid>https://dev.to/code_crafter_14/this-clean-java-code-hides-a-bug-24if</guid>
      <description>&lt;p&gt;Ever written super clean Java code, only to have it crash with a mysterious &lt;code&gt;UnsupportedOperationException&lt;/code&gt;? You've likely stumbled upon one of the most important concepts in modern programming: Mutability vs. Immutability.&lt;/p&gt;

&lt;p&gt;🎥 Watch here:&lt;br&gt;
&lt;a href="https://youtube.com/shorts/NfuNHlaIIQU?feature=share" rel="noopener noreferrer"&gt;👉 This "Clean" Java Code Hides a Bug! 🐛&lt;/a&gt;&lt;/p&gt;

</description>
      <category>java</category>
      <category>development</category>
      <category>developer</category>
      <category>coding</category>
    </item>
    <item>
      <title>🐳 Docker Explained with a Food Truck 🍔</title>
      <dc:creator>Anubhav Ranjan</dc:creator>
      <pubDate>Tue, 12 Aug 2025 18:34:08 +0000</pubDate>
      <link>https://dev.to/code_crafter_14/docker-explained-with-a-food-truck-4jck</link>
      <guid>https://dev.to/code_crafter_14/docker-explained-with-a-food-truck-4jck</guid>
      <description>&lt;p&gt;Ever struggled to explain Docker to someone new?&lt;br&gt;
Think of it like a food truck.&lt;/p&gt;

&lt;p&gt;🎥 Watch here:&lt;br&gt;
&lt;a href="https://youtube.com/shorts/gjOuu_qh0b8?feature=share" rel="noopener noreferrer"&gt;👉 Docker Explained with a Food Truck&lt;/a&gt;&lt;/p&gt;

</description>
      <category>docker</category>
      <category>devops</category>
      <category>security</category>
      <category>coding</category>
    </item>
    <item>
      <title>Your Java Switch Statements are Outdated! ❌</title>
      <dc:creator>Anubhav Ranjan</dc:creator>
      <pubDate>Tue, 12 Aug 2025 18:30:54 +0000</pubDate>
      <link>https://dev.to/code_crafter_14/your-java-switch-statements-are-outdated-kci</link>
      <guid>https://dev.to/code_crafter_14/your-java-switch-statements-are-outdated-kci</guid>
      <description>&lt;p&gt;Is your Java code full of long, clunky switch statements? The old way is verbose and can lead to silent, hard-to-find bugs if you forget a &lt;code&gt;break&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;🎥 Watch the full explanation here:&lt;br&gt;
&lt;a href="https://youtube.com/shorts/3zwY0x5ZtKU?feature=share" rel="noopener noreferrer"&gt;👉 Make your switch more readable&lt;/a&gt;&lt;/p&gt;

</description>
      <category>java</category>
      <category>developer</category>
      <category>programming</category>
      <category>oop</category>
    </item>
    <item>
      <title>Your Java Strings are a MESS! 🤢</title>
      <dc:creator>Anubhav Ranjan</dc:creator>
      <pubDate>Tue, 12 Aug 2025 18:29:34 +0000</pubDate>
      <link>https://dev.to/code_crafter_14/your-java-strings-are-a-mess-2d3l</link>
      <guid>https://dev.to/code_crafter_14/your-java-strings-are-a-mess-2d3l</guid>
      <description>&lt;p&gt;Are you tired of ugly, unreadable multi-line strings in your Java code? Stop the mess of endless plus signs (+), newline characters (\n), and escaped quotes (\")!&lt;/p&gt;

&lt;p&gt;🎥 Watch the full explanation here:&lt;br&gt;
👉 &lt;a href="https://youtube.com/shorts/BsamzAmzm-Q?feature=share" rel="noopener noreferrer"&gt;Beautify your strings&lt;/a&gt;&lt;/p&gt;

</description>
      <category>java</category>
      <category>snippet</category>
      <category>softwaredevelopment</category>
    </item>
    <item>
      <title>Stop Writing Java Like This! 🤯</title>
      <dc:creator>Anubhav Ranjan</dc:creator>
      <pubDate>Tue, 12 Aug 2025 18:27:33 +0000</pubDate>
      <link>https://dev.to/code_crafter_14/stop-writing-java-like-this-35f2</link>
      <guid>https://dev.to/code_crafter_14/stop-writing-java-like-this-35f2</guid>
      <description>&lt;p&gt;If you write Java in 2025, you need to know this trick.&lt;br&gt;
🎥 Watch the full explanation here:&lt;br&gt;
👉 &lt;a href="https://youtube.com/shorts/8IMHe_csKO8?feature=share" rel="noopener noreferrer"&gt;Stop Writing Verbose Java Code!&lt;/a&gt;&lt;/p&gt;

</description>
      <category>java</category>
      <category>developer</category>
      <category>programmers</category>
      <category>coding</category>
    </item>
    <item>
      <title>LeetCode Flood Fill Solved — DFS Clicked at 1 AM 😴</title>
      <dc:creator>Anubhav Ranjan</dc:creator>
      <pubDate>Tue, 29 Jul 2025 04:03:02 +0000</pubDate>
      <link>https://dev.to/code_crafter_14/leetcode-flood-fill-solved-dfs-clicked-at-1-am-3emp</link>
      <guid>https://dev.to/code_crafter_14/leetcode-flood-fill-solved-dfs-clicked-at-1-am-3emp</guid>
      <description>&lt;p&gt;🧩 The Problem: Flood Fill (LeetCode #733)&lt;br&gt;
You’re given a 2D image represented as a grid, where each cell has a pixel value.&lt;br&gt;
Starting from a pixel (sr, sc), you need to replace all connected pixels of the same color with a new color — just like the paint bucket tool in MS Paint!&lt;/p&gt;

&lt;p&gt;🔍 Approach: Depth-First Search (DFS)&lt;br&gt;
Store the original color of the starting pixel.&lt;/p&gt;

&lt;p&gt;Use DFS to visit all 4-directionally connected cells of the same color.&lt;/p&gt;

&lt;p&gt;Replace their color after DFS completes.&lt;/p&gt;

&lt;p&gt;Track visited cells to avoid infinite recursion.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;public static int[][] floodFill(int[][] image, int sr, int sc, int color) {
    int n = image.length, m = image[0].length;
    int initialColor = image[sr][sc];
    boolean[][] vis = new boolean[n][m];
    dfs(image, sr, sc, initialColor, n, m, vis);
    for (int i = 0; i &amp;lt; n; i++)
        for (int j = 0; j &amp;lt; m; j++)
            if (vis[i][j]) image[i][j] = color;
    return image;
}

private static void dfs(int[][] image, int r, int c, int color, int n, int m, boolean[][] vis) {
    if (r &amp;lt; 0 || c &amp;lt; 0 || r &amp;gt;= n || c &amp;gt;= m || vis[r][c] || image[r][c] != color) return;
    vis[r][c] = true;
    dfs(image, r+1, c, color, n, m, vis);
    dfs(image, r-1, c, color, n, m, vis);
    dfs(image, r, c+1, color, n, m, vis);
    dfs(image, r, c-1, color, n, m, vis);
}

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;💡 Takeaways&lt;br&gt;
Perfect problem to learn 2D grid traversal + DFS&lt;/p&gt;

&lt;p&gt;Similar to: Number of Islands, Surrounded Regions&lt;/p&gt;

&lt;p&gt;Great for coding interviews and CodeSignal tests (Visa, Uber, etc.)&lt;/p&gt;

&lt;p&gt;💬 What I Learned:&lt;br&gt;
Matrix problems need boundary checks + visited tracking&lt;/p&gt;

&lt;p&gt;Visualizing as a graph helped a lot!&lt;/p&gt;

&lt;p&gt;Solving this gave me the confidence to tackle Number of Islands next&lt;/p&gt;

&lt;p&gt;📢 Let’s Connect&lt;br&gt;
I’m sharing my DSA progress + ChatGPT-based workflows every day on Dev.to.&lt;br&gt;
Drop your thoughts, optimizations, or alternate solutions below 👇&lt;/p&gt;

</description>
      <category>java</category>
      <category>leetcode</category>
      <category>graph</category>
      <category>dfs</category>
    </item>
  </channel>
</rss>
