Open-source software that I’ve authored or contributed to.
Professional
-
Litani source code manual
Litani is a metabuild system used by C programmers at AWS to check their code using formal correctness proofs. Litani runs a dependency graph of commands using ninja(1), wrapping each command and displaying a HTML dashboard.
-
CBMC starter kit source code documentation
The starter kit allows developers to quickly start writing CBMC proofs in their C projects. It is a Makefile that describes the steps needed to run CBMC proofs, written in a generic way that was used by a variety of different teams at AWS. The Makefile contains sensible default options for CBMC, as well as a sequence of build steps following the 'unit-test' style of proofs used at AWS.
-
CBMC source code documentation
CBMC is a static analysis tool that checks C programs for undefined behaviour. Originally developed at Oxford University, it is now used industrially at AWS. I contributed three major features and wrote many of the tutorial and documentation pages.
Personal dotfiles, scripts, tools
-
kal source code
kal is a calendar, todo list, timetable, and world clock viewer.
-
dotfiles source code
systemd units
- .config/systemd/user/run-ansible.service: Run ansible playbooks
- .config/systemd/user/git-annex-remotedaemon@.service: run git-annex-remotedaemon(1) in %i
- .config/systemd/user/idle.slice: Slice for units that should run at low priority
- .config/systemd/user/dump-repo-list.service: Dump list of git annex repositories
Scripts
- bin/run-git-annex-remotedaemon: Run git-annex-remotedaemon(1) in a directory escaped with systemd-escape(1)
- bin/dump-repo-list: Dump a JSON representation of git annex repositories to disk
General configuration files
- .zshrc: Configuration for zsh interactive shell
- .inputrc: Configure vi mode in CLI input
- .screenrc: Configuration for gnu screen
- .vimrc: Configuration for vim
- .zshenv: Environment for shell and interactive session
- .config/elinks/elinks.conf: Configuration for elinks web browser
- .config/cmus/rc: Configuration for cmus music player
- .config/git/config: Global git configuration
- .config/git/ignore: Global git ignore file
- .config/git/user: ser]
- .config/abcde/rc: Configuration for abcde compact disk ripper
- .config/zathura/zathurarc: Configuration for zathura PDF viewer
- .config/firejail/signal-desktop.profile: Firejail config for signal-desktop to fix startup on wayland
- .config/sway/local.example: Example local sway config to be copied into ~/.config/sway/local.d/
- .config/sway/config: Configuration for sway window manager
- .config/mpv/mpv.conf: Global configuration for mpv media player
- .config/mpv/input.conf: Key bindings for mpv media player
- .config/kitty/kitty.conf: Configuration for kitty terminal
- .config/pipewire/pipewire.conf.d/sound-system.conf: Configuration for home sound system with two mono speakers and two HP amps
- .vim/autoload/plug.vim: vim-plug: Vim plugin manager
-
todo_actions source code
Add-ons and scripts for todo.sh