Most of my projects are hosted on GitHub, so you can always check there for the latest details.

Here are some highlights:

I curate the new #interestings newsletter that Zeal publishes. It’s a weekly list of things that the Zeal team is paying attention to.

I help maintain Katrina Owen’s Approvals library. Approvals is a Ruby gem that allows you to do “golden-master” or “snapshot” testing, which is really handy when trying to get a legacy codebase under control.

I created and maintain the Jujube Ruby gem, a Ruby front-end for jenkins-job-builder. It’s a great way to support a large collection of Jenkins jobs without having to use the web UI.

Along with some of my co-workers, I maintain eslint-config-zeal and Zeal’s react-boilerplate projects.

I contributed the Visualworks Store version control plugins for CruiseControl and Jenkins.

I also created and/or maintain the following tools and extensions for Visualworks Smalltalk:

  • The Smalltalk ports of Fit, FitNesse, and FitLibrary.

  • DoubleAgents, a test double library.

  • StoreCI, which integrates Visualworks Smalltalk with continuous integration servers like Jenkins and CruiseControl. This is the Smalltalk part of the solution that goes with the Java plugins I mentioned above.

  • SUnitTools-AutoTest, which automatically runs relevant SUnitToo tests when a method is changed.

  • ExtraCatalogs, an alternative MessageCatalog for VW Smalltalk that supports XLIFF-format files.

  • DebuggerProtocolPrompt, which prompts for a method protocol when defining a new method in the VW Smalltalk debugger.

  • Threequals, which adds a Ruby-like #=== operator to Smalltalk.

  • ExternalEnumeration, which provides an external Enumerator for Smalltalk.

  • SuffixConditionals, which adds Ruby-like suffix conditionals to Smalltalk.

These projects are all available in the Cincom public Store repository.