Code

Open source & tooling.

A small set of libraries and experiments — mostly around mobile payments, subscription state, and Android developer experience. Built in the gaps between shipping at billion-install scale.

Featured

renew-kt

v0.1 · Apache 2.0

A deterministic Kotlin state machine for the Google Play Billing subscription lifecycle. Models 7 canonical states (Active, InGracePeriod, OnHold, Paused, Cancelled, Expired…) and 11 events, rejecting invalid transitions with descriptive reasons instead of silently leaving your app in an inconsistent state.

  • Stack Kotlin / JVM, no Android deps
  • Tests 21 unit tests, CI on every push
  • Why The Play Billing docs answer "what should happen" across many pages; this library encodes the answer in one place.

In progress

Reach me

Spot something off, or have a real-world Play Billing edge case that should be modelled? Open an issue, or email me.

♪ Reading music
Clair de Lune
Debussy · public domain
Three public-domain pieces · drop MP3s into public/music/ to enable playback.