<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>@milinddethe15</title><description>Milind Dethe&apos;s personal site — posts, projects, and build logs from the things I build, break, and automate.</description><link>https://milinddethe15.tech/</link><language>en-us</language><item><title>Writing the Code Is Only the Beginning</title><link>https://milinddethe15.tech/posts/understanding-backend/finale/</link><guid isPermaLink="true">https://milinddethe15.tech/posts/understanding-backend/finale/</guid><description>The checkout worked. So I put four copies of it in containers behind a load balancer, kept traffic flowing, and tried to change it. The first deploy was an outage, a column rename broke a perfect rolling deploy, and the rollback made it worse. This is what production turned out to mean.</description><pubDate>Thu, 17 Sep 2026 00:00:00 GMT</pubDate><category>understanding-backend</category><author>milinddethe15@gmail.com (Milind Dethe)</author></item><item><title>A Backend Can Be Correct and Still Be Impossible to Operate</title><link>https://milinddethe15.tech/posts/understanding-backend/observability/</link><guid isPermaLink="true">https://milinddethe15.tech/posts/understanding-backend/observability/</guid><description>Every checkout returned 200 and every order shipped. Then a user said it was slow sometimes, and I couldn&apos;t tell where. Then I killed a process and nothing on the request path noticed. Logs, metrics, traces and one alert, in the order I needed them.</description><pubDate>Wed, 16 Sep 2026 00:00:00 GMT</pubDate><category>understanding-backend</category><author>milinddethe15@gmail.com (Milind Dethe)</author></item><item><title>The Database Update Succeeded. The Event Didn&apos;t. Now What?</title><link>https://milinddethe15.tech/posts/understanding-backend/correctness/</link><guid isPermaLink="true">https://milinddethe15.tech/posts/understanding-backend/correctness/</guid><description>I saved the order on one line and published the event on the next. Then I killed the process between them, swapped them, and put the publish inside the transaction. Nothing fixed it, until the event became a row.</description><pubDate>Mon, 14 Sep 2026 00:00:00 GMT</pubDate><category>understanding-backend</category><author>milinddethe15@gmail.com (Milind Dethe)</author></item><item><title>The Hardest Distributed Systems Problem: Not Knowing What Happened</title><link>https://milinddethe15.tech/posts/understanding-backend/distributed-systems/</link><guid isPermaLink="true">https://milinddethe15.tech/posts/understanding-backend/distributed-systems/</guid><description>I put a breakable network between two services and asked one to charge a card. A timeout looked the same whether the payment never happened, already happened, or was still happening. That changed how I think about distributed systems.</description><pubDate>Mon, 14 Sep 2026 00:00:00 GMT</pubDate><category>understanding-backend</category><author>milinddethe15@gmail.com (Milind Dethe)</author></item><item><title>What Happens After You Put Something on a Queue?</title><link>https://milinddethe15.tech/posts/understanding-backend/queue/</link><guid isPermaLink="true">https://milinddethe15.tech/posts/understanding-backend/queue/</guid><description>I moved the confirmation email out of the request and checkout went from 300 ms to under 1 ms. Then I followed one message through crashes, duplicates, dead letters, and backpressure.</description><pubDate>Sun, 13 Sep 2026 00:00:00 GMT</pubDate><category>understanding-backend</category><author>milinddethe15@gmail.com (Milind Dethe)</author></item><item><title>My Code Was Correct Until Two Requests Ran at Once</title><link>https://milinddethe15.tech/posts/understanding-backend/concurrency/</link><guid isPermaLink="true">https://milinddethe15.tech/posts/understanding-backend/concurrency/</guid><description>My inventory handler passed every test. Then twenty buyers hit it at the same moment and it sold twenty units from a stock of five. A transaction didn&apos;t help. A lock did, until I ran two copies of the app.</description><pubDate>Sat, 12 Sep 2026 00:00:00 GMT</pubDate><category>understanding-backend</category><author>milinddethe15@gmail.com (Milind Dethe)</author></item><item><title>Retries Can Make a Failure Worse: How One Slow Service Takes Down Another</title><link>https://milinddethe15.tech/posts/understanding-backend/retries/</link><guid isPermaLink="true">https://milinddethe15.tech/posts/understanding-backend/retries/</guid><description>My dependency got slow for three seconds. Without retries, users saw three bad seconds. With three retries, they saw eight, and I watched the retries turn a small problem into a bigger one.</description><pubDate>Fri, 11 Sep 2026 00:00:00 GMT</pubDate><category>understanding-backend</category><author>milinddethe15@gmail.com (Milind Dethe)</author></item><item><title>The Fastest Backend Operation Is the One You Don&apos;t Do</title><link>https://milinddethe15.tech/posts/understanding-backend/caching/</link><guid isPermaLink="true">https://milinddethe15.tech/posts/understanding-backend/caching/</guid><description>My dashboard query was already as fast as it could get. Then everyone asked for it at once, and the database could only answer nine times a second. A cache fixed that in six lines. Then it started lying to me.</description><pubDate>Thu, 10 Sep 2026 00:00:00 GMT</pubDate><category>understanding-backend</category><author>milinddethe15@gmail.com (Milind Dethe)</author></item><item><title>Why Databases Get Slow: A Query Is Work, Not a Lookup</title><link>https://milinddethe15.tech/posts/understanding-backend/why-database-get-slow/</link><guid isPermaLink="true">https://milinddethe15.tech/posts/understanding-backend/why-database-get-slow/</guid><description>I thought a database was a big dictionary. Give it a key, get a row back. So I built a table of a million users, asked for one by email, and watched Postgres read every single row to find it.</description><pubDate>Wed, 09 Sep 2026 00:00:00 GMT</pubDate><category>understanding-backend</category><author>milinddethe15@gmail.com (Milind Dethe)</author></item><item><title>The Journey of a Backend Request: Every Arrow Was Hiding Work</title><link>https://milinddethe15.tech/posts/understanding-backend/journey-of-a-request/</link><guid isPermaLink="true">https://milinddethe15.tech/posts/understanding-backend/journey-of-a-request/</guid><description>I thought calling an API was client, server, database, response. I traced one request, counted thirteen hops, and measured that most of the time was gone before the server ran a line of my code.</description><pubDate>Mon, 07 Sep 2026 00:00:00 GMT</pubDate><category>understanding-backend</category><author>milinddethe15@gmail.com (Milind Dethe)</author></item><item><title>Day 7: Deployment Is Not The End</title><link>https://milinddethe15.tech/posts/mlops/day7/</link><guid isPermaLink="true">https://milinddethe15.tech/posts/mlops/day7/</guid><description>Learn how model serving, monitoring, drift detection, and retraining complete the MLOps lifecycle after deployment.</description><pubDate>Fri, 19 Jun 2026 00:00:00 GMT</pubDate><category>7-days-of-mlops</category><author>milinddethe15@gmail.com (Milind Dethe)</author></item><item><title>Day 6: Why Do Models Fail Even When Training Accuracy Looks Great?</title><link>https://milinddethe15.tech/posts/mlops/day6/</link><guid isPermaLink="true">https://milinddethe15.tech/posts/mlops/day6/</guid><description>Learn about feature stores, training-serving skew, and why machine learning teams use platforms like Feast to keep training and production data consistent.</description><pubDate>Thu, 18 Jun 2026 00:00:00 GMT</pubDate><category>7-days-of-mlops</category><author>milinddethe15@gmail.com (Milind Dethe)</author></item><item><title>Day 5: When Does a Training Script Become a Pipeline?</title><link>https://milinddethe15.tech/posts/mlops/day5/</link><guid isPermaLink="true">https://milinddethe15.tech/posts/mlops/day5/</guid><description>Learn why machine learning workflows evolve from Python scripts into pipelines and how Kubeflow Pipelines orchestrates reproducible ML workflows on Kubernetes.</description><pubDate>Wed, 17 Jun 2026 00:00:00 GMT</pubDate><category>7-days-of-mlops</category><author>milinddethe15@gmail.com (Milind Dethe)</author></item><item><title>Day 4: Training One Model Is Easy. Finding The Best One Is Hard.</title><link>https://milinddethe15.tech/posts/mlops/day4/</link><guid isPermaLink="true">https://milinddethe15.tech/posts/mlops/day4/</guid><description>Learn how machine learning teams improve model performance using cross validation, hyperparameter tuning, AutoML, and parallel experimentation.</description><pubDate>Tue, 16 Jun 2026 00:00:00 GMT</pubDate><category>7-days-of-mlops</category><author>milinddethe15@gmail.com (Milind Dethe)</author></item><item><title>Day 3: If Git Versions Code, What Versions Data?</title><link>https://milinddethe15.tech/posts/mlops/day3/</link><guid isPermaLink="true">https://milinddethe15.tech/posts/mlops/day3/</guid><description>Learn why machine learning teams need data versioning and experiment tracking, and how tools like DVC and MLflow help make experiments reproducible.</description><pubDate>Mon, 15 Jun 2026 00:00:00 GMT</pubDate><category>7-days-of-mlops</category><author>milinddethe15@gmail.com (Milind Dethe)</author></item><item><title>Day 2: From Notebook to Reproducible Training</title><link>https://milinddethe15.tech/posts/mlops/day2/</link><guid isPermaLink="true">https://milinddethe15.tech/posts/mlops/day2/</guid><description>Learn why Jupyter notebooks are great for experimentation but insufficient for reproducible machine learning workflows.</description><pubDate>Sun, 14 Jun 2026 00:00:00 GMT</pubDate><category>7-days-of-mlops</category><author>milinddethe15@gmail.com (Milind Dethe)</author></item><item><title>Day 1: Why DevOps Is Not Enough for Machine Learning</title><link>https://milinddethe15.tech/posts/mlops/day1/</link><guid isPermaLink="true">https://milinddethe15.tech/posts/mlops/day1/</guid><description>Why DevOps alone is not enough for machine learning and how MLOps addresses data, models, and training-serving skew.</description><pubDate>Sat, 13 Jun 2026 00:00:00 GMT</pubDate><category>7-days-of-mlops</category><author>milinddethe15@gmail.com (Milind Dethe)</author></item><item><title>Day 7: What Does a Complete AI Platform Actually Look Like?</title><link>https://milinddethe15.tech/posts/day-7-ai-platform-engineering/</link><guid isPermaLink="true">https://milinddethe15.tech/posts/day-7-ai-platform-engineering/</guid><description>A complete AI platform: layers, services, infrastructure, and where tools like vLLM, Ray, and Kubernetes fit together.</description><pubDate>Wed, 10 Jun 2026 00:00:00 GMT</pubDate><category>7-days-of-ai-platform-engineering</category><author>milinddethe15@gmail.com (Milind Dethe)</author></item><item><title>Day 6: Why vLLM Exists</title><link>https://milinddethe15.tech/posts/day-6-ai-platform-engineering/</link><guid isPermaLink="true">https://milinddethe15.tech/posts/day-6-ai-platform-engineering/</guid><description>Why vLLM exists: batching, PagedAttention, and efficient GPU memory management for LLM serving.</description><pubDate>Tue, 09 Jun 2026 00:00:00 GMT</pubDate><category>7-days-of-ai-platform-engineering</category><author>milinddethe15@gmail.com (Milind Dethe)</author></item><item><title>Day 5: Why Ray Exists</title><link>https://milinddethe15.tech/posts/day-5-ai-platform-engineering/</link><guid isPermaLink="true">https://milinddethe15.tech/posts/day-5-ai-platform-engineering/</guid><description>Why Ray exists: scheduling computation (tasks &amp; actors) vs infrastructure for distributed AI workloads.</description><pubDate>Mon, 08 Jun 2026 00:00:00 GMT</pubDate><category>7-days-of-ai-platform-engineering</category><author>milinddethe15@gmail.com (Milind Dethe)</author></item><item><title>Day 4: Why AI Needs Different Scheduling</title><link>https://milinddethe15.tech/posts/day-4-ai-platform-engineering/</link><guid isPermaLink="true">https://milinddethe15.tech/posts/day-4-ai-platform-engineering/</guid><description>Why AI scheduling differs from traditional apps: gang scheduling, topology awareness, and specialized schedulers.</description><pubDate>Sun, 07 Jun 2026 00:00:00 GMT</pubDate><category>7-days-of-ai-platform-engineering</category><author>milinddethe15@gmail.com (Milind Dethe)</author></item><item><title>Day 3: Why GPU Sharing Is Hard</title><link>https://milinddethe15.tech/posts/day-3-ai-platform-engineering/</link><guid isPermaLink="true">https://milinddethe15.tech/posts/day-3-ai-platform-engineering/</guid><description>Why GPU utilization is hard: resource fragmentation, sharing strategies (MIG, time-slicing, batching), and cost impacts.</description><pubDate>Sat, 06 Jun 2026 00:00:00 GMT</pubDate><category>7-days-of-ai-platform-engineering</category><author>milinddethe15@gmail.com (Milind Dethe)</author></item><item><title>Day 2: How Kubernetes Sees GPUs</title><link>https://milinddethe15.tech/posts/day-2-ai-platform-engineering/</link><guid isPermaLink="true">https://milinddethe15.tech/posts/day-2-ai-platform-engineering/</guid><description>How Kubernetes discovers GPUs: drivers, device plugins, and making GPUs schedulable resources.</description><pubDate>Fri, 05 Jun 2026 00:00:00 GMT</pubDate><category>7-days-of-ai-platform-engineering</category><author>milinddethe15@gmail.com (Milind Dethe)</author></item><item><title>Day 1: Why AI Workloads Are Different from Traditional Applications</title><link>https://milinddethe15.tech/posts/day-1-ai-platform-engineering/</link><guid isPermaLink="true">https://milinddethe15.tech/posts/day-1-ai-platform-engineering/</guid><description>Why AI workloads demand different platform engineering: GPUs change bottlenecks and resource priorities.</description><pubDate>Thu, 04 Jun 2026 00:00:00 GMT</pubDate><category>7-days-of-ai-platform-engineering</category><author>milinddethe15@gmail.com (Milind Dethe)</author></item><item><title>LFX Mentorship: My Experience as Mentee with CNCF Thanos</title><link>https://milinddethe15.tech/posts/lfx-mentorship/</link><guid isPermaLink="true">https://milinddethe15.tech/posts/lfx-mentorship/</guid><pubDate>Wed, 04 Dec 2024 00:00:00 GMT</pubDate><category>experience</category><category>LFX</category><author>milinddethe15@gmail.com (Milind Dethe)</author></item></channel></rss>