Oct 2023 - present — Programmer at social discussion technology startup — Haskell, Nix
I’ve omitted the name of the company because it might change (we’ve not yet released our product), and I don’t want to pollute search results.
We are working on a web discussion platform. My main responsibility is researching and implementing trust metrics, so that we can rank and suggest content to users based on their subjective trust instead of using inscrutable machine learning methods. I also contribute to the frontend (Haskell: reflex + GHCJS), backend (also Haskell), and build system (Nix).
Mar 2023 - Oct 2023 — Break
I took a break from employment to unwind and work on my own projects. Read more about what I got up to in my 2023 project review.
My favourite project was this real-time physically based renderer. It was my first time implementing many fundamental real-time graphics concepts, which I found quite difficult and rewarding.
Feb 2022 - Mar 2023 — CTO at NineByte — Haskell, AWS
NineByte deals in digital education resources. Its specialties are turning publishers’ textbooks into online courses, hosting said online courses, and hosting learning management systems (LMSs) for course delivery.
I was responsible for setting a new technological direction, aiming to move the company from a B2B/consulting model to a software-as-a-service product. I created some foundational Haskell tooling for generating courses that can be imported into LMSs and for LMS interoperability with external applications. I also set an example for day-to-day software development and operations: we moved from CodeCommit to GitLab, and started tracking work with issues and collaborating with merge requests.
Jul 2020 - Feb 2022 — Software Engineer at PaidRight — Haskell, Elm, Nix, Google Cloud
PaidRight calculates payroll compliance for Australian companies. I joined the team while it was incubating in CSIRO’s Data61, and they rehired me after they spun out in 2020. While I was there the payroll models were written in a custom programming language and run via a web app. I contributed to the language runtime, the web-based structural code editor, and general web services. I also set up and was responsible for the CI system (Nix/NixOS + Buildkite).
Feb 2020 - Jun 2020 — Bachelor of Computer Science (Programming Languages) student at University of Queensland — incomplete
I completed one semester of part time study while working at CSIRO in order to make some progress toward getting a degree. I may have kept going, but then COVID happened. I switched to the newly introduced Bachelor of Computer Science and transferred most of my BEng credits. Unfortunately I didn’t learn very much; I completed some mandatory subjects in which I was already proficient because the university wouldn’t give me credit. This included Theory of Computing (COMP2048), for which I gave a guest lecture the year prior (and because of COVID they didn’t record new material, so I was actually assigned my own lecture to study!).
Jun 2017 - Jun 2020 — Functional Programming Engineer at CSIRO’s Data61 — Haskell
Data61 is a division of CSIRO. For 3 years I was a part of the Queensland Functional Programming Lab (QFPL), formed with the intention of improving functional programming adoption inside Data61 and in Australia at large. I wrote Haskell libraries (personally significant: hpython, hedgehog-fn), helped run in-person introductory functional programming courses, spoke at YOW! Lambda Jam 2018, and gave a guest lecture at the University of Queensland for Theory of Computing (COMP2048).
Jun 2016 - Feb 2017 — Software Developer at iRecruit Australia — Python
iRecruit was a startup working on a job matching platform. This was my first programming job, and I worked part time while attending university. I worked on web services using Django.
Feb 2014 - Jun 2017 — Bachelor of Engineering (Software Engineering) student at University of Queensland — incomplete
After graduating high school I completed 2.5 years of a 4 year engineering degree. The most significant things I did during this time were: meeting a bunch of smart people who also loved programming, learning Haskell, and building my first serious compiler.
I stopped going to university when I started working full-time at CSIRO’s Data61.