Retro-Freedom

Skills and experience

My skills

These are skills that I am confident in using professionally. This includes both theory, as well as practical skills and tools.

3D design

Computer science

Data processing and management

Programming

Technologies

Writing

My experience

The following represents projects I have worked on, either individually or as part of a larger team, as well as what skills I developed or used on each. For those projects whose outputs are open source, you can also find links to them.

C

SIMD UTF-8 validator in bytestring

I implemented a SIMD-accelerated UTF-8 validator for the bytestring Haskell library. The implementation had to be both portable and performant across a range of platforms. This included only-SSE x86, SSE-and-AVX x86 and NEON, as well as a non-SIMD fallback. Inline assembly was used to ensure performance regardless of compiler use.

Link: C source

Relevant skills: C, Haskell, SIMD, asm, automata theory, parallel programming, algorithms and data structures

Data processing

Optical reflection project

I processed NASA AOD Terra optical reflection data as part of a PhD project. This required me to convert a combination of several years’ worth of NASA satellite data, combined with regional data from all of New Zealand, to produce CSV files correlating and summarizing both data sets per geographic region.

Relevant skills: PostgreSQL, PostGIS, Julia, parallel processing, performance engineering, Unix command-line data processing tools

Machine learning data preparation

I won competitive funding (via an academic grant) to process a large amount of CSV data, provided by Fisher and Paykel Healthcare, into the ARFF format, as well as an SQLite relational database, using command-line tools and Haskell. I then used WEKA to run various machine learning algorithms on the data, followed by aggregation of the results. Due to my choices in optimization and tooling, I was able to complete work budgeted for 1 month in 1 day, including revisions requested at the end.

Relevant skills: SQLite, parallel processing, performance engineering, grant writing, Unix command-line data processing tools, Haskell

Haskell

Covenant

I won competitive funding from Catalyst Fund 13 to design and build an intermediate, Turner-total, call-by-push-value language, called Covenant. Covenant was designed to serve a similar purpose to LLVM, but for the Cardano ecosystem.

Link: Project on Github

Relevant skills: Haskell, Cardano, compiler design and construction, type systems, grant writing, testing

Plutarch

I helped design, and currently maintain, an eDSL for UPLC scripts called Plutarch. Plutarch is designed to provide both significant type safety by way of its host language (Haskell) while allowing low-level control over performance-sensitive details where needed. I have been Plutarch’s primary maintainer since 2025; prior to this, I was a co-maintainer.

Link: Project on Github

Relevant skills: Haskell, Cardano, compiler design and construction, type systems, grant writing, testing

nonempty-vector

I contributed support for unboxed vectors to the nonempty-vector library.

Link: Project on Github

Relevant skills: Haskell, testing, performance engineering

CIP implementations

I implemented CIP-49, CIP-121, CIP-122 and CIP-123 into Plutus Core. This also required tests and benchmarks to demonstrate correctness and performance.

Link: Project on Github

Relevant skills: Haskell, testing, performance engineering, algorithms and data structures

Bindings for SECP256k1 library

I implemented bindings to SECP256k1 functionality to cardano-base, as part of the work required to implement CIP-49. This also required tests to demonstrate correctness and safety.

Link: Project on Github

Relevant skills: Haskell, C, testing

Manufacturing

I have designed a range of parts, mostly for FDM printing.

Link: Printables

Relevant skills: FDM, SLA, FDM and SLA slicing, FreeCAD, Blender, design optimization for FDM, design optimization for SLA, FDM printer maintenance, SLA printer maintenance

Self-hosting

I self-host several services, as well as two PWAs (see the Web section for details), as well as this site. I use the following technologies and systems.

Relevant skills: Nginx, Prosody, Linux, PWAs, XMPP, HTML

Standards

I produced several reviewed standards documents for Cardano Improvement Proposals (or CIPs). In all cases, I was responsible for writing the original proposal, then amending it after review. All of the CIPs listed here were accepted.

I also implemented support for these CIPs into Plutus Core. The specifics are listed in the Haskell section.

Relevant skills: Technical writing, Haskell, Cardano, performance engineering

Web

I have written two PWAs, which I also host on my own hardware:

Relevant skills: HTML, PWAs, CNC machining, FDM printer maintenance and construction, Linux, Nginx

Writing

I have written several blog posts on a range of topics, mostly, but not entirely, related to Haskell. These are currently hosted by MLabs, where I previously worked:

Relevant skills: Technical writing, performance engineering, Haskell, SIMD, SWAR, C, Cardano, algorithms and data structures