I work as the Head of Engineering at Shortcut.
Clojure is my primary programming language, been using it since 2010 and making a living with it since 2013.
💻 My Open Source Work
- Ari: Array Relational Interactive Programming
- Metazoa: Tools for viewing, testing, searching, and querying Clojure metadata
- shortcut-repl: A REPL & CLI for Shortcut (Dart)
- clj-webdriver: (Unmaintained) Clojure API for Selenium-WebDriver
Learning, experiments, and toys:
- Gershwin: Stack-based, concatenative programming language with a Clojure runtime that targets the JVM
- rankle: Experiments with data rank and tables in Clojure, inspired by J and Q
- river-crossing-spec: TLA+ Specification for the "Wolf, goat, and cabbage" puzzle
- AsIf: Language implemented as a Clojure transducer
- Shackle: Stack-based language, implemented in the web browser
- webdriver-logic: Logic programming API for testing web applications using clj-webdriver
💾 Technology I Use
- Clojure for most of the professional code I've written
- Goal for day-to-day data analysis, HTTP API interaction, and scripting
- Julia and J for data analysis
- Glamorous Toolkit built on Pharo Smalltalk for moldable development
- LaTeX for authoring documents of all kinds
- Ruby for writing scripts to share with others
- sops for managing secrets locally
- fish as my primary shell
- WezTerm and Alacritty as terminal emulators
- tmux for multiplexing
- Emacs, traditional bindings for Lisp-adjacent work, Vim bindings via
evil-modefor everything else - NeoVim for text editing at the terminal
- Visual Studio Code for most non-Clojure development
- macOS-specific:
📫 How to reach me:





