Skip to content
← Work

Future Forex

Lead frontend engineer

Future Forex is a South African fintech for foreign exchange: international transfers, Smart Conversions, FEC management, the compliance document flows that go with them, and a crypto arbitrage product on the side.

I led frontend and product work across the client platform. That estate was bigger than one app: a Forex account app, a crypto arbitrage dashboard, a public Astro site, shared packages, mobile wrappers, the E2E tests, and the deploy config.

What I built

  • The unified frontend monorepo and the conventions that kept it sane: workspaces, shared libraries, validation scripts, linting, and dependency upkeep.
  • The Forex account app: login and registration, individual and business onboarding, OTP flows, session timeouts, account switching, settings, and authenticated routing.
  • The money-movement core: send and receive quotes, payment details, balance-of-payment forms, document uploads, review screens, transaction lists, balances, withdrawals, and recipients.
  • Smart Conversion and FEC surfaces, from dashboards and detail pages through payment flows, exchange details, filters, and confirmation downloads.
  • The document workflows around compliance-sensitive transactions: status hooks, required-document banners, the add/remove/submit modals, downloads, feature flags, and the error handling that has to be right when money and paperwork are both involved.
  • The crypto arbitrage dashboard end to end: onboarding, account lists, balances, allowance tracking, spread graphs, trade history, deposits and withdrawals, statements, and cross-links back into the Forex quote flows.
  • A shared UI kit the apps drew from: buttons, inputs, dialogs, date and range pickers, sortable tables, mobile headers, banners, toasts, and the rest of the usual suspects.
  • The public website, including its Astro migration: landing pages, calculators, quote forms, resources, a legal-page and SEO URL restructure, structured data, sitemap and RSS, and accessibility fixes.

Around all of it sat analytics, observability, automated tests, mobile wrapper support, Docker and Caddy, the DigitalOcean deploy specs, and GitLab CI.

Hard parts

Fintech UI has to make complicated state legible without hiding the compliance requirements underneath it. The account experience had to walk people through quotes, documents, payments, recipients, and approvals while leaving a clean audit trail behind them for support and operations to follow.

The public site and the authenticated apps shared a brand but pulled in different directions. A lot of the work was extracting the common UI and platform pieces once, then letting each app stay fit for its own job instead of forcing them to converge.

Stack

React, TypeScript, Vite, React Router, React Hook Form, SWR, Zustand and Jotai, CSS Modules with PostCSS, the React Compiler; Astro for the public site with JSON-LD and sitemap/RSS tooling; Radix, Headless UI, Recharts and date-fns; React Email and Firebase Cloud Messaging; iOS and Android wrappers; Vitest, Testing Library, MSW and Playwright; and a Docker/Caddy deploy to DigitalOcean over GitLab CI.