Increasing Rust Reach: I was a 2018 mentor of two amazing mentees. To describe Rust Reach; from the homepage, "This program matches Rust team members from all parts of the project with individuals who are underrepresented in Rust's community and the tech industry for a partnership of three (3) months, from mid-May to mid-August. Each partnership agrees to a commitment of 3–5 hours per week working on a Rust Project."
Introduction to Linux Course: I teach a three (3) to five (5) day workshop on introduction to Linux. The class varies by client, but can span from introduction and basics, to advanced techniques and scripting. This course has been run for classes ranging from three (3) to twelve (12) individuals.
Introduction to Python Course: I teach a three (3) to five (5) day workshop on introduction to Python. This course is complementary to the Introduction to Linux and likewise ranges from new to programming, to only new to Python but skilled at programming. This class has been conducted with sizes ranging from five (5) to fifteen (15) individuals.
clap : A command line parsing framework
for the Rust language. It's meant to bring command line
applications into the modern age without sacrificing performance or ergonomics.
clap supports things like automatic help generation, automatic shell
completion scripts, YAML defined CLIs, suggestions on typos, argument
relationships, any many more features. More info can be found by visiting the
project page, the Github repository
(https://docs.rs/clap) or the crates.io page
An implementation of the Vivaldi Network Coordinates
for mapping network nodes with euclidean coordinates in order to accurately and
efficiently estimate network latencies. This implementation focuses on
performance while still allowing
no_std and no
alloc environments. Written
in Rust (1k sloc).
clog : A tool for generating
Markdown changelog's based on one's
git history. This tool follows the
format, but is also fully configurable and customizable. This project is divided
into a CLI front-end and a library
A daemon that asynchronously monitors for USB connect/disconnect UDEV events and
runs actions based on matching rules. Actions can be matched on device, port, etc.
Rules are written in YAML and allow advanced concepts like excludes, groups, etc.
An asynchronous Prometheus metrics exporter for
iptables which allows exposing
total byte and packet counts by chain/rule/policy, etc.
An asynchronous Prometheus metrics exporter for WireGuard which allows exposing
metrics such as total byte transfers, handshakes, etc. by interface/peer.
A crate that enables automatic generation of shell completion scripts and
crate that enables Rust's custom-derive macro functionality with
term_size-rs : A crate for
determining the terminal width in order to determine correctly formatted output.
ruido: ("noise" in Spanish) A Rust implementation of the Noise Protocol
Framework with a focus on compile time
configuration, security, and performance. Written in Rust (~8k sloc).
RouteRunner: A daemon that sat on hosts listening to AnyCast advertisements and added routes to the kernel routing table. Written in Rust.
pfGUI: A cross-platform GUI application for securely creating encrypted archives of large files and directories. Written Rust using the Iced GUI framework. (~10,000 sloc)
Phoenix: Multi-cloud mesh VPN used for custom traffic routing. "Written" in Ansible (~4k sloc).
Phoenix Infra: Builds infrastructure between multiple cloud VPS providers, as well as locally via LXD. Written in Python (~10k sloc).
Phoenix Harden: Hardens a VPS server instance against a large number of network attacks and applies many server security practices. Written in Bash (~2k sloc).
Phoenix Assert: A double verification distributed intrusion dection system. Written in Bash (~3k sloc).
Phoenix Mon: A low remote footprint, multi-VPS monitoring solution to monitor the Phoenix mesh network. Written in Bash (~5k sloc).
satctl: Both a Terminal User Interface (TUI) and CLI for installing and
administering Red Hat Satellite. Written in Rust. ~10k
satctl-ansible: A set of Ansible playbooks and
roles for installing and configuring Red Hat Satellite. Written in Shell Script,
Python, and YAML. ~2k sloc
A typed Object ID library for Rust. An Object ID (OID) is a
RFC4648 base32 (no padding) extended
hex-encoded UUID with a prefix separated by a
-. This allows human or machine
categorizing (and sorting with UUIDv7) of UUIDs. Written in Rust (~600 sloc)
docli-rs : A DigitalOcean CLI written in Rust.
cargo-count : A
for counting lines of code fast.
cargo-extras: A meta
plugin which installs many common
cli2048: The popular 2048 game in
the terminal. Written in Go (~600 sloc).