<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Rishabh Gupta</title><description>Mobile growth &amp; monetization engineering. Computer Scientist at Adobe Acrobat Android (1B+ installs, 95M+ MAU). Writing about mobile payments architecture, subscriptions, and Android DevEx.</description><link>https://rishabhships.com/</link><item><title>The 12×12 cross-grade problem: subscriptions when you have more than one product</title><link>https://rishabhships.com/blog/cross-grade-12x12/</link><guid isPermaLink="true">https://rishabhships.com/blog/cross-grade-12x12/</guid><description>Single-product subscriptions are a state machine. Multi-product subscriptions are a state machine sitting on top of a matrix. Here&apos;s the design, and the operational discipline that goes with it.</description><pubDate>Sun, 14 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Modeling Google Play Billing subscriptions as a state machine</title><link>https://rishabhships.com/blog/subscription-state-machine/</link><guid isPermaLink="true">https://rishabhships.com/blog/subscription-state-machine/</guid><description>Subscription state in a Play Billing app isn&apos;t a single source of truth. It&apos;s a derived view. Here&apos;s how I model it explicitly, and the small Kotlin library I extracted from doing this at scale.</description><pubDate>Thu, 11 Jun 2026 00:00:00 GMT</pubDate></item></channel></rss>