Christian TorresFull stack developer
← All work

Bless Payments, Perth · Full Stack Developer · 2023 to 2025

Bless Payments

An international money transfer platform where I built most of the features: payments, authentication, KYC, the web app, the mobile app and the UI people actually tapped on. Two years of making sure money goes where it's told.

  • React Native
  • React
  • TypeScript
  • .NET
  • C#
  • Node.js
  • Azure
  • 3D Secure
  • OCR
  • KYC
  1. Customer appsReact Native + web

    The customer app in React Native, and a web app, on the same APIs.

  2. Marketing sitelanding pages

    Landing pages tuned so people actually finished signing up.

  3. .NET middlewaredeployed on Azure

    Middleware between the apps and everything else, deployed to Azure.

  4. Node.js servicesalongside the middleware

    REST APIs between the apps, the .NET middleware and the Node.js services.

  5. KYC flowown flow · OCR + SDK

    Our own flow, not a hosted page. OCR reads the details off identity documents, and a third-party identity SDK handles the checks.

  6. Card payments3D Secure

    Card payments through a payment gateway, with 3D Secure so the card holder's bank verifies the payment.

  7. Payment gatewaythird-party

    The gateway integration behind card payments.

Sheet
1 of 1 · Bless Payments
Client
Bless Payments, Perth
Role · period
Full Stack Developer · 2023 to 2025
Stack
React Native · React · TypeScript · .NET
Status
Ended

The product

An Australian money transfer platform built by migrants for migrants, sending money to 15 countries in 12 languages. It launched publicly in late 2023, out of Perth, and it was my first job out of university. I treated it like a crash course in "this is real people's rent money, please don't break it."

The system

Customer apps (React Native, web)  ·  marketing site
          │
          ▼
  .NET middleware on Azure  ── REST ──  Node.js services
     │                 │
     ▼                 ▼
  Card payments       KYC flow (our own)
  (3D Secure)         document OCR + identity SDK
          │
          ▼
  Payment gateway

Two kinds of backend sat behind the apps. The .NET middleware handled the things that touch money and identity, and it ran on Azure. The Node.js services sat alongside it for the rest of the product.

What I built

Most of it, honestly. Over two years I built the majority of the product's features:

  • Card payments: card payments through a payment gateway, with 3D Secure authentication so the card holder's bank verifies the payment.
  • KYC: our own identity verification flow, not a hosted page. OCR reads the details off the customer's identity documents, and a third-party identity SDK handles the checks. The part where we ask you to prove you're you, ideally without making you want to throw your phone.
  • Authentication: sign up, sign in and session handling, built with security first, because a money app is basically a polite invitation to attackers.
  • Mobile and web apps: the customer app in React Native, and the web app, both talking to the same APIs.
  • Marketing site: the landing pages, tuned so people actually finished signing up, and the other marketing pages.
  • Middleware and APIs: REST APIs between the apps, the .NET middleware, and the Node.js services, deployed to Azure.

How it went

End-to-end testing across environments, with a team spread across time zones. I learned that "it works on my machine" is not a payment status, and that the best fintech feature is the one nobody notices because nothing went wrong.