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

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

I have experience with parser generators and parsing natural language through my work on Respecify – I’ve designed and implemented a parser generator specifically for it, which enables fast parsing of requirements, and extraction of relationships.

I have a great deal of experience with developing web servers/backends, where my experience is in using Yesod, Snap and Flask (where I also gained experience with the wonderful SQLAlchemy). Through Respecify I have experience with WebSocket-based single-page applications. I’m proficient with PostgreSQL databases where I have experience benchmarking for efficient and minimal queries.

I have some experience with writing (and Respecify’ing :-)) technical requirements through work on Parramatta Light Rail.

Public work

Respecify, 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.

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