About Me
I am a software developer and coach who is passionate about building and helping others build great software. I’m a practitioner of Extreme Programming and Agile development methodologies, and am especially interested in Test Driven Development and design. Most of my language experience is with Java, Ruby, and JavaScript, along with bits of Scala and Smalltalk.
I’ve written articles about the software development process for Better Software magazine and blogged for about a year at StickyMinds.com. My project experience has included products in the education, finance, consumer product reviews, job search, telecommunications, and manufacturing industries.
For a brief period of my life, I worked as an audio engineer recording audio books in New York. I’m a music enthusiast and play the guitar for fun.
Writing
Publications
- From One Expert to Another: Steve Berczuk, an interview with Steve Berczuk about Software Configuration Management (SCM) published in CMCrossroads, April 29, 2013.
- From One Expert to Another: Daniel Wellman, an interview with me about Test-Driven Development (TDD) published in StickyMinds, December 31, 2012.
- "Alternative JVM Languages for Java Projects" in the September/October 2011 issue of Better Software magazine.
- "An Introduction to Scala" in the November/December 2009 issue of Better Software magazine.
- “What to Expect When You’re Automating Testing” in the May/June 2009 issue of Better Software magazine
- “Google Web Toolkit: Writing Ajax Applications Test-First” in the November 2008 issue of Better Software magazine. This article was adapted by the GWT team and included in the project's resources page.
- “Google Web Toolkit: Your Shortcut to Ajax Web Applications” in the October 2008 issue of Better Software magazine
Blogs
I keep a blog about software development practices and technologies. I wrote regularly for around a year about software development topics on the StickyMinds.com blogs. Here are some selected entries:
- "Real Life Tron on an Apple IIgs”, which was #1 on programming.reddit.com for a day
- More thoughts on Scala's Option class
- Improve your iOS Frank Cucumber Acceptance Tests from the Cyrus blog, covering the imperative and declarative styles of acceptance tests.
- "Mocking GWT Widgets with GWTMockUtilities"
- "Don't Debug Selenium Test Failures Blindly" from the Sticky Minds blogs, which was featured in InfoQ
Code
I am the author of Bane, a test harness used to test your application's interaction with other servers. It is based upon the material from Michael Nygard's "Release It!" book as described in the "Test Harness" chapter.
Speaking
I speak to teams about software development issues with an emphasis on the technical practices and tools. Some of the topics include Test-Driven Development, Refactoring, Object-Oriented Design, Mock Objects, GWT, and Ruby on Rails. I have given these talks to developers at organizations such as Charles Schwab, Kaplan, and Skarven Enterprises, a Boeing company.
How to Introduce Automated Unit Tests in Legacy Apps
I presented this talk at The New York XP & Agile Meetup. Here are the slides.
Agile 2009 Presentation
I co-presented "Agile AJAX: The Google Web Toolkit Experience" at the Agile 2009 conference with Paul Infield-Harm. This session introduced GWT and how it could be used in a team following agile development practices. Attendee feedback was positive, with consistent scores of four or five (out of a maximum of five) on the feedback forms.
The session description, slides, sample code, and additional notes are available online.