Project + People Manager / Software Supply Chain Security
About
I work on software supply chain security at MITRE, including serving as a member of the OmniBOR Working Group, where I lead development of the Rust implementation, and as the project manager for Hipcheck, a tool for automated supply chain risk assessment of software packages.
I write, teach, and speak about Rust. I’ve written educational articles on Possible Rust and on my prior personal blog Suspect Semantics. I’ve taught “Introduction to Rust” at MITRE, spoken at RustConf and Rust Belt Rust, edited a book on Rust procedural macros, and contributed to the official Rust documentation and the Rustonomicon. Two of my favorite articles I’ve written are “3 Things to Try When You Can’t Make a Trait Object” and “Non-Generic Inner Functions.”
I’m also a programming languages enthusiast. I maintain a list of languages implemented in Rust, and previously taught “Introduction to Programming Language Theory” as an adjunct lecturer at CSUSB. I have a Master of Computer Science degree from Rice University.
Elsewhere
Writing
- “What Can Coerce, and Where, in Rust” published by Possible Rust
- “Naming Your Lifetimes” published by Possible Rust
- “3 Things to Try When You Can’t Make a Trait Object” published by Possible Rust
- “How to Read Rust Functions, Part 1” published by Possible Rust
- “Non-Generic Inner Functions” published by Possible Rust
- “How to Read First Impression Posts” published by Possible Rust
- “Inbound and Outbound FFI” published by Possible Rust
- “Enum or Trait Object” published by Possible Rust
- “Rust Lints You May Not Know” published by Possible Rust
- “Rust Frequently Asked Questions” published on the Rust website
- “AI & National Security — A Primer” published by Inkstick Media
Editing
- Contributor to the OmniBOR specification as part of the standard working group
- Technical Editor for “Write Powerful Rust Macros” by Sam Van Overmeire, published by Manning
Software
- omnibor-rs: Rust implementation of the OmniBOR identifier / manifest standard
- langs-in-rust: A list of programming languages implemented in Rust, for inspiration
- hipcheck: Automatically assess software projects for supply chain risk
- cargo-spdx: Generate an SPDX Software Bill of Materials for a Rust crate
- replace_err: Extends Result to enable replacing the error type
- woah: A Result type that supports both local and fatal errors
- dcalc: Add or subtract durations to find out how long something takes
- semver-explain: Explain SemVer requirements by converting to more obvious forms
- gccarch: Query information about architectures supported by GCC
- Pact FFI: Exposes Pact’s Rust reference implementation to other languages
Speaking
- “A Tale of Teaching Rust” at RustConf 2017
- “Hello and Welcome: Documentation in the Rust Ecosystem” at Rust Belt Rust 2016