Until recently my CV contained the URL for my GitHub profile, but I realised that since these days I’m putting my projects in a wider range of places a single profile no longer serves as a very good portfolio, so I’m writing one here. (I was tempted to put it on gopher but too many possible employers wouldn’t bother with that)
A work-in-progress Secure Scuttlebutt client for Haiku in C++. It is currently able to exchange messages with other clients but has not yet reached the stage of being usable without insider knowledge.
An experiment with linear genetic programming in Rust. So far it’s not successful but I still have ideas about how future versions may yield more interesting results.
A pair of monad transformers in Haskell which provide a convenient API for breadth-first and priority based search algorithms.
A parser combinator library in Haskell similar to Parsec but supporting a few additional operations and coming with fewer “batteries included”
A tool I once used to record my time use at work in order to later fill out timesheets. It currently requires some TLC to get it working with up-to-date versions of its dependencies, and I would like to improve the quality of the code in the database module.
A neural network library written from scratch in Haskell. There’s nothing significantly wrong with it for small architectures but some of the function naming reflects the fact that at the time of writing I didn’t understand the mathematical basis for some of the algorithms as well as I currently do.
A Haskell library for modeling discrete finite probability distributions. This is a fairly standard example in explainers on what monads are in Haskell but I’ve added several useful functions not found in similar libraries.
A Haskell library for automatic differentiation. It uses fairly conventional algorithms but has a fairly unconventional API.
SQLite bindings for Haskell. My contribition is a module which allows developers to register custom SQLite functions.
A text editor written in Haskell. My main contribition is a set of commands for switching between open files when using the vim-style keymap.
Since I usually use Ruby on Rails for paid work it’s a little embarrassing to have a portfolio that doesn’t mention it.