work
Theme

# work

~9 years across three teams, newest first.

## Rise-XFeb 2021 — Aug 2026

Full-Stack Software Developer

Full-stack on an offline-first Electron app — React front end, C#/.NET back end — that keeps working with no connection and syncs to the cloud the moment it's back.

  • Led a 5-person team of frontend and backend developers spread across Australia, Ukraine, and the Philippines, running sprint planning, daily scrum, and retrospectives.
  • Built and maintained the C#/.NET endpoints and services behind the front end, owning features end to end rather than the UI alone.
  • Re-architected a large React codebase from JavaScript to TypeScript: typesafe, reusable functional components, Zustand for client state, and React Query for server state.
  • Practiced TDD with 80%+ unit-test coverage, kept a Storybook for designers and product owners, and maintained Playwright suites that catch regressions in critical flows before every release.
  • Adopted Claude Code and MCP tooling, building custom Skills for code review, documentation, and internal workflows.
ElectronReactTypeScriptC#/.NETZustandReact QueryStorybookPlaywrightClaude Code

## RestoplusJul 2020 — Feb 2021

Full-Stack Software Developer

Took the table-booking feature from concept to release and kept the React frontend, Node backend, and React Native app running.

  • Practiced TDD with Sinon, backed by end-to-end tests in Cypress and Puppeteer.
  • Shipped the app to the Google Play Store.
ReactReact NativeNodeSinonCypressPuppeteer

## StreetByApr 2017 — Jul 2020

Full-Stack Software Developer

Built and owned the merchant management module on a Node backend, and shipped the app to both the Google Play Store and the Apple App Store.

  • Integrated Paynamics for online payments, Globe SMS for messaging, Branch.io for deep linking, and OneSignal for push notifications.
  • Built tailored reports that surfaced data insights for the marketing and sales teams.
  • Worked with the CEO, product manager, and marketing team to assess technical options and inform decisions.
NodePaynamicsGlobe SMSBranch.ioOneSignal