Skip to content

Rixl

A video and media platform other products build on.

Backend software engineer and the largest contributor to its backend. I owned billing, passkey sign-in, authorization policies and canary releases.

Go SDKDocs

Role
Software engineer, backend
Context
Employer, contract
Duration
16 months
When
2025 to 2026

What I owned

  • Billing and subscriptions.
  • Passkey sign-in, across the auth service, API and gateway.
  • Authorization policies.
  • Canary releases, with metrics labelled by cohort so a canary can be judged before rollout.
  • Request tracing across the services.
  • Subtitle and audio tracks: upload, authoring and processing.
  • The authentication layer every service uses to call another.
  • The move of the core services to gRPC, and all eight SDKs.

Owned end to end

Billing in the core API

  1. Stripe checkout and subscriptions
  2. Usage meters
  3. Invoices
  4. Webhooks
  5. Plan quotas
  6. Tests

I wrote most of the billing code and its tests.

Impact

The billing and auth code I owned ships in Rixl's public API, 210 operations documented at docs.rixl.com.

The Rixl documentation home page

When things go wrong

  1. When a transcoding job fails or stalls,

    renditions are claimed with row locks and retried with backoff, and a reconciler recovers uploads that stall.

  2. When the SDKs could drift from the API,

    the spec is generated from the service definitions, and every change regenerates all eight SDKs.

  3. When one dashboard query gets expensive,

    analytics runs as its own ClickHouse service, and each dashboard query has a work limit and a deadline.

Built with

Go, gRPC, PostgreSQL, River, ClickHouse, FFmpeg

The decision

Explicit work, not polling: making Rixl's upload pipeline start and recover on its own