<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Production Ready - Medium]]></title>
        <description><![CDATA[Production Ready: backend engineering that survives production — Spring Boot, data, distributed systems, JVM tuning, and AI in prod, with runnable code and honest tradeoffs. - Medium]]></description>
        <link>https://medium.com/production-ready?source=rss----c2b135aab76a---4</link>
        <image>
            <url>https://cdn-images-1.medium.com/proxy/1*TGH72Nnw24QL3iV9IOm4VA.png</url>
            <title>Production Ready - Medium</title>
            <link>https://medium.com/production-ready?source=rss----c2b135aab76a---4</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Thu, 05 Nov 2026 03:25:19 GMT</lastBuildDate>
        <atom:link href="https://medium.com/feed/production-ready" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com" rel="hub"/>
        <item>
            <title><![CDATA[Build Your Own Airflow in Java: DAGs, Retries, and Distributed Execution]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-image"><a href="https://medium.com/production-ready/build-your-own-airflow-in-java-dags-retries-and-distributed-execution-8c0116096aeb?source=rss----c2b135aab76a---4"><img src="https://cdn-images-1.medium.com/max/2600/1*q7RICSesoGYdF0dUymU9Yw.png" width="2688"></a></p><p class="medium-feed-snippet">Design and implement a production-ready distributed task scheduler with cron triggers, DAG dependencies, retry policies, and distributed&#x2026;</p><p class="medium-feed-link"><a href="https://medium.com/production-ready/build-your-own-airflow-in-java-dags-retries-and-distributed-execution-8c0116096aeb?source=rss----c2b135aab76a---4">Continue reading on Production Ready »</a></p></div>]]></description>
            <link>https://medium.com/production-ready/build-your-own-airflow-in-java-dags-retries-and-distributed-execution-8c0116096aeb?source=rss----c2b135aab76a---4</link>
            <guid isPermaLink="false">https://medium.com/p/8c0116096aeb</guid>
            <category><![CDATA[distributed-systems]]></category>
            <category><![CDATA[java]]></category>
            <category><![CDATA[spring-boot]]></category>
            <category><![CDATA[scheduling]]></category>
            <category><![CDATA[system-design-concepts]]></category>
            <dc:creator><![CDATA[Anupam Sinha]]></dc:creator>
            <pubDate>Wed, 04 Nov 2026 15:58:11 GMT</pubDate>
            <atom:updated>2026-11-04T15:58:11.343Z</atom:updated>
        </item>
        <item>
            <title><![CDATA[Stop Guessing at WHERE vs HAVING: One Idea Makes GROUP BY Click]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-image"><a href="https://medium.com/production-ready/stop-guessing-at-where-vs-having-one-idea-makes-group-by-click-2a0f0a50e357?source=rss----c2b135aab76a---4"><img src="https://cdn-images-1.medium.com/max/2600/1*jfqGg8tfxwkFKAHfXznoTw.png" width="2688"></a></p><p class="medium-feed-snippet">Stop memorizing rules about WHERE vs HAVING. Build the mental model of how SQL groups, aggregates, and filters &#x2014; then GROUPING SETS&#x2026;</p><p class="medium-feed-link"><a href="https://medium.com/production-ready/stop-guessing-at-where-vs-having-one-idea-makes-group-by-click-2a0f0a50e357?source=rss----c2b135aab76a---4">Continue reading on Production Ready »</a></p></div>]]></description>
            <link>https://medium.com/production-ready/stop-guessing-at-where-vs-having-one-idea-makes-group-by-click-2a0f0a50e357?source=rss----c2b135aab76a---4</link>
            <guid isPermaLink="false">https://medium.com/p/2a0f0a50e357</guid>
            <category><![CDATA[backend]]></category>
            <category><![CDATA[sql]]></category>
            <category><![CDATA[database]]></category>
            <category><![CDATA[software-engineering]]></category>
            <category><![CDATA[programming]]></category>
            <dc:creator><![CDATA[Anupam Sinha]]></dc:creator>
            <pubDate>Wed, 04 Nov 2026 15:45:35 GMT</pubDate>
            <atom:updated>2026-11-04T15:45:35.487Z</atom:updated>
        </item>
        <item>
            <title><![CDATA[Design a Chat App for Millions of Users (Interview-Ready, With Code)]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-image"><a href="https://medium.com/production-ready/design-a-chat-app-for-millions-of-users-interview-ready-with-code-e6767010df39?source=rss----c2b135aab76a---4"><img src="https://cdn-images-1.medium.com/max/2600/1*V1KSvcERuSuEuCs_-oKk-w.png" width="2688"></a></p><p class="medium-feed-snippet">Design a real-time chat system that handles millions of concurrent messages using WebSocket for real-time delivery, Kafka for fan-out, and&#x2026;</p><p class="medium-feed-link"><a href="https://medium.com/production-ready/design-a-chat-app-for-millions-of-users-interview-ready-with-code-e6767010df39?source=rss----c2b135aab76a---4">Continue reading on Production Ready »</a></p></div>]]></description>
            <link>https://medium.com/production-ready/design-a-chat-app-for-millions-of-users-interview-ready-with-code-e6767010df39?source=rss----c2b135aab76a---4</link>
            <guid isPermaLink="false">https://medium.com/p/e6767010df39</guid>
            <category><![CDATA[redis]]></category>
            <category><![CDATA[system-design-concepts]]></category>
            <category><![CDATA[kafka]]></category>
            <category><![CDATA[websocket]]></category>
            <category><![CDATA[spring-boot]]></category>
            <dc:creator><![CDATA[Anupam Sinha]]></dc:creator>
            <pubDate>Wed, 04 Nov 2026 15:33:39 GMT</pubDate>
            <atom:updated>2026-11-04T15:33:39.512Z</atom:updated>
        </item>
        <item>
            <title><![CDATA[Search for 2M Products at 15M Queries a Day: Elasticsearch + Spring Boot]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-image"><a href="https://medium.com/production-ready/search-for-2m-products-at-15m-queries-a-day-elasticsearch-spring-boot-29556fa03766?source=rss----c2b135aab76a---4"><img src="https://cdn-images-1.medium.com/max/2600/1*HwxeWPOfPsaVVgyogI7y1w.png" width="2688"></a></p><p class="medium-feed-snippet">A complete implementation guide covering index design, custom analyzers, multi-language support, autocomplete, faceted search, relevance&#x2026;</p><p class="medium-feed-link"><a href="https://medium.com/production-ready/search-for-2m-products-at-15m-queries-a-day-elasticsearch-spring-boot-29556fa03766?source=rss----c2b135aab76a---4">Continue reading on Production Ready »</a></p></div>]]></description>
            <link>https://medium.com/production-ready/search-for-2m-products-at-15m-queries-a-day-elasticsearch-spring-boot-29556fa03766?source=rss----c2b135aab76a---4</link>
            <guid isPermaLink="false">https://medium.com/p/29556fa03766</guid>
            <category><![CDATA[search]]></category>
            <category><![CDATA[spring-boot]]></category>
            <category><![CDATA[full-text-search]]></category>
            <category><![CDATA[java]]></category>
            <category><![CDATA[elasticsearch]]></category>
            <dc:creator><![CDATA[Anupam Sinha]]></dc:creator>
            <pubDate>Wed, 04 Nov 2026 15:24:45 GMT</pubDate>
            <atom:updated>2026-11-04T15:24:45.374Z</atom:updated>
        </item>
        <item>
            <title><![CDATA[Design a Notification Service That Scales (and Nails the Interview)]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-image"><a href="https://medium.com/production-ready/design-a-notification-service-that-scales-and-nails-the-interview-a7508c1c8ff5?source=rss----c2b135aab76a---4"><img src="https://cdn-images-1.medium.com/max/2600/1*bgud62TDLKg3NtKnZQ7_fA.png" width="2688"></a></p><p class="medium-feed-snippet">Design a multi-channel notification service with Spring Boot and Kafka. Covers email (JavaMail + Thymeleaf templates), SMS, push&#x2026;</p><p class="medium-feed-link"><a href="https://medium.com/production-ready/design-a-notification-service-that-scales-and-nails-the-interview-a7508c1c8ff5?source=rss----c2b135aab76a---4">Continue reading on Production Ready »</a></p></div>]]></description>
            <link>https://medium.com/production-ready/design-a-notification-service-that-scales-and-nails-the-interview-a7508c1c8ff5?source=rss----c2b135aab76a---4</link>
            <guid isPermaLink="false">https://medium.com/p/a7508c1c8ff5</guid>
            <category><![CDATA[java]]></category>
            <category><![CDATA[software-architecture]]></category>
            <category><![CDATA[system-design-concepts]]></category>
            <category><![CDATA[spring-boot]]></category>
            <category><![CDATA[microservices]]></category>
            <dc:creator><![CDATA[Anupam Sinha]]></dc:creator>
            <pubDate>Sun, 01 Nov 2026 04:08:16 GMT</pubDate>
            <atom:updated>2026-11-01T04:08:16.487Z</atom:updated>
        </item>
        <item>
            <title><![CDATA[500M Rows and 2-Second Queries: Sharding Spring Boot the Right Way]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-image"><a href="https://medium.com/production-ready/500m-rows-and-2-second-queries-sharding-spring-boot-the-right-way-bc6e25e85650?source=rss----c2b135aab76a---4"><img src="https://cdn-images-1.medium.com/max/2600/1*uY5OJNwdXihocYSbGzVX2A.png" width="2688"></a></p><p class="medium-feed-snippet">A practical guide to implementing database sharding in Spring Boot &#x2014; covering when to shard, which strategy to pick, building a shard&#x2026;</p><p class="medium-feed-link"><a href="https://medium.com/production-ready/500m-rows-and-2-second-queries-sharding-spring-boot-the-right-way-bc6e25e85650?source=rss----c2b135aab76a---4">Continue reading on Production Ready »</a></p></div>]]></description>
            <link>https://medium.com/production-ready/500m-rows-and-2-second-queries-sharding-spring-boot-the-right-way-bc6e25e85650?source=rss----c2b135aab76a---4</link>
            <guid isPermaLink="false">https://medium.com/p/bc6e25e85650</guid>
            <category><![CDATA[scalability]]></category>
            <category><![CDATA[database-sharding]]></category>
            <category><![CDATA[system-design-concepts]]></category>
            <category><![CDATA[spring-boot]]></category>
            <category><![CDATA[database]]></category>
            <dc:creator><![CDATA[Anupam Sinha]]></dc:creator>
            <pubDate>Sun, 01 Nov 2026 03:45:23 GMT</pubDate>
            <atom:updated>2026-11-01T03:45:23.166Z</atom:updated>
        </item>
        <item>
            <title><![CDATA[Launch a Free Developer Blog with SEO, Analytics, and Comments in One Afternoon]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-image"><a href="https://medium.com/production-ready/launch-a-free-developer-blog-with-seo-analytics-and-comments-in-one-afternoon-97f841645fa8?source=rss----c2b135aab76a---4"><img src="https://cdn-images-1.medium.com/max/2600/1*_jHBll4dUrHLMHNKV0U9FA.png" width="2688"></a></p><p class="medium-feed-snippet">Complete guide to setting up a developer blog using Jekyll Chirpy theme on GitHub Pages. Covers SEO optimization, Google Analytics&#x2026;</p><p class="medium-feed-link"><a href="https://medium.com/production-ready/launch-a-free-developer-blog-with-seo-analytics-and-comments-in-one-afternoon-97f841645fa8?source=rss----c2b135aab76a---4">Continue reading on Production Ready »</a></p></div>]]></description>
            <link>https://medium.com/production-ready/launch-a-free-developer-blog-with-seo-analytics-and-comments-in-one-afternoon-97f841645fa8?source=rss----c2b135aab76a---4</link>
            <guid isPermaLink="false">https://medium.com/p/97f841645fa8</guid>
            <category><![CDATA[web-development]]></category>
            <category><![CDATA[devops]]></category>
            <category><![CDATA[github-pages]]></category>
            <category><![CDATA[seo]]></category>
            <category><![CDATA[blogging]]></category>
            <dc:creator><![CDATA[Anupam Sinha]]></dc:creator>
            <pubDate>Sat, 31 Oct 2026 15:51:20 GMT</pubDate>
            <atom:updated>2026-10-31T15:51:20.119Z</atom:updated>
        </item>
        <item>
            <title><![CDATA[Why Your Spring Boot App Is Slow (And How I Fixed 12 Common Causes)]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-image"><a href="https://medium.com/production-ready/why-your-spring-boot-app-is-slow-and-how-i-fixed-12-common-causes-30aa979c4ab3?source=rss----c2b135aab76a---4"><img src="https://cdn-images-1.medium.com/max/2600/1*4kjHxKNlK2yr6V6r6MjH_A.png" width="2688"></a></p><p class="medium-feed-snippet">A field guide to diagnosing and fixing real production performance issues in Spring Boot &#x2014; based on 17 years of firefighting Java&#x2026;</p><p class="medium-feed-link"><a href="https://medium.com/production-ready/why-your-spring-boot-app-is-slow-and-how-i-fixed-12-common-causes-30aa979c4ab3?source=rss----c2b135aab76a---4">Continue reading on Production Ready »</a></p></div>]]></description>
            <link>https://medium.com/production-ready/why-your-spring-boot-app-is-slow-and-how-i-fixed-12-common-causes-30aa979c4ab3?source=rss----c2b135aab76a---4</link>
            <guid isPermaLink="false">https://medium.com/p/30aa979c4ab3</guid>
            <category><![CDATA[performance]]></category>
            <category><![CDATA[spring-boot]]></category>
            <category><![CDATA[production]]></category>
            <category><![CDATA[debugging]]></category>
            <category><![CDATA[java]]></category>
            <dc:creator><![CDATA[Anupam Sinha]]></dc:creator>
            <pubDate>Sat, 31 Oct 2026 14:24:07 GMT</pubDate>
            <atom:updated>2026-10-31T14:24:07.596Z</atom:updated>
        </item>
        <item>
            <title><![CDATA[Service Mesh vs Helm in OpenShift: They’re Not Competitors (Stop Confusing Them)]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-image"><a href="https://medium.com/production-ready/service-mesh-vs-helm-in-openshift-theyre-not-competitors-stop-confusing-them-76948463b682?source=rss----c2b135aab76a---4"><img src="https://cdn-images-1.medium.com/max/2600/1*mX2153XUG79AQcyZiKi8zw.png" width="2688"></a></p><p class="medium-feed-snippet">Understand the difference between Service Mesh and Helm chart deployments in OpenShift.</p><p class="medium-feed-link"><a href="https://medium.com/production-ready/service-mesh-vs-helm-in-openshift-theyre-not-competitors-stop-confusing-them-76948463b682?source=rss----c2b135aab76a---4">Continue reading on Production Ready »</a></p></div>]]></description>
            <link>https://medium.com/production-ready/service-mesh-vs-helm-in-openshift-theyre-not-competitors-stop-confusing-them-76948463b682?source=rss----c2b135aab76a---4</link>
            <guid isPermaLink="false">https://medium.com/p/76948463b682</guid>
            <category><![CDATA[cloud-computing]]></category>
            <category><![CDATA[devops]]></category>
            <category><![CDATA[microservices]]></category>
            <category><![CDATA[kubernetes]]></category>
            <category><![CDATA[openshift]]></category>
            <dc:creator><![CDATA[Anupam Sinha]]></dc:creator>
            <pubDate>Sat, 31 Oct 2026 13:58:04 GMT</pubDate>
            <atom:updated>2026-10-31T13:58:04.356Z</atom:updated>
        </item>
        <item>
            <title><![CDATA[When One Database Isn’t Enough: 3 Sharding Strategies That Scale]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-image"><a href="https://medium.com/production-ready/when-one-database-isnt-enough-3-sharding-strategies-that-scale-9957698d8004?source=rss----c2b135aab76a---4"><img src="https://cdn-images-1.medium.com/max/2600/1*rFjoFbbAxM5Z8u08ITZuzA.png" width="2688"></a></p><p class="medium-feed-snippet">When one database can&#x2019;t hold your data or handle your traffic, you split it up. Learn the three core sharding strategies, how routing and&#x2026;</p><p class="medium-feed-link"><a href="https://medium.com/production-ready/when-one-database-isnt-enough-3-sharding-strategies-that-scale-9957698d8004?source=rss----c2b135aab76a---4">Continue reading on Production Ready »</a></p></div>]]></description>
            <link>https://medium.com/production-ready/when-one-database-isnt-enough-3-sharding-strategies-that-scale-9957698d8004?source=rss----c2b135aab76a---4</link>
            <guid isPermaLink="false">https://medium.com/p/9957698d8004</guid>
            <category><![CDATA[system-design-concepts]]></category>
            <category><![CDATA[database]]></category>
            <category><![CDATA[software-engineering]]></category>
            <category><![CDATA[sql]]></category>
            <category><![CDATA[backend]]></category>
            <dc:creator><![CDATA[Anupam Sinha]]></dc:creator>
            <pubDate>Sat, 31 Oct 2026 13:18:23 GMT</pubDate>
            <atom:updated>2026-10-31T13:18:22.981Z</atom:updated>
        </item>
    </channel>
</rss>