<?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>Forem: Manish Podiyal</title>
    <description>The latest articles on Forem by Manish Podiyal (@manishpodiyal).</description>
    <link>https://forem.com/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>Forem: Manish Podiyal</title>
      <link>https://forem.com/manishpodiyal</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/manishpodiyal"/>
    <language>en</language>
    <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://forem.com/manishpodiyal/the-data-refinery-why-apache-spark-is-the-engine-behind-real-world-big-data-use-cases-1f0j</link>
      <guid>https://forem.com/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://forem.com/manishpodiyal/tdd-is-like-cooking-why-i-taste-my-code-as-i-go-1kl7</link>
      <guid>https://forem.com/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://forem.com/manishpodiyal/the-perfect-side-project-for-programmers-cooking-1607</link>
      <guid>https://forem.com/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>
