Projects I created
-
@getodk/xforms-engine (Oct 2023 – Apr 2025)
Client-agnostic, reactive runtime for ODK XForms.
-
@getodk/xpath (Oct 2023 – Apr 2025)
Extensible XPath 1.0 interpreter, supporting ODK XForms. extensions, arbitrary DOM implementations
-
@getodk/tree-sitter-xpath (Oct 2023 – Apr 2025)
tree-sitter parser for XPath 1.0 syntax.
-
HNDarkMode (Jan 2021)
Dark mode web extension for Hacker News.
Quick weekend project, made by request when I saw that it had been left up to the Hacker News community.
-
Espalier (Dec 2015 – Feb 2017)
Placeholder style rules for Garden.
Created and open sourced at Reup to optimize redundant CSS rules as a simple DSL with a great DX.
-
cljs-rrule (Jun – Jul 2016)
A ClojureScript wrapper for rrule.js, with common Clojure semantics for
RRuleandRRuleSet, conforming to RFC 2445 (with some specific exceptions).Created and open sourced at Reup for generating standardized rules for recurring dates & times.
-
cljs-rest (Mar – Jul 2016)
A ClojureScript REST client, suitable for AJAX interaction with RESTful APIs.
Created and open sourced at Reup to simplify integration between ClojureScript websites & web apps and backend REST APIs.
-
alter-cljs (Jan 2016)
A ClojureScript implementation of
alter-var-root.Created to provide the same behavior as Clojure on the JVM.
-
GitHub Issues Dump (Aug 2015)
Utility for exporting all of an organization's GitHub issues and comments.
Created and open sourced at ClipCard to easily produce a full archive of an organization's GitHub issues activity.
-
Bundle Tracker (Jan – May 2015)
Utility for cataloging and identifying macOS "bundle" directory types which are commonly treated as files.
Created and open sourced at ClipCard for use in several API integrations where macOS bundle directories were expected to be represented as files.
Open source contributions
-
@getodk/web-forms (Mar 2024 – Apr 2025)
ODK Web Forms UI client
-
Enketo (Apr 2021 – Oct 2023)
Long-term maintenance.
-
Astro (Jul 2021)
Collaborate with core contributors to add support for rendering SolidJS components.
-
Microsite (Jan – May 2021)
Several bug fixes and feature enhancements.
-
typescript-eslint (Oct 2020)
Introduced the
ignoreInferredTypesoption for theprefer-readonly-parameter-typesrule to improve DX when the rule is used with third-party libraries. -
mdx (Feb 2020)
Improved TypeScript support.
-
FAST (Aug 2018)
Improved documentation.
-
Razzle (Aug 2017)
Corrected documentation in TypeScript example.
-
CLJSJS (Jun 2016 – May 2017)
Introduced support for big.js in ClojureScript, and updated support for rrule.js.
-
Accountant (Dec 2015 – Dec 2016)
Fixed a pair of bugs where query parameters on a link were not set when the link was clicked, and where a previous location state's query parameters were not removed when navigating to another link without those query parameters.
-
pre-commit-mypy (Oct 2016)
Expanded version support.
-
speclj (Apr 2016)
Introduced support for
.cljcmodules. Improved reliability of determining whether.cljctests are being run in Clojure or ClojureScript. Fixed a bug when testing whether a value is a given throwable type. -
Figwheel (Dec 2015)
Added support for the
:notify-commandconfiguration allowing projects to run arbitrary commands once a rebuild is complete. -
quick-clojure (Jan 2015)
Fixed a bug where the REPL's port was reported incorrectly.