Sheet 01 · Rev A

Heshan Rathnayake

Software Engineer · Product Engineer · Melbourne, Australia

I architect production SaaS systems end to end schema and service design through deployment and on-call. Most of my work is multi-tenant: identity, access control, and the boundaries that keep one customer's data away from another's.

Fig. 01 — This sheet, exploded

0102030405060708091011

Nominal arrangement · drag to orbit · select a region to dimension it

Notes

  1. Orthographic projection, no perspective convergence
  2. Regions measured from the live DOM, not authored by hand
  3. DOM nesting depth becomes the explode axis

02 — Selected work

What I’ve built, and what each one cost.

  1. 01

    Shipyard — SaaS project management platform

    Solo build · Personal project

    A multi-tenant platform split across a Next.js web app, an Express real-time server and shared packages for API, database, UI, email, logging and types. Built to work through the parts that are easy to fake and hard to actually get right: type-safe boundaries, four-tier RBAC, and live Kanban collaboration between concurrent authenticated users.

    Sourcegithub.com/heshan-rathnayake/shipyard-appLiveshipyard-app-web.vercel.app

    Outcome
    Four-tier RBAC · live multi-user Kanban · resilient webhook processing
    Trade-off
    A Turborepo monorepo with shared packages buys type safety across the boundary and costs build complexity. Was it the right call at this size?
    • Next.js
    • tRPC
    • PostgreSQL
    • Prisma
    • Socket.io
    • Stripe
    • Turborepo
    • Zod
    • Vitest
  2. 02

    Tourify — tour booking and quoting platform

    Founder & Product Engineer · Independent venture

    A customer-facing booking platform built on a normalised tour-template, destination and itinerary schema driving per-vehicle pricing rules. The core is a server-side pricing engine that recomputes vehicle, guide, accommodation and per-destination costs on every itinerary mutation, with idempotent quote persistence and webhook-driven booking state transitions.

    Livethetourify.com

    Outcome
    Shipped end to end deposits, scheduled installments, refund policy enforcement
    Trade-off
    Recomputing the full quote on every mutation is a deliberate choice over incremental updates. Why was it worth the cost, and where did it start to hurt?
    • Next.js
    • TypeScript
    • Supabase
    • PostgreSQL
    • Stripe

03 — Approach

Most of what I build is invisible when it works.

I have spent the last three years as the primary architect on a commercial multi-tenant platform schema and service design at one end, deployment and on-call at the other. Most of that time went into tenancy boundaries, identity, and the parts of a system that only get noticed when they fail.

Founding Tourify is where the product judgment came from. Owning something end to end pricing logic, payments, SEO, infrastructure, the support inbox — teaches you which engineering decisions a customer actually feels, and which ones are only interesting to engineers.

  1. 01

    Architecture & security

    • Software architecture
    • System design
    • Multi-tenant SaaS
    • IAM/IDAM
    • RBAC
    • OAuth 2.0
    • OIDC
    • Microsoft Entra ID
    • Microservices
  2. 02

    Backend

    • Node.js
    • TypeScript
    • Express.js
    • REST
    • WebSockets
    • Webhooks
    • GraphQL
    • tRPC
    • Prisma
    • Zod
  3. 03

    Frontend

    • HTML
    • CSS
    • React
    • Next.js
    • JavaScript
    • TypeScript
    • TanStack Query
    • Zustand
    • Redux Toolkit
    • UI Frameworks
  4. 04

    Data & infrastructure

    • Docker
    • Nginx
    • Linux
    • MySQL
    • PostgreSQL
    • Supabase
    • AWS
    • MongoDB
    • Vercel
  5. 05

    Engineering & delivery

    • CI/CD
    • GitHub Actions
    • Production operations
    • Monitoring
    • CloudWatch
    • Testing
    • Vitest
    • Turborepo
    • Monorepo
  6. 06

    Product & integrations

    • Endpoint security
    • DLP
    • Stripe
    • Subscription billing
    • Payment processing
    • Real-time systems