Available now · Open to contract or permanent

Loic Wong

Engineering Lead & Senior Software Engineer

Auckland, New Zealand · Working across New Zealand and Australia

Email me LinkedIn

Domains

Eighteen years across regulated industries — each one a different set of rules to learn before the code matters.

Experience

  1. 2022 – 2026

    Datarock — Senior Software Engineer

    New Zealand

    Built and evolved a cloud-native SaaS platform for visualising and managing ML-generated rock classification outputs, across full-stack development, AWS architecture, data engineering and technical leadership.

    • Owned the migration of persistent data from DynamoDB to PostgreSQL/RDS, including data modelling, migration strategy and backward-compatible APIs, so the platform could evolve without disrupting existing customers.
    • Designed and built an internal AWS CDK-based RDS CLI that automated database provisioning, letting new microservices be scaffolded with consistent infrastructure and dependencies.
    • Built the ML-visualisation interfaces in React, React Query and MUI, investigating frontend performance with Chrome DevTools and Lighthouse and monitoring production errors with Sentry.
    • Mentored engineers across the team on software design, API integration, testing, AWS and production troubleshooting.
    • TypeScript
    • Node.js
    • React
    • React Query
    • MUI
    • AWS
    • PostgreSQL
    • DynamoDB
    • Lambda
    • ECS/Fargate
    • CDK
    • Step Functions
    • Jest
    • Pact/PactFlow
    • Docker
  2. 2022

    Docuvera — Software Engineer

    Contract

    Frontend architecture, performance optimisation and complex document rendering on a highly regulated document authoring and review platform.

    • Diagnosed a critical Largest Contentful Paint failure caused by deeply nested composite components, and proved a flattened-DOM plus virtual-scrolling fix by building a proof of concept.
    • Analysed DOM structure and browser rendering behaviour to identify excessive layout and paint cost in large documents, separating rendering cost from payload size.
    • Worked directly with the Product Owner to design and implement core authoring-platform features, balancing product requirements against maintainability and performance.
    • Next.js
    • TypeScript
    • GraphQL
    • Apollo Client
    • Apollo Server
    • Angular
    • Storybook
    • Tailwind CSS
    • SCSS
    • Playwright
  3. 2021 – 2022

    Mercury NZ — Senior API & Integration Developer

    Contract Auckland, New Zealand

    Designed and implemented enterprise API integration for the Mercury App using AWS microservices and serverless architecture.

    • Designed and implemented the customer overdue-billing notification solution, integrating SAP APIs, AWS services, PostgreSQL/RDS and Firebase Notifications.
    • Designed and implemented Wind Offer Service V12 using Step Functions, CloudWatch Events, S3 and SQS.
    • Migrated legacy APIs from EC2-hosted services to AWS serverless architecture, and contributed a reusable Serverless OpenAPI validation middleware.
    • TypeScript
    • Node.js
    • Ts.ED
    • AWS Lambda
    • API Gateway
    • Step Functions
    • SQS
    • S3
    • DynamoDB
    • RDS
    • SAP
    • PureCloud
  4. 2020 – 2021

    HazardCo — Senior Software Engineer

    Contract

    Delivered customer-facing features, serverless APIs, security improvements and platform upgrades across the HazardCo mobile and web platforms.

    • Built the free registration module using Angular and NativeScript, including free-trial plan definition and implementation.
    • Led the NativeScript 6 to 7 upgrade, covering Angular and TypeScript compiler upgrades, namespace changes, plugin compatibility, patches and Webpack optimisation.
    • Investigated security issues and implemented mitigations including AWS WAF, DDoS protection, request-rate limiting and encryption.
    • Angular
    • NativeScript
    • TypeScript
    • AWS Lambda
    • API Gateway
    • SNS
    • SQS
    • DynamoDB
    • S3
    • Appium
    • Webpack
  5. 2019 – 2020

    Aviat Networks — Senior Software Engineer

    Contract

    Worked on ProVision Plus, a network management application, focusing on large-scale topology visualisation, frontend architecture and framework migration.

    • Established the feasibility of topology diagrams containing thousands of nodes and links, benchmarking D3, Vis, Paper, Cytoscape and NeXt for performance and scalability.
    • Designed customised region-quadtree clustering and search approaches so large topology datasets stayed interactive.
    • Led the migration from AngularJS 1.5 to Vue, designing a hybrid frontend architecture that allowed the application to migrate incrementally rather than through a rewrite.
    • Vue
    • AngularJS
    • D3.js
    • TypeScript
    • Node.js
    • Express.js
    • Stylus
    • Pug
    • Jenkins
  6. 2018 – 2019

    Bank of New Zealand — Java Full-stack Developer

    New Zealand

    Online banking authentication, security and cards platforms across the Pixel Perfect and Smurfs teams.

    • Optimised Mobile Internet Banking authentication, reducing login latency from approximately 800ms to 300ms.
    • Designed and implemented a mobile OAuth solution for CIAM, reducing expected contact-centre authentication service time from approximately five minutes to thirty seconds.
    • Owned the Internet Banking Cards and CRS modules, migrating legacy Backbone functionality to React and building automated tests with Jest, Enzyme and RxJS Marble testing.
    • Java
    • Spring
    • React
    • Redux
    • RxJS
    • Node.js
    • AWS
    • OpenShift
    • Jenkins
    • JUnit
    • Mockito
    • Jest
    • Enzyme
    • MuleSoft
    • APIGEE

Earlier: Dominion, delivering AEM and frontend work for Fonterra, IAG, Pulse Energy, Deloitte and Noel Leeming; JDA; and enterprise engineering roles in Wellington and Chengdu from 2007.

Problems worth solving

Four problems where the interesting part was working out what was actually wrong, not writing the fix.

Fixing a Largest Contentful Paint failure in a nested document editor

Docuvera

Situation

A highly regulated document authoring platform had a critical Largest Contentful Paint problem. Documents were assembled from composite components nested many levels deep, and large documents took far too long to show meaningful content.

Constraint

The nested component model was core to the product and used throughout the authoring experience, so it could not simply be replaced. Any fix had to preserve authoring behaviour for documents that already existed.

Approach

I profiled the page and analysed the DOM structure to separate network cost from rendering cost, and established that the browser was doing excessive layout and paint work because of DOM depth rather than payload size. I then built a proof of concept combining a flattened DOM structure with virtual scrolling, so only visible content was rendered.

Outcome

The proof of concept demonstrated that reducing DOM complexity and rendering only visible content resolved the bottleneck. The team got an evidence-backed rendering strategy for large, deeply nested documents instead of an incremental guess.

  • Next.js
  • TypeScript
  • Chrome DevTools
  • Virtual scrolling

Cutting banking authentication from minutes to seconds

Bank of New Zealand

Situation

Mobile Internet Banking login was slow, and contact-centre staff authenticating customers over the phone were waiting on a flow that was slower still.

Constraint

This was production banking authentication. Nothing could regress security, and any change had to fit the existing customer identity and access management platform.

Approach

I profiled the authentication path to find where the time was actually being spent rather than where it was assumed to be, optimised the Mobile Internet Banking flow, then designed and implemented a mobile OAuth solution for the contact-centre CIAM case.

Outcome

Login latency fell from approximately 800ms to 300ms. Expected contact-centre authentication service time fell from approximately five minutes to thirty seconds.

  • Java
  • Spring
  • React
  • Redux
  • OAuth
  • CIAM

Rendering network topologies of thousands of nodes

Aviat Networks

Situation

ProVision Plus needed to display network topology diagrams containing thousands of nodes and links. Nothing in the product could handle that scale.

Constraint

The result had to stay interactive — pan, zoom and search — rather than render a static image, and it had to be built on something the team could maintain.

Approach

Rather than picking a library by reputation, I benchmarked D3, Vis, Paper, Cytoscape and NeXt against the real dataset for performance and scalability. I then designed customised region-quadtree clustering and search so the view worked with the shape of the data instead of against it, and built a topology prototype.

Outcome

The evaluation established which technologies could carry the required scale and produced a working prototype, turning an open scalability question into a decided architecture.

  • D3.js
  • Vue
  • Stylus
  • Pug

Migrating a live AngularJS application to Vue without a rewrite

Aviat Networks

Situation

ProVision Plus ran on AngularJS 1.5. The framework was ageing, but the application was live and a stop-the-world rewrite was not an option.

Constraint

The migration had to be incremental, with both frameworks running inside the same application and sharing state for as long as the transition took.

Approach

I designed a hybrid frontend architecture that allowed components to be migrated one at a time, and built middleware letting Vue observe and synchronise with Angular model data while Angular components subscribed to events emitted by Vue. I documented the architecture and the migration strategy for the team.

Outcome

The team could migrate incrementally and keep shipping, instead of blocking on a rewrite, working from a documented path off AngularJS.

  • Vue
  • AngularJS
  • TypeScript
  • JavaScript

Skills

Front-end

  • React
  • React Query
  • Redux
  • RxJS
  • Next.js
  • Vue
  • Angular
  • AngularJS
  • NativeScript
  • D3.js
  • MUI
  • Tailwind CSS
  • SCSS
  • Storybook
  • Webpack
  • Rendering performance
  • Core Web Vitals

Back-end

  • TypeScript
  • Node.js
  • Java
  • Spring
  • Ts.ED
  • GraphQL
  • Apollo
  • REST
  • OpenAPI
  • MuleSoft
  • APIGEE
  • Python

Cloud

  • AWS
  • Lambda
  • API Gateway
  • ECS/Fargate
  • EC2
  • ECR
  • RDS
  • DynamoDB
  • S3
  • SQS
  • SNS
  • EventBridge
  • Cognito
  • IAM
  • KMS
  • CloudWatch
  • X-Ray
  • CDK
  • Step Functions
  • Serverless Framework
  • Docker

Data

  • PostgreSQL
  • DynamoDB
  • Sequelize
  • Query optimisation
  • Indexing

Testing

  • Jest
  • Enzyme
  • Playwright
  • Supertest
  • Pact/PactFlow
  • JUnit
  • Mockito
  • Appium
  • RxJS Marble testing

Leadership & delivery

  • Mentoring
  • Code review
  • Technical design
  • Scrum
  • CI/CD
  • Production troubleshooting

Certifications

Education & languages

Get in touch

Available now for contract or permanent engineering lead and senior engineering roles across New Zealand and Australia.