<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:media="http://search.yahoo.com/mrss/" xml:lang="en">
  <title>Ritesh Sharma — Writing</title>
  <subtitle>Case studies and notes on Java distributed systems, fintech trading platforms, open source, and dependable AI.</subtitle>
  <link rel="self" type="application/atom+xml" href="https://riteshsharma.dev/feed.xml"/>
  <link rel="alternate" type="text/html" href="https://riteshsharma.dev/"/>
  <id>https://riteshsharma.dev/</id>
  <updated>2026-10-18T00:00:00+05:30</updated>
  <author>
    <name>Ritesh Sharma</name>
    <uri>https://riteshsharma.dev/</uri>
  </author>
  <icon>https://riteshsharma.dev/apple-touch-icon.png</icon>
  <rights>© 2026 Ritesh Sharma</rights>

  <entry>
    <title>Cutting a trading platform's recovery from 90+ minutes to 7</title>
    <link rel="alternate" type="text/html" href="https://riteshsharma.dev/writing/tier1-recovery/"/>
    <id>https://riteshsharma.dev/writing/tier1-recovery/</id>
    <published>2026-10-18T00:00:00+05:30</published>
    <updated>2026-10-18T00:00:00+05:30</updated>
    <summary>How parallel Cassandra token-range loading, Apache Ignite cache topology, and staged cluster formation gave a Tier-1 multi-region trading platform a 13× faster restart path.</summary>
    <category term="distributed-systems"/>
    <category term="cassandra"/>
    <category term="apache-ignite"/>
    <category term="performance"/>
    <category term="fintech"/>
    <category term="sre"/>
    <media:thumbnail url="https://riteshsharma.dev/assets/og/tier1.png" width="1200" height="630"/>
  </entry>

  <entry>
    <title>A hash collision, a wrong diff, and my first open-source PR</title>
    <link rel="alternate" type="text/html" href="https://riteshsharma.dev/writing/javers-hash-collision/"/>
    <id>https://riteshsharma.dev/writing/javers-hash-collision/</id>
    <published>2026-10-18T00:00:00+05:30</published>
    <updated>2026-10-18T00:00:00+05:30</updated>
    <summary>JaVers was silently dropping NewObject changes because two global IDs can share a Java hashCode. Debugging it in production, fixing it upstream (PR #1454), and why we patch upstream instead of pinning.</summary>
    <category term="open-source"/>
    <category term="java"/>
    <category term="javers"/>
    <category term="hash-collision"/>
    <category term="debugging"/>
    <category term="java-17"/>
    <media:thumbnail url="https://riteshsharma.dev/assets/og/javers.png" width="1200" height="630"/>
  </entry>
</feed>
