About Me

I am a self-taught programmer and avid contributor to the open-source community. I originally started out studying Mechanical Engineering, but after 3 years of a 4 year degree found it wasn't for me and took advantage of a Software Engineering job offer (gained thanks to my work in the software community and involvement in the Curtin Motorsport Team) to change career path.

I still enjoy learning about how the world works and leveraging my engineering knowledge wherever I can, whether that is in the geometry and calculus required to write a CAD/CAM program at work, or using the equations of motion and control theory to simulate a motion controller.

In my spare time I like to learn more about computer science, in particular embedded systems, high performance applications (e.g. games), and compilers. It's not uncommon for me to explore a particular niche over a weekend then write an in-depth article about what I've learned (e.g. Audio Processing, embedding a WebAssembly runtime, or Rust's Const-Generics).

My top 4 favourite programming languages at the moment:

  1. Rust
  2. Go
  3. C#
  4. TypeScript

Some projects I've been involved in:

  • mdbook - a program for compiling a set of Markdown files into a website which can be viewed online. I was the maintainer from November 2017 to January 2019
  • The Rust FFI Guide - A tutorial which teaches people how to interoperate between Rustand other languages via C APIs
  • gcode-rs - A crate for parsing g-code programs without allocations, primarily designed for embedded devices
  • libsignal-protocol-rs - An idiomatic Rust wrapper around the libsignal-protocol-c library, the canonical implementation of the Signal Protocol (the crypto library underneath WhatsApp and Signal)

Resume

You can look me up on GitHub or GitLab to see examples of my work. To get a feel for my involvement in the software community you may want to look me up on the Rust User Forums or Reddit.

If you want a more formal view, check out my resume. The entire repository is publicly available, and uses GitLab's CI system to automatically re-compile the PDF whenever new changes are pushed to master.