
About
Nine years building production systems in Australia, eight at a Tier-1 national supercomputing centre. Designs, builds and operates multi-tenant GPU scheduling platforms: allocation and fair-share policies, quota and walltime enforcement, telemetry and self-service tooling across heterogeneous clusters. Built vScheduler, an open-source GPU session orchestrator in production since 2022 across 51 GPU nodes, with the accompanying paper published at ISC High Performance 2026. Now moving it to Kubernetes with a gated CI/CD pipeline, and building MCP servers that let LLM agents operate production infrastructure safely.
Work Experience

Pawsey Supercomputing Research Centre (CSIRO)HPC Software Engineer, Visualisation SpecialistMar 2018 - Present


One of Australia's two national supercomputing centres. Designs and operates the interactive GPU platform behind the centre's visualisation services: scheduling, remote access and the infrastructure underneath it.
- Designed, built and shipped vScheduler (open source, github.com/PawseySC/vScheduler), a Python scheduling and orchestration service allocating GPU-backed interactive sessions across two production clusters (a Linux HPC partition and a Windows GPU cluster). In production since 2022 across 51 GPU nodes, serving 150-200 users and about 500 sessions (5,000 session-hours) a month.
- Implemented two allocation models in one system: on-demand scheduling via a custom load balancer that ranks nodes on live utilisation and health, plus reservation-based allocation validated against a booking service. No open-source alternative combines both; the capability previously required commercial products such as AWS NICE DCV and NICE EnginFrame (an estimated USD 80,000 in licences at 200 users).
- Built the control plane end to end: socket-based telemetry agents streaming session and health events, a MySQL state store as the single source of truth, systemd services, quota, walltime and fair-share enforcement, and a Slurm-style operator CLI (vmanage, valloc, vkill, vquota, vinfo, vreport) with HTML reports.
- Built automated hybrid HPC pipelines for Ansys Fluent and Ansys Mechanical: Slurm jobs submitted from users' interactive Windows GUI sessions, with results returned automatically over key-based SSH or Ansys Remote Solve Manager (RSM).
- Architected for failure isolation and portability (separated control and data planes, per-site deployable modules); owns releases and operations, shipping periodically and recovering monthly post-maintenance breakages (OS patches, Python upgrades, database connectivity) the same day.
- Provisions the estate with Ansible across bare metal, KVM/Proxmox VMs as well as an in-house OpenStack cloud.
- Engineered zero-touch, image-based provisioning for the 19-node Windows GPU cluster on open-source tooling (iPXE, wimboot): nodes network-boot, apply WIM/FFU images with unattended configuration and Group Policy, and return to service fully configured, every build defined as code in Git, saving an estimated USD 20,000.
- Operates the clientless remote-access gateway (Apache Guacamole brokering RDP, VNC and SSH sessions in the browser, behind institutional SSO) and the centre's render farm and NVIDIA Omniverse environment.
- Wrote the training material and public Confluence documentation that onboard users to the platform.
StakeSoftware EngineerMar 2017 - Feb 2018

Built the customer-facing trading platform in a regulated financial-services environment.
- Built account opening, order placement and portfolio monitoring in Angular on REST APIs and market-data feeds.
Education

Thesis: Pore network modelling for coal seams
3D numerical flow simulation over networks modelled from micro-CT imaging, validated against a Lattice Boltzmann reference.
Skills
HPC operations
Automation & IaC
Engineering practice
Containers, orchestration & virtualisation
Platforms & observability
Languages & frameworks
AI tooling
Selected work
An open-source HPC scheduler for interactive GPU sessions, developed in-house and in production at Pawsey Supercomputing Research Centre since 2022 across 51 GPU nodes. Unifies a Linux HPC partition and a Windows GPU cluster under one centralised scheduling model, with both on-demand and reservation-based allocation, integrating Apache Guacamole and LibreBooking through their REST APIs.
vScheduler MCP Server
A Model Context Protocol server that lets LLM agents such as Claude Code operate vScheduler in natural language. Built on the official Python MCP SDK, it generates one typed tool per command from a YAML allowlist that validates every argument, and runs each call over key-based SSH from its own container. State-changing tools are flagged destructive so the client confirms first; results are checked, not trusted.
vScheduler Tool-Calling Benchmark
Tests which LLMs can safely run vScheduler through its MCP server: six models from Anthropic, Google and Ollama get its real tools and 39 admin requests, including destructive ones and prompt injections, and are scored on accuracy, safety, latency and cost.
vScheduler Docs RAG
A search_docs tool on vScheduler's MCP server that answers from its documentation, with local embeddings in pgvector. Evaluated on 26 questions with known answers across chunking strategies and vector, keyword and hybrid search: the right passage is in the top five 88% of the time, and weak matches are flagged rather than answered from.
vScheduler Delivery Pipeline
A self-hosted CI/CD pipeline for vScheduler on Kubernetes, built on Gitea Actions with GitHub Actions-compatible workflows. Required checks gate every merge; each image is built once, tagged by commit and promoted unchanged from dev through staging to a protected production environment, with a smoke test gating each promotion and automatic rollback on failure.
ParaView MCP for Visualisation
Applying LLNL's open-source ParaView-MCP to interactive visualisation at Pawsey Supercomputing Research Centre: an MCP server that drives the ParaView application from natural language, where the agent reads the viewport back as an image and refines the scene from what it sees. It runs against a multi-client ParaView server with the GUI attached, so a user watches the render being built as they describe it. Trialled with users who are not ParaView experts.
vScheduler on Kubernetes
The full vScheduler stack moved from Ansible-provisioned VMs to Kubernetes, deployed declaratively from one Kustomize base with dev and prod overlays: Secrets and ConfigMaps for settings, the database on a PersistentVolumeClaim, schema setup as an idempotent Job, and a Service per session node so the scheduler reaches each one through cluster DNS.
Get in Touch
Open to AI / ML infrastructure roles in Australia.

