Hi, I'm Alan
AI / ML Infrastructure Engineer
Alan Zamani

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 CentreCSIRO
Pawsey Supercomputing Research Centre (CSIRO)
HPC Software Engineer, Visualisation Specialist
Mar 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.
Stake
Stake
Software Engineer
Mar 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

UNSW Sydney
UNSW Sydney
MEng Petroleum Engineering
2015 - 2017

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

Slurm
GPU scheduling
Interactive HPC
Bare-metal provisioning (iPXE)
openDCIM

Automation & IaC

Ansible
Infrastructure as Code (IaC)
GitHub Actions/Jenkins

Engineering practice

Modern software development lifecycle (SDLC)
Agile/Scrum (Jira, Confluence, Asana, Trello)
Git workflows (GitHub, GitLab, Gitea)
CI/CD with gated promotion and automatic rollback
Containerised delivery
Versioned releases
Documentation

Containers, orchestration & virtualisation

Kubernetes
Docker/Helm
Kustomize
KVM/Proxmox

Platforms & observability

Linux
OpenStack private cloud
S3 object storage
Prometheus/Grafana

Languages & frameworks

Python
C++
Bash
TypeScript/Next.js
React/Angular

AI tooling

Claude Code
GitHub Copilot
OpenAI Codex
Ollama
My Projects

Selected work

vScheduler

vScheduler

In production

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.

Python
On-Demand/Booking-Based Scheduler
MySQL
Linux
ETL
Orchestration
REST API
Resource Allocation
Multi-tenant
HPC

vScheduler MCP Server

In development

vscheduler-mcp · claude · 213×53

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.

Model Context Protocol
MCP server
LLM integration

vScheduler Tool-Calling Benchmark

Released

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.

LLM evaluation
Tool calling
Python
pandas
Ollama

vScheduler Docs RAG

Released

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.

RAG
pgvector
Embeddings
Python
Ollama
A push to a feature branch is checked and deployed to the dev sandbox. A pull request into main must pass the same checks before it can merge; the merge builds the images once, tags them with the commit SHA, pushes them to the Gitea registry and deploys them to staging, where a smoke test gates the release. A protected v* tag promotes the exact image digest staging passed to prod, with no rebuild, and rolls back if the smoke test fails. Gitea, the registry and branch protection run on a Git server; the self-hosted runner and the k3s cluster run on a separate Linux host, and the deploy step needs only kubectl, so any Kubernetes cluster can stand in for it.

vScheduler Delivery Pipeline

In development

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.

CI/CD
GitHub Actions
Gitea
k3s
Kustomize
Container registry

ParaView MCP for Visualisation

Proof of concept

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.

Model Context Protocol
ParaView
Scientific visualisation
Multimodal LLM
Python

ParaView MCP: CPU and GPU sessions on Kubernetes

0:00 / 0:00

vScheduler on Kubernetes

In development

vscheduler_mcp_k8s · zsh · 212×53

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.

Kubernetes
Kustomize
Docker
MariaDB
Apache Guacamole
LibreBooking
Publications

Peer-reviewed work

ISC High Performance

A Scheduler System for Interactive Visualization on HPC Resources

ISC High Performance 2026, Hamburg

First author. System design, implementation and evaluation.

Contact

Get in Touch

Open to AI / ML infrastructure roles in Australia.