Randy Coulman

Courageous Software

Welcome to randycoulman.com!

I am Randy Coulman.

I’ve been a software developer for more than 20 years. Today, I work primarily in Ruby, Javascript, Smalltalk, and C++. I’ve also been known to write a little Java (primarily plugins for CruiseControl and Jenkins). In past lives, I’ve also worked in Common Lisp and VB6, though I’m pretty much done with the therapy that resulted from the latter.

I am also a conference speaker. I announce my speaking appearances on my blog.

I created and maintain the Jujube Ruby gem, a Ruby front-end for jenkins-job-builder. I contributed the Visualworks Store version control plugins for CruiseControl 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 mention 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.

I am an expat Canadian living and working in beautiful Southern Oregon. I am also a husband, father, cyclist, tennis player, church board member and Financial Peace University coordinator.

I host a blog, Courageous Software, on this site. You can e-mail me at randy (at this domain). You can also find me on Twitter and GitHub.