Projects

Some systems I've designed and built.

Azure Data Integration Platform

2024 - Present

Event-driven, cloud-native integration platform on Azure Service Bus, Functions and Event Grid - integrating core business systems and external APIs.

  • Azure
  • Service Bus
  • Functions
  • Event Grid
  • Event-driven

Repairs Workflow Engine

2025 - Present

A repairs system that models each repair process as a dynamic graph of steps, guiding technicians through variable procedures. Replaced unstructured ticketing and enforced consistent data entry and process compliance.

  • C# / .NET
  • Workflow
  • Domain modelling

Dynamics 365 CRM

2022 - Present

Stood up Dynamics 365 as the company's first real CRM, designing the architecture and schema, integrating it with the ERP, and adding CI/CD and extensive customisations - JavaScript SDKs and .NET Framework plugins.

  • Dynamics 365
  • CRM
  • Data migration
  • ERP integration
  • CI/CD
  • JavaScript
  • .NET Framework
  • Plugins
  • Power Automate
  • Logic Apps

Customer Portal

2022 - Present

A customer-facing portal built on Power Apps Pages and backed by Dynamics 365, giving customers secure access to their own data and self-service actions. Consulted directly with a key customer to scope requirements.

  • Dynamics 365
  • Power Pages
  • HTML
  • CSS

eCommerce Migration

2023 - Present

Replaced a legacy, vendor-locked storefront with a BigCommerce platform integrated with ERP and CRM - delivering a polished, per-customer branded experience. A library of opt-in features lets the sales team tailor each client's storefront without custom code, making rich customisation affordable to maintain. Helped win contracts worth a combined $10m+/yr.

  • BigCommerce
  • Auth
  • eCommerce
  • Stencil JS
  • Javascript
  • REST APIs
  • GraphQL

Data Warehouse

2026 - Present

A data warehouse on Microsoft Fabric, built as a medallion-architecture lakehouse with Spark Python notebooks and surfaced through Power BI to give the business actionable insights.

  • Microsoft Fabric
  • Lakehouse
  • Spark
  • Python
  • Power BI

Blazor Internal-Tools Framework

2025 - Present

A .NET Blazor framework that generates forms and pages from C# class definitions, cutting development time for new internal tools from weeks to days.

  • .NET Blazor
  • Code generation
  • Internal tooling

Azure Deploy GitHub Action

2025 - Present

Built a GitHub Action standardising CI/CD for Azure Functions, App Service, and Bicep deployments - automated testing, multi-environment deploys, and rollback.

  • Azure
  • GitHub Actions
  • Bicep
  • CI/CD
  • Functions
  • App Service

Documentation Platform

2024 - Present

A documentation monorepo built with Obsidian, the Quartz static-site generator and Azure Static Web Apps - publishing separate sites for internal development docs, company-wide docs, and customer help docs.

  • Obsidian
  • Quartz
  • Azure Static Web Apps
  • Documentation

Documentation Sites

Personal 2026 - Present

This monorepo of Astro sites - smart-home, homelab and home docs - built with Astro, Starlight and Tailwind.

  • Astro
  • Starlight
  • Tailwind

Customer Authentication

2022 - Present

Selected an off-the-shelf CIAM (Azure AD B2C) over building auth in-house, authored custom B2C policies for the sign-in and sign-up flows, and built middleware to integrate the CIAM with BigCommerce - giving customers one identity that signs them in across every service.

  • Azure AD B2C
  • CIAM
  • BigCommerce
  • Auth

Service Portal

2026 - Present

A .NET 10 Blazor single-page app letting customers log and track service requests themselves, with live status notifications fed from the repairs workflow engine and single sign-on through Azure AD B2C.

  • .NET 10
  • Blazor
  • SPA
  • Azure AD B2C
  • Cosmos DB
  • Azure Service Bus

Customer Portal Rebuild

2026 - Present

Rebuilt the customer-facing portal on a Next.js and React front end (shadcn/ui, Zustand) backed by a .NET API, to support role-based access control with fine-grained permissions and a complex reactive UI the previous platform could not. Prisma over the data layer.

  • Next.js
  • React
  • shadcn/ui
  • Zustand
  • .NET API
  • Prisma
  • RBAC

Internal Admin Console

2023 - Present

A .NET 10 Blazor website giving staff a single place to configure and manage customer eCommerce stores, run the many small operational processes that keep them running, and drive the repairs workflow engine - secured with Entra ID.

  • .NET 10
  • Blazor
  • Entra ID
  • APIs

Sales Lead Router

2023 - Present

An Azure Function and Teams bot that routes incoming sales leads to the right Teams channel and lets staff action each lead directly from within Teams.

  • .NET
  • Azure Functions
  • Teams Bot

Reusable Bicep Modules

2026 - Present

A library of reusable Bicep modules providing consistent, composable building blocks for provisioning Azure infrastructure across projects.

  • Azure
  • Bicep
  • IaC
  • Code reuse

Shared Class Libraries

2022 - Present

A set of .NET class libraries providing reusable domain models and shared code consumed across many of the company's projects.

  • .NET
  • Class Libraries

Developer Environment Automation

2024 - Present

Automated developer machine setup with Microsoft Desired State Configuration, codifying tooling and configuration to speed up onboarding and keep environments consistent.

  • PowerShell DSC
  • Automation
  • Developer experience

Security Scanning Pipeline

Deployed DefectDojo alongside a suite of open-source scanning tools to automate security scanning and centralise vulnerability management across the company's projects.

  • DefectDojo
  • DevSecOps
  • Vulnerability management
  • Automation
  • Docker

Feedback Widget

2026 - Present

A small, embeddable JavaScript widget that prompts users for feedback and loads their responses straight into Dynamics 365.

  • JavaScript
  • Dynamics 365

JIWA ERP Plugins

2021 - Present

Extensive customisations to the JIWA ERP, built as .NET Framework 4.5.1 plugins. With the ERP poorly documented, the team built deep working knowledge of its internals by piecing together disparate sources and decompiling the application.

  • .NET Framework
  • JIWA ERP
  • Microsoft SQL Server

Azure Function Rebuild

2025

Engaged stakeholders to capture and clarify requirements, then designed and built a maintainable, scalable Azure Function to replace an existing implementation.

  • Azure Functions
  • PostgreSQL

Communication Support Unit

Personal 2024

University capstone for the State Emergency Service: software-defined radios on Raspberry Pis stream radio repeater traffic to a web app, letting Communications Support Unit members listen from a browser.

  • Azure IoT
  • Raspberry Pi
  • .NET
  • Software Defined Radio
  • Icecast
  • Entra ID

Profile Backup Tool

2019 - 2020

A PowerShell tool with a GUI that backs up and restores user profile data during device migrations, driven by CSV job files and robocopy with no external dependencies. Built for a major Perth mining company and used by technicians through a device rollout.

  • PowerShell
  • Windows
  • GUI
  • Automation
  • robocopy

Alarm Monitoring

Personal 2026 - Present

Wired a microcontroller into a home alarm and used open-source firmware to bridge it onto MQTT, then used Ansible to deploy the infrastructure - Node-RED and Ntfy.sh - that turns alarm events into push notifications on my phone.

  • IoT
  • MQTT
  • Node-RED
  • Ansible
  • Ntfy.sh
  • Docker