Platform2025 — Present

Fund CRM & Investor Platform

Product owner & technical lead · Decode Global

The group's client platform, serving a wholesale fund manager, an AFSL-licensed FX/CFD broker and a CeFi digital-asset business from one codebase. I own it end-to-end as product owner and technical lead — roadmap, specifications, build, testing and release on GCP and AWS — and authored roughly 430 of its 583 merged pull requests. It replaced spreadsheet-and-email handling of client money with one system: website lead capture → CRM sales pipeline → investor-portal onboarding and KYC → subscription with payment-proof upload → L1/L2 maker-checker approval → scheduled distributions → redemptions → PDF investor statements.

Confidential company project. Built at Decode Global for regulated financial-services businesses — the platform and its data are private, so there's no public link or product screenshots. Happy to walk through the architecture and my contribution on request.

What it does

  • Defined and delivered five apps (staff CRM, investor portal, client centre, admin, intake) on one API — 88 data models, 121 migrations, 225 test files.
  • Schema-per-tenant PostgreSQL isolation, office-level RBAC nested under each legal entity, staff 2FA and an audit log on every sensitive action.
  • Modelled the money workflow as a state machine, with distribution logic implemented exactly as the fund's Information Memorandum defines it — reconciled against the IM itself, not inferred from data.
  • Migrated 22 months of fund history from Xero into production with every imported row traceable, producing annual statements showing gross distribution, withholding tax and net amount.
  • Run delivery across engineering, QA, compliance, finance and marketing: phased plans, ticket triage, per-ticket QA/UAT checklists, CI release gates (lint, type check, tests) and a weekly status and risk report to leadership.

Illustrative UI — confidential project, no real screenshots published

Next project
Unified Client Centre & Single Sign-On
→