Python · TypeScript · Go · Adelaide

Backend and data software for messy, real-world problems.

I’m a software developer and applied mathematician who builds dependable internal systems: APIs, validation pipelines, knowledge graphs, AI-assisted tooling and reproducible data workflows.

Deliver APIs Data Automate Research

What I bring

Useful where software meets complicated domain knowledge.

I turn vague technical problems into documented, tested and inspectable systems—especially when the work involves awkward data, specialised rules or workflows that have outgrown manual handling.

01

Backend & internal tools

Python and TypeScript services, REST APIs, PostgreSQL, Docker, authentication, CI and operational documentation.

02

Data & knowledge systems

Schema design, validation, graph modelling, time-series processing, structured exports and reproducible pipelines.

03

AI-assisted tooling

MCP servers, typed tool interfaces, human-review workflows, audit trails and deterministic post-processing around LLMs.

Production habits Automated testsDockerCIStructured logs Security notesAudit trailsExplicit limitations

Selected work

Selected engineering work.

Each case study pairs a domain problem with concrete engineering evidence. The projects are independent or collaborative rather than client work, and their status is stated plainly.

One strategy contract Runtime, risk & routing BacktestPaperSandboxLive
Flagship engineering system Private core · public docs

Cracktrader

A Python trading framework I designed and built for research and evaluation. It keeps strategy contracts stable across backtest, paper, sandbox and live execution while isolating market data, risk, routing and venue-specific behaviour behind explicit boundaries.

  • Python
  • AsyncIO
  • CCXT
  • WebSockets
  • Event-driven systems
400+
Python files in the test tree
55k+
documented candles/second
Curriculum Graph explorer showing prerequisite relationships around unit fraction notation
Knowledge modelling 2,500+ nodes

Curriculum Graph

Built and continue to develop a curriculum knowledge graph with more than 2,500 nodes, schema validation, search, auditable patch logs, MCP access, JSON/JSON-LD exports and a local browser explorer. It demonstrates testable data tooling and reviewable AI-assisted authoring.

  • TypeScript
  • YAML
  • Knowledge graphs
  • MCP
Maff dashboard showing a synthetic mathematics research project
Full-stack research software Active research system

Maff

A TypeScript, React and PostgreSQL workspace I use for sustained mathematical research across two paper-scale projects. It combines notes, claim graphs, review queues, MCP access and Lean integration with authenticated services, audit logs, Docker deployment and documentation.

  • TypeScript
  • React
  • PostgreSQL
  • MCP
  • Lean 4
01

Practical Python data tooling

Signal BackupV2 Exporter

Reverse-engineered enough of Signal Android’s newer folder-based backup format to selectively export conversations and media to HTML, Markdown and JSON. Tests use synthetic fixtures; no personal data is published.

  • Python
  • Kotlin
  • Cryptography
  • Large archives
02

AI-assisted document tooling

LaTeX MCP

A small Model Context Protocol server that turns trusted LaTeX input into cached PDFs and exposes reusable templates and snippets. Packaged for repeatable local deployment with Docker.

  • Python
  • FastMCP
  • Docker
03

Linux filesystem tooling

VMapFS

A Go/FUSE filesystem that presents persistent alternate directory layouts without moving or modifying source data. Includes immutable source access, state backups, extended attributes, unit tests and Linux CI.

  • Go
  • FUSE
  • Linux

Background

Research habits, applied to software.

I came to software through applied mathematics and university research. Since 2022 I’ve combined independent quantitative research with substantial personal and collaborative software work across trading, education, data recovery and self-hosted research.

I care about clear boundaries, reproducible behaviour and tools that remain understandable after the first demo. I document status and limitations alongside the working parts; knowing where a system stops is part of understanding it.

2019–2021

Graduate Research Assistant

Research software, mathematical modelling and analysis.

2017–2021

University Tutor

Mathematics and statistics teaching at the University of Adelaide.

2017–2019

Master of Philosophy

Applied Mathematics, University of Adelaide.

2014–2016

Bachelor of Mathematical Sciences

Applied Mathematics and Statistics, University of Adelaide.

Contact

Have an interesting problem?

I’m based in Adelaide and currently looking for backend, data engineering, research software, technical support or AI-tooling roles where careful problem-solving matters.