architecture deep dives

systems i have built and operated, with the tradeoffs and failure modes included.

how i design systems

  • put business constraints next to technical constraints, early.
  • separate hot-path reliability from heavy async processing.
  • design failure states first, then optimize happy-path latency.
  • measure outcomes in production, not just in test environments.

Hasura Cloud Billing Engine

Hasura | Software Engineer | Nov 2022 - Aug 2023

challenge: Legacy fixed-tier billing blocked enterprise deal velocity and usage-based monetization.

constraints: 10-week deadline, finance-grade correctness, distributed usage data, and low operational overhead at launch.

outcome: Usage-based pricing launched on time with reliable invoices and clear path to pay-as-you-go expansion.

stack: Go | PostgreSQL | Prometheus | BigQuery | Stripe

read deep dive

Hasura Schema Registry

Hasura | Software Engineer | Nov 2022 - Aug 2023

challenge: Customers lacked reliable schema version history and change-risk detection across environments.

constraints: No hot-path latency regression, large SDL payloads, event ordering uncertainty, and practical MVP timeline.

outcome: Delivered reliable schema history with breaking/dangerous change classification and actionable team alerts.

stack: Haskell | Go | GraphQL | SHA-256 | Myers Diff | Slack

read deep dive

Klarna SEPA Instant Payments

Klarna | Software Engineer II | Oct 2021 - Oct 2022

challenge: Launch a real-time payment flow with strict timing and compliance dependencies across multiple internal and external services.

constraints: 6-8 week MVP timeline, hard SLA envelope, multi-hop async flow, and incomplete early observability.

outcome: Production-ready SEPA Instant path with robust monitoring, staged hardening, and strong operational clarity.

stack: Python | TypeScript | Form3 | Grafana | Message Queues | DLQ

read deep dive