<?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: Manish Podiyal</title>
    <description>The latest articles on DEV Community by Manish Podiyal (@manishpodiyal).</description>
    <link>https://dev.to/manishpodiyal</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%2F3777121%2Ffc5bd8e6-bc90-4dba-b837-9e87a3526c5a.jpg</url>
      <title>DEV Community: Manish Podiyal</title>
      <link>https://dev.to/manishpodiyal</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/manishpodiyal"/>
    <language>en</language>
    <item>
      <title>DDD is not about Code, it’s about Productivity!</title>
      <dc:creator>Manish Podiyal</dc:creator>
      <pubDate>Mon, 11 May 2026 11:45:53 +0000</pubDate>
      <link>https://dev.to/manishpodiyal/ddd-is-not-about-code-its-about-productivity-i6k</link>
      <guid>https://dev.to/manishpodiyal/ddd-is-not-about-code-its-about-productivity-i6k</guid>
      <description>&lt;p&gt;&lt;em&gt;Software exists to solve business problems. If our code doesn't speak the same language as our business experts, we aren't being productive - we're just being "busy."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;u&gt;The "Clean Code" Trap&lt;/u&gt;&lt;/strong&gt;&lt;br&gt;
As software engineers, we are obsessed with scalability, clean architecture, and the latest frameworks. We love building "perfect" systems. But here is the hard truth: A perfectly coded system that doesn’t speak the language of the business is a failure.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;u&gt;The Business-Tech Gap&lt;/u&gt;&lt;/strong&gt;&lt;br&gt;
We build software to solve real-world problems. Most of the time, those problems belong to a specific business domain. When developers speak &lt;strong&gt;"Technical-ese" (tables, IDs, microservices)&lt;/strong&gt; and business experts speak &lt;strong&gt;"Domain-ese" (claims, premiums, underwriting)&lt;/strong&gt;, things get lost in translation. This friction leads to bugs, delays, and wasted money.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;u&gt;Why DDD is the First Step&lt;/u&gt;&lt;/strong&gt;&lt;br&gt;
Domain-Driven Design (DDD) flips the script. It says the Domain perspective is the most important thing.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Common Language (Ubiquitous Language):&lt;/strong&gt; We use the same words in the code that the business uses in the boardroom. No more "translating" requirements.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Shared Goals:&lt;/strong&gt; It keeps everyone in sync. We aren't just writing functions; we are automating business processes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Productivity:&lt;/strong&gt; When the code mirrors the business, the business can pivot faster. You aren't fighting your architecture, your architecture is supporting your growth.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;u&gt;Bottom Line&lt;/u&gt;&lt;/strong&gt;&lt;br&gt;
If you follow DDD, you aren't just a coder, you are a business partner. You are bridging the gap between technical teams and business goals, and that is where the real value is created.&lt;/p&gt;

</description>
      <category>softwareengineering</category>
      <category>ddd</category>
      <category>cleancode</category>
      <category>productivity</category>
    </item>
    <item>
      <title>The Data Refinery: Why Apache Spark is the Engine Behind Real-World Big Data Use Cases</title>
      <dc:creator>Manish Podiyal</dc:creator>
      <pubDate>Mon, 04 May 2026 13:00:45 +0000</pubDate>
      <link>https://dev.to/manishpodiyal/the-data-refinery-why-apache-spark-is-the-engine-behind-real-world-big-data-use-cases-1f0j</link>
      <guid>https://dev.to/manishpodiyal/the-data-refinery-why-apache-spark-is-the-engine-behind-real-world-big-data-use-cases-1f0j</guid>
      <description>&lt;p&gt;You've likely heard that "Data is the new oil". But raw oil is useless without a refinery. In the world of Big Data, Apache Spark is that refinery.&lt;/p&gt;

&lt;p&gt;Whether it's millisecond-level fraud detection or processing terabytes of logs, Spark's ability to handle massive scale with in-memory speed is why it remains a core skill for every ML &amp;amp; Data Engineer.&lt;/p&gt;

&lt;p&gt;Here are 5 real-world problems and exactly how Spark solves them:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;u&gt;1. Stopping Credit Card Fraud in Real-Time&lt;/u&gt;&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;The Problem:&lt;/strong&gt; Banks need to flag fraudulent transactions in under 500ms before the "Swipe" is even finished.&lt;br&gt;
 &lt;strong&gt;The Spark Solution:&lt;/strong&gt; Use Structured Streaming to ingest Kafka feeds, join them with historical user profiles in Cassandra, and run a pre-trained MLlib model to score the risk instantly.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;u&gt;2. Predicting Machine Failure Before it Happens &lt;/u&gt;&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;The Problem:&lt;/strong&gt; Unexpected factory downtime costs millions. How do we predict a pump failure using "noisy" IoT sensor data?&lt;br&gt;
&lt;strong&gt;The Spark Solution:&lt;/strong&gt; Aggregate high-frequency vibration and temp data into Data Frames, calculate rolling averages for feature engineering, and train a Random Forest regressor to predict the machine's "Remaining Useful Life."&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;u&gt;3. Personalizing Your Shopping Feed&lt;/u&gt;&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;The Problem:&lt;/strong&gt; Static "Top Sellers" lists don't convert. Users want recommendations based on their specific behavior.&lt;br&gt;
&lt;strong&gt;The Spark Solution:&lt;/strong&gt; Leverage the ALS (Alternating Least Squares) algorithm in Spark to process a massive user-item matrix across a distributed cluster, serving up hyper-relevant "You might also like" items.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;u&gt;4. Unifying a Messy Data Lake&lt;/u&gt;&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;The Problem:&lt;/strong&gt; Data is trapped in silos-SQL, JSON, CSV and it's too big for one server to clean.&lt;br&gt;
&lt;strong&gt;The Spark Solution:&lt;/strong&gt; Build a robust ETL pipeline using Spark SQL to de-duplicate millions of records, mask PII for compliance, and save the result into an optimized Delta Lake format.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;u&gt;5. Hunting for Cyber Threats in Terabytes of Logs&lt;/u&gt;&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;The Problem:&lt;/strong&gt; Finding one malicious IP in a mountain of server logs is like finding a needle in a haystack.&lt;br&gt;
&lt;strong&gt;The Spark Solution:&lt;/strong&gt; Use Spark's distributed Regex and windowing functions to scan billions of log lines simultaneously, flagging spikes in failed logins or suspicious geographic traffic patterns.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Takeaway:&lt;/strong&gt;&lt;br&gt;
Spark isn't just a tool - it's a "Unified engine" for batch, streaming, and ML. If you aren't using it to solve these scale problems, you might be leaving performance on the table.&lt;/p&gt;

</description>
      <category>bigdata</category>
      <category>spark</category>
      <category>pyspark</category>
      <category>dataengineering</category>
    </item>
    <item>
      <title>TDD is Like Cooking: Why I Taste My Code as I Go</title>
      <dc:creator>Manish Podiyal</dc:creator>
      <pubDate>Tue, 24 Feb 2026 13:10:32 +0000</pubDate>
      <link>https://dev.to/manishpodiyal/tdd-is-like-cooking-why-i-taste-my-code-as-i-go-1kl7</link>
      <guid>https://dev.to/manishpodiyal/tdd-is-like-cooking-why-i-taste-my-code-as-i-go-1kl7</guid>
      <description>&lt;p&gt;I have a passion for &lt;strong&gt;software development&lt;/strong&gt; and &lt;strong&gt;cooking&lt;/strong&gt; is one of my favorite hobby. At first, they seem different. One is digital, the other is delicious! But they actually follow the same philosophy.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is TDD/BDD anyway?&lt;/strong&gt;&lt;br&gt;
Some people think Test/Behavior-Driven Development (TDD/BDD) means writing every test case before you write any code. That’s not true.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;It’s actually about a cycle:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Red:&lt;/strong&gt; Write a small test that fails.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Green:&lt;/strong&gt; Write just enough code to make it pass.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Refactor:&lt;/strong&gt; Clean up the code.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Repeat:&lt;/strong&gt; Start over from Step 1.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Here is how that looks in my kitchen:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. The "Taste Profile" (BDD)&lt;/strong&gt;&lt;br&gt;
Before I start, I decide what the dish should be.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;The Goal:&lt;/strong&gt; "A spicy tomato soup with a hint of garlic."&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The Initial State:&lt;/strong&gt; Right now, I just have a pot of plain water.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The Result:&lt;/strong&gt; If I taste it now, it fails. It’s not spicy, garlicky or even soup yet! This is my "failing case" that guides me.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;2. Add and Test (TDD)&lt;/strong&gt;&lt;br&gt;
I don’t throw all the spices or salt in at once. I go step-by-step:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Step 1:&lt;/strong&gt; I add chili. I taste it. Still not spicy enough? &lt;strong&gt;(Test Fails)&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Step 2:&lt;/strong&gt; I add more chili. I taste it again. Now it's spicy! &lt;strong&gt;(Test Passes)&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Step 3:&lt;/strong&gt; Now I add the garlic. I &lt;strong&gt;repeat&lt;/strong&gt; the process.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;3. Cleaning the Kitchen (Refactoring)&lt;/strong&gt;&lt;br&gt;
In code, we refactor to make it clean. In cooking, I might strain the soup to make it smooth or adjust the heat. I am not changing the flavor (the behavior); I am just making the quality better.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why does this work?&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;No Surprises:&lt;/strong&gt; I know exactly when the "flavor" is right.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Safety Net:&lt;/strong&gt; If I add too much salt, I know immediately because I am testing (tasting) as I go.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Evolution:&lt;/strong&gt; The recipe evolves with the dish, just like code evolves with the project.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;My Advice&lt;/strong&gt;&lt;br&gt;
Don't just build it and hope for the best at the end. &lt;strong&gt;&lt;em&gt;Taste your code as you go!&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>tdd</category>
      <category>bdd</category>
      <category>cooking</category>
      <category>softwaredevelopment</category>
    </item>
    <item>
      <title>Cooking isn't just a hobby; it's a sandbox for software engineering</title>
      <dc:creator>Manish Podiyal</dc:creator>
      <pubDate>Tue, 17 Feb 2026 09:18:47 +0000</pubDate>
      <link>https://dev.to/manishpodiyal/the-perfect-side-project-for-programmers-cooking-1607</link>
      <guid>https://dev.to/manishpodiyal/the-perfect-side-project-for-programmers-cooking-1607</guid>
      <description>&lt;p&gt;&lt;strong&gt;&amp;gt; "Cooking isn't just a hobby; it's a sandbox for engineering. From 'debugging' flavors to architecting 'protein-rich' algorithms, the journey from following a recipe to creating your own patterns perfectly mirrors the evolution of an engineer's mindset."&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Over the years in software development, I've realized that my kitchen and my IDE aren't that different.&lt;/p&gt;

&lt;p&gt;When you start, you're just looking for a "stable build." You want to cook something that tastes good and more importantly - something you can &lt;strong&gt;debug&lt;/strong&gt;. When a dish is too salty or a function throws an error, you analyze the "logs", adjust the ingredients, and try again. Every "failed" meal is just a bug fix that makes you a better Engineer and a better Cook.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;From Documentation to Intuition&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;After years of daily commits and daily meals, something amazing happens: &lt;strong&gt;the documentation disappears&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;You no longer need a step-by-step guide (or a spoon-fed recipe) to know how much salt or "syntax" to add. You stop just "following" and start architecting. You begin to recognize design patterns in flavors. You can invent your own "custom libraries" in the kitchen, creating recipes that are:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Optimized&lt;/strong&gt;: No wasted movements or ingredients.&lt;br&gt;
&lt;strong&gt;2. Balanced&lt;/strong&gt;: Perfectly handled dependencies between spice and heat.&lt;br&gt;
&lt;strong&gt;3. High Performance&lt;/strong&gt;: Revenue-generating (or at least, protein-rich and fuel-efficient!)&lt;/p&gt;

&lt;h3&gt;
  
  
  Reaching "Pro" Status
&lt;/h3&gt;

&lt;p&gt;This is what reaching the "Pro" level feels like. You’re no longer just following a script; you're writing the &lt;strong&gt;source code&lt;/strong&gt; for a healthier, more creative life. You're becoming a better version of yourself - one commit and one meal at a time.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;Time to ship the next meal. सुभुक्ताम् (Subhuktam) and Happy coding!&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>productivity</category>
      <category>beginners</category>
      <category>discuss</category>
      <category>softwaredevelopment</category>
    </item>
  </channel>
</rss>
