About
Hi, I’m Charles! I like programming, 3D printing, electronics, and video games. I care a lot about community, robust and maintainable software, and developer tooling. (Obviously, those two lists are not exhaustive.)
I award myself the title of “yak shaving domain expert” because many of my projects were created to solve problems I encountered in other projects of mine, and because the projects I created this way have been my most successful ones.
Notable projects
Derail — Website
Derail provides an alternate error trait for Rust with support for multiple causes and strongly-typed attached details.
The core of this project is pretty much done until Rust makes traits with
lifetime-generic associated types dyn-compatible.
I created this initially because I needed its feature set for Engage.
Engage — Website
Engage is a command-line process composer with ordering and parallelism based on directed acyclic graphs.
This project is quite usable, though there are some planned changes and improvements that may happen in the future.
I created this initially because I wanted its feature set for basically every other project I work on.
Sprinkles — Website
Sprinkles is a convention for the Nix ecosystem for structuring dependencies, exposing items, allowing self-references, and enabling overridability.
This project is quite usable, though there are some planned changes and improvements that may happen in the future.
I created this initially because I wanted the minimum viable escape vector from Flakes for my NixOS configurations and my other projects that use Nix.
Grapevine — Website
Grapevine is a Matrix homeserver forked from Conduit 0.7.0.
This project has largely ceased development, as its maintainers grew exhausted with the Matrix ecosystem.