Testfully.io
Dec 2020 – PresentIndie Hacker
An API development toolkit for enterprises, competing with Postman and Insomnia, built and run from the ground up.
Design system & customer app
- —Design system in React, TypeScript, Storybook, Radix UI and Tailwind with dark mode, built on the composition pattern; Nx workspaces for modularity, published to AWS CodeArtifact via GitHub Actions.
- —app.testfully.io in React, TypeScript, Akita, RxJS and React Router; heavily unit tested with Jest & Chai; deployed via CloudFront and GitHub Actions.
- —Desktop build for Windows, macOS and Linux using Tauri.
Backends, CLI & infrastructure
- —Golang backend-for-frontend over HTTP and WebSocket using a message-based protocol (tRPC-like), on ECS Fargate behind ALB and WAF.
- —Federated GraphQL API (Golang & Node.js, Apollo) backed by Redis, Postgres and DynamoDB.
- —Task processing on EventBridge and SQS, running on Fargate and Lambda.
- —Testfully CLI in Golang for customer CI/CD pipelines; browser extensions for Chrome, Edge and Firefox.
- —DEV, UAT and Prod environments provisioned with Terraform, wrapped in a Bash CLI for day-to-day operations.
oOh! Media
May 2023 – Apr 2024Senior Software Engineer · Contract
Worked with the solution architect to implement the company's new event-driven architecture on AWS EventBridge, Step Functions and Lambda, spanning multiple AWS accounts with safe, secure cross-account communication.
- —Infrastructure as code with AWS CDK (TypeScript), provisioned through GitHub Actions pipelines.
- —Published an internal NPM module of reusable CDK constructs adopted by other teams.
QBE
Oct 2022 – Apr 2023Hands-on Tech Lead · Contract
Claims for SME
- —Tech lead for a React app for claim lodgement and finding authorised repairers.
- —React, TypeScript, Storybook and Styled Components on top of QBE's internal design system.
Risk Management Portal
- —Tech lead and solution architect for the integration layer between internal QBE systems and Loss Control 360.
- —MuleSoft REST endpoints and workers ingesting data from external systems.
- —Browser-based apps in Pega 7 for internal users.
THE ICONIC
Jul 2021 – Sep 2022Senior Software Engineer · Contract
Hired to help execute the rewrite of theiconic.com.au in React.
- —Design system: in React, TypeScript, Storybook and Tailwind, built on hooks and the composition pattern, maintained in an Nx workspace.
- —Micro front-end boilerplate: (Nx, Next.js) with state management (Akita), feature flags (LaunchDarkly), logging, JWT authorisation, error handling and routing; shipped the Store Credit and Wishlist apps on it, deployed to Kubernetes on ECS via Terraform.
- —GraphQL API: serving the micro front-ends: Nest microservices behind a federated Apollo schema, with a boilerplate for spinning up new services.
Westpac
Feb 2020 – Jul 2021Hands-on Senior Tech Lead · Contract
Hired to execute the Smart Desktop plan: a suite of desktop apps powered by React and OpenFin for the WIB division.
- —Design system: in React, TypeScript, Storybook and Tailwind; composition pattern, Yarn Workspaces, published to the internal registry, bringing consistency across apps and accelerating new ones.
- —Request For Quote app: a real-time app connecting sales and traders over WebSocket, built with React, TypeScript, RxJS and Tailwind; extensively tested with Jest and Chai.
- —OpenFin & FDC3 adoption: incorporated the FDC3 cross-app interoperability spec across the desktop apps.
- —Infrastructure & CI/CD: four identical AWS environments in Terraform with a reusable Jenkins pipeline over shell scripts.
Different
Sep 2018 – Feb 2020Engineering Lead
Joined the startup early to build an onshore and offshore engineering team and take the tech stack back from an external consultancy.
Platform
- —GraphQL API serving mobile and web apps for tenants, owners, contractors and staff, built with GraphQL.js with Flow, MongoDB and MySQL, tested with Mocha; ECS + ALB via Terraform, Jenkins CI/CD.
- —Design system in TypeScript, React, BEM and Sass, tested with Jest and published as private NPM packages.
- —Task processing system for background jobs and report generation, written in TypeScript on Node.js, SQS, deployed to ECS.
Financial engines (vanilla TypeScript, exhaustively tested)
- —Statement engine: monthly owner statements covering management, maintenance, advertising and legal fees, rental income and GST; PDFs generated on demand via Lambda.
- —Ledger engine: rental ledgers handling bond, rent split, over/under payment and maintenance scenarios, exposed over REST.
- —Payment engine: rent collection across multiple pluggable payment providers, with safeguards against fraud and double-charging.
Autopilot
Feb 2016 – Jul 2018Senior Software Engineer
Full-stack engineer on Dashboard V3, a React/Redux rebuild of the marketing-automation dashboard with real-time multi-user sync over WebSocket, its own reusable UI library (JavaScript, React, Sass, BEM), a Node.js WebSocket backend on EC2, and a Lambda chart-rendering service for the weekly customer digest; deployed via CloudFront and S3 with Terraform.
Tabcorp
Feb 2015 – Feb 2016Senior Software Engineer
Migrated TAB's digital platform from legacy Java/Flash to AngularJS and Node, covering wagering, payment and account REST endpoints (CoffeeScript, Node, CloudFormation, EC2) serving web, iOS and Android, plus a bookmaker-facing multi-bet configuration dashboard.
Alphatise
Sep 2014 – Feb 2015Senior Software Engineer · Contract
Full-stack contractor on the customer-facing AngularJS/Sass web app, RESTful backends in Node.js, CoffeeScript and MySQL, and a Python/Scrapy web-scraping engine.
Onit Media
Jun 2013 – Sep 2014Lead Software Engineer
Led development of Shuuga, a geo-based local deals app, comprising the Node.js/SQL Server API on EC2, a real-time analytics pipeline (Node.js ingestion, MongoDB, cron-based reporting for business owners) and an AngularJS admin dashboard on S3.