Researcher with experience in functional programming, formal methods, programming languages, and security.
treereduce. A fast, parallel, syntax-aware test case reducer based on tree-sitter grammars
116tree-crasher. Easy-to-use grammar-based black-box fuzzer. Has found dozens of bugs in important targets like Clang, Deno, and rustc.
85treeedb. Generate Soufflé Datalog types, relations, and facts that represent ASTs from a variety of programming languages.
84write-yourself-a-scheme-in-agda. Like "Write Yourself a Scheme in 48 Hours", but in Agda
51tree-splicer. Simple grammar-based test case generator
45mogglo. Multi-language AST-based code search and rewriting tool that supports embedding Lua code in patterns
36coq-big-o. A general yet easy-to-use formalization of Big O, Big Theta, and more based on seminormed vector spaces.
35CoverTranslator. A tool for formally verifying Haskell code in Agda
28souffle-lint. A linter for Soufflé Datalog
17reed-thesis. My undergradate thesis on coinductive types in univalent type theory
17tree-sitter-souffle. A tree-sitter grammar for Soufflé Datalog
16contract.el. Racket-style higher-order contracts for Emacs Lisp
16spacelix. Spacemacs-like configuration for Helix
12amsthm-to-anki. Translate math notes written with the amsthm package to Anki notecards!
10duckalog. Datalog engine based on DuckDB
10emoji.yml. a machine-readable (yaml) list of (almost) all unicode emoji
7czz. Whole-program, Scheme-scriptable, multi-language, coverage-guided fuzzer
7zsh-contextual-abbrevs. Supercharged context-dependent aliases for ZSH that save you keystrokes!
6icemelter. Icemelter automates steps in debugging rustc internal compiler errors (ICEs)
6rdf-star-souffle. A toolkit for reasoning about RDF-star in Soufflé, including an OWL reasoner
6nixpkgs-blight. Instrument the builds of tens of thousands of open-source packages
6tree-sitter-edit. A crate for printing modified tree-sitter parse trees, intended for use in multi-language code refactoring, linting, or modification (codemod) tools.
5dots. NixOS configuration + dotfiles
5dlsubst. A naïve, bottom-up Datalog interpreter based on explicit substitutions, rather than relational joins. Just an experiment, not an efficient engine!
4lesshand. A shorthand for the 21st century
4m3u-converter. Convert M3U files into another format (markdown, yaml, etc.)
3SpaceZLE. A set of mnemonic, discoverable keybindings for the ZSH Line Editor, inspired by Spacemacs
3galois-haskell-nix. Nix builds for most of the Haskell projects of @GaloisInc
2zbr. A tool for managing auto-expanding abbreviations for ZSH
2radamsa-sys. Rust bindings for Radamsa
2vagrant.py. A dynamic inventory script for use with Ansible and Vagrant
2herms. :stew::fork_and_knife: A command-line manager for delicious kitchen recipes
2rdf-star-presidents. RDF-star dataset on U.S. presidents, mined from Wikidata.
1versioning. Type-safe data versioning.
1anki-wikidata. Easily create high-quality Anki cards with data from Wikidata!
1langston-barrett.
1twjsrs. Crate for (de)serializing TiddlyWiki tiddlers to and from their JSON format
1