I’m a programmer (and occasional artist) living in Sydney, Australia. I’m 3 years into a BAC. Currently I’m developing Respecify at Ricardo Rail.

Haskell SQL C Linux admin
Python Rust Java HTML/CSS
JavaScript Git Mercurial OpenGL / GLSL
Visual Basic Design RDF … and more

Public work

Kuachi Cups (ongoing), a tournament website based around Discord. Currently only static page is available. Server written in Rust, client in TypeScript.

Respecify (ongoing), a requirements authoring tool utilising constrained natural language. I have developed this (so far) as a one-man team. Respecify was presented in Lisbon for RE’17. Paper available online at IEEE Xplore.

Respecify involves a novel parser generator for creating English grammars, which features a simple functional language which individual parsers within a grammar produce (as stack-based virtual machine code) as results. The accompanying interpreter then “runs” the parse results which enables simple grammars to be able to reliably extract information (such as component hierarchies) from natural language text.

Transport Engineering website, a simple-ish Hakyll-generated website that runs in parallel with an older Wordpress-based website.

teamsplat, a simple team splitter to generate fair teams for 8-ish player games. Live version available on Heroku (because it’s free and Good Enough!).

radixtree, a prefix-tree parsing library for Haskell. Used extensively by Respecify.

nice-html, a XML/HTML templating library for Haskell. Has distinct template compilation and rendering phases, which is its main advantage over e.g., Lucid or Blaze.

aeson-flowtyped, a Haskell library for generating Flowtype type declarations to match aeson’s ToJSON / FromJSON instances.

csvmaps, a tool for manipulating map-like .csv files.

plissken, a 3D Snake clone, where the Snake moves in 3 dimensions. Used OpenGLRaw, hmatrix, GLFW-b and lens.

Level-0, a clone of the Nokia 1100’s Snake II using the SDL bindings for Haskell.

indices, a library providing statically bounded array indices, extensively making use of GHC features to have extremely little runtime overhead.

static, a new array library for statically bounded arrays, unrolling operations at compile-time where possible.

QuasiText, a simple QuasiQuoter for interpolating Haskell values into Text strings.

Linked Earth Data, an explorative team project to deliver a highly interoperable DGGS/Linked data → SPARQL/REST endpoint, in order to inform future W3C and OGC standards future W3C and OGC standards. Makes use of variable-resolution satellite imagery made available in the Australian Geoscience Datacube. My involvement was limited – I left uni for full-time work because I could no-longer afford it.

Open source contributions

snaplet-recaptcha

hasql

lens

Red Eclipse

hmatrix