ABOUT
My name is Erin, I studied Software Science at the Radboud University in Nijmegen and Umeå University in
Umeå. After my studies I stayed in Nijmegen for a while before moving to Stockholm where I now work and live. I live together with my cat, who loves to go on hikes with me.
INTERESTS
Functional Programming
Functional programming, language design and implementation. I contributed to the Clean programming
language, see
the Clean Wiki and
Wikipedia, which
is syntactically and semantically much like
Haskell.
I also contributed to
Nix(pkgs), and
Nickel.
Language Tooling
I love good development tooling. I'm particularly interested in Nix, the Language Server Protocol, and tree-sitter.
WORK
Period | Company | Title | Description |
2016-2019 | Radboud University | Teacher Assistant | Assisting in Bachelor Courses, in
particular: Functional Programming, Introduction Cryptography |
2019-2020 | Radboud University | Programmer | Contributing to the BEST
project, port the Clean infrastructure to ARM64 |
2020-2021 | TOP Software | Scientific
Programmer | VIIA Developer, LLVM Code Generator for ABC Bytecode |
2021- | Tweag I/O | Software Developer |
Coauthor of the WebAuthn
Haskell library, contributor to the Nickel configuration language,
project lead of Topiary,
project lead of Nixtract and Genealogos.
|
EDUCATION
Period | School | Degree |
2014-2017 | Radboud University | Bachelor |
2017-2020 | Radboud University | Master |
2019-2019 | Umeå University | Master |
THESIS
My
master thesis explores the idea of using Clean's uniqueness typing
system to implement mutable arrays in an embedded DSL (a typical Haskell approach of using a monad would
not work because the DSL itself was not monadic). While the run-time system of the DSL (mTask) was
successfully modified to accommodate arrays, Clean's uniqueness system was found to be insufficiently
powerful. After my thesis was completed, GHC implemented the linear-typing extension. Unfortunately,
linear types do not provide a satisfying solution either and would additionally require changes to the
design of the DSL.
DEVELOPMENT
For all of my projects see my
GitHub and
GitLab pages.
A selection of personal favorites:
- Clone: A program that oversees communication
between multiple bots. Was supposed to replace Huginn in for my personal use. Never saw any
development after I moved away from hosting my own server.
- OOOO: A Othello engine written mostly in C.
Created for a course at Umeå University.
- mTask: Written and
maintained by Mart Lubbers. Was supposed to be extended with arrays for my Master Thesis. I showed
instead that Clean's Uniqueness system is not powerful enough to host mutable arrays in an embedded
DSL.
- LLVM Code Generator: An alternative code generator that generators LLVM code from ABC. ABC is the
output of the Clean Compiler.
- WebAuthn: The defacto WebAuthn library for Haskell.
- Nickel: A configuration language aimed at replacing Nix.
- Topiary: A unform formatter for many languages based on the tree-sitter framework.
- Genealogos: An SBOM generator for Nix(pkgs).
HOBBIES
Papercraft
I like to make creations like
this.
Guild Wars 2
I grew up playing Guild Wars, and while I do not play many video games anymore, Guild Wars will always be an
important part of my life.
Sailing
My mother taught me to sail in a
Valk.
Since then I have been very enthousiastic about the freedom it provides and continued learning on my own. First in a Valk, later in a
Fusion and
Laser Pico.
Climbing
I love bouldering with my best friend. We go bouldering about three times a week.
Dungeons and Dragons
I enjoy hosting campaigns in a plethora of campaigns. Currently hosting a Middle Earth and Svilland
campaign.
Languages
I speak Dutch and English fluently, and am in the process of learning professional level Swedish.
Officially, I have a B2 level in French, although much of that has decayed.
Cycling
I thoroughly enjoy cycling, my favorite route so far was Umeå to Stockholm, cycling a significant
amount of Sweden's east coast.
erin(at)erinvanderveen.nl
LINKS