Below is a curated selection of projects I’ve worked on in the past. These are side-projects, developed on my own spare time.
Over the past few years I’ve become deeper and deeper enamoured with the Rust programming language, its opportunities for developer productivity and its safety guarantees. No programming language can ever truly be “if it compiles, it’s correct” but Rust helps me get awfully close to that.
A minimalistic async executor, with no dependencies and only safe Rust. It executes any
Send or not, on the current thread immediately. Useful in tests and mostly sync code that has to
occasionally call async code.
A collection of mutex wrappers that can detect potential deadlocks before they happen. Using the PK algorithm and the wrappers provided, this crate makes sure all mutexes are acquired in a consistent order (at runtime) and panics once a violation is detected.
Inspired by similar mechanisms in Abseil and Tensorflow. The algorithm is explained in more detail in a previous article.
One of my first projects, it converts wireless network profiles for netctl to a format iwd can
use. Back then I was using a very old laptop with not enough RAM and
iwd promised to use less
netctl. I’m not sure if it ever did, but this felt like being productive.
No matter what you’ve heard evil tongues say, PHP is a beautiful, maintainable, and performant scripting language. Of course people have used it to create crimes against software development, but I find it better to focus on the nice side of things. Though I don’t work much with it any more PHP still holds a place in my heart.
Plugin for the Mako framework that adds support for Smarty templates. Supports custom Smarty plugins and adds Mako’s dependency injection to those custom plugins, so you can easily work with the framework in your plugins.
A PHP port of the Java 8 Streams API. I was inspired by the elegance of Java 8 streams API when it came out, and ported too much code to it. The port supports the subset of the API that still made sense after translating to PHP.
The Mako Framework used to ship with an authentication system called Gatekeeper, but it provided basically nothing else. My utils package shipped with basic implementations of the interface as well as command line utilities to manage users and groups.
Not everything fits neatly into a larger category, but that doesn’t mean they’re any less important to me.
I maintain a few packages in the Arch User repository, mainly related to Rust and Jekyll, that I use or that I at some point in time found interesting.
A mostly academic reimplementation of
std::list, the doubly-linked list in C++, using
the “smart” pointers introduced in C++11. The performance is generally worse but always in the same
big-O class as the original, and it has much better behaviour with regards to iterator invalidation.
It doesn’t meet my current opinion on memory safety, but it’s not half bad. More details can be
found in an older article.