Open Source Projects

Maintainer of nokogiri

Nokogiri is currently the most popular XML/HTML parsing library for Ruby developers. It supports CSS and XPath querying, has push and pull SAX parsers, validates schemas, performs XSLT transformations, and has a very simple and usable API. It's implemented in Ruby with native extensions in C and Java.

Maintainer of loofah, loofah-activerecord, and rails-html-sanitizer

Loofah underlies the default HTML sanitizer in Rails, which can be used to prevent cross-site scripting (XSS) attacks. It provides a variety of methods to clean or remove unsafe HTML, and delivers ActiveRecord plugins for Rails applications.

Rails HTML Sanitizer is the default library for sanitizing HTML fragments in Rails applications.

Maintainer of sqlite3 Ruby gem

The sqlite3 ruby gem is the original and most widely-used Ruby database adapter for SQLite.

Mechanize is a Ruby library used for automating website interaction and screen-scraping. It fully supports browser history and cookies, and allows easy authentication and form submission. The http-cookie project delivers standards-compliant cookie handling.

Maintainer of rake-compiler-dock, mini_portile, and ruby-c-extensions-explained

The rake-compiler-dock project delivers OCI images to help maintainers build precompiled native gems. It's the Ruby analog for Python's pypa/manylinux project for building Wheels.

The mini_portile project helps gem maintainers integrate native extensions with autoconf projects.

Finally, the Ruby C Extensions Explained is a project that demonstrates and documents a variety of ways to package and precompile native C code in a Ruby gem, complete with CI pipelines and two conference talks explaining the approaches.

Maintainer of tailwindcss-rails and tailwindcss-ruby

tailwindcss-ruby packages tailwindcss, and tailwindcss-rails provides tight integration with Rails.

Selected Smaller Projects and Contributions

I've made contributions to many other Ruby-related projects, including the Ruby language and its Prism parser, rdoc, the Truffleruby interpreter, Mastodon, Active Hash, racc, rexical, chromedriver-helper rake-compiler, sanitize, crass, grpc, ruby-magic, ruby-ffi, hoe-debugging, hoe-gemspec, hoe-bundler, and concurrent-ruby.

Outside of Ruby, I've made contributions to libxml2, git, valgrind, DOMPurify, and rofi.