RSS Feed Subscribe to RSS Feed



I’m a software developer, originally from Northern Ireland but now living in San Francisco, California. My geek interests include using TDD/refactoring to achieve a clean design and codebase, released via ‘continuous delivery’. Java is my primary language, but I also dabble in Ruby, JavaScript and Groovy.

You can reach me on LinkedIn, I make occasional technology related posts on Twitter, or you email me at

I’m always interested to hear about open source projects, technology meetups or any excuse to meet for a beer.

Click here for my blog postings, or see some highlights below. All code examples are published under the permissive MIT opensource license and most are available at my GitHub account.

Most popular blog posts

  1. Java Web Frameworks
  2. A summary of a controversial Java One talk comparing web frameworks including Grails, Tapestry, Wicket and GWT. Also linked from DZone.

  3. Data binding in Spring MVC
  4. Discusses data binding in Spring MVC, including the use of custom PropertyEditors

  5. Multiple instances of tomcat
  6. A step by step tutorial on how to have multiple independent instances of tomcat from a single install.

  7. Hamcrest
  8. An introduction to this library of matchers, which is a good tool in your unit testing toolbox (although these days I actually prefer FEST).

  9. Easymock
  10. An introduction to this mock testing framework.

And although I don’t use the pattern much myself anymore, my post on Singletons stills gets a surprising amount of traffic.

My favorite posts

These are the posts that I got a lot out of writing or find myself referring back to most often:

  1. My Talks
  2. See here for links to talks I have given at code camps, including Software Quality via Unit Testing and An Introduction to Spring. I’d like to do more of these as there is nothing like giving a talk to help you solidify your knowledge on a topic.

  3. Spring MVC sample projects
  4. I have a few posts on SpringMVC sample projects I’ve created, including a spreadsheet like user interface, a SpringMVC file download example, a SpringMVC HelloWorld template, and a simple app for managing money called MyMoney. I use these projects as a way to get more familiar with certain technologies, but they are also a useful resource to bootstrap new projects

  5. Checked Exceptions
  6. Writing this post, and the related Exceptions vs Return Values helped clarify for me how to correctly use Exceptions in Java, and the exceptional (pardon the pun), and rare, cases in which to use checked exceptions.

  7. “The Productive Programmer” Part 1 and part 2
  8. Notes from a talk by Neal Ford, based on his book by the same name. Some good notes on productivity techniques and links to useful tools.

  9. A find files script
  10. A simple script to find files in unix that I seem to find myself using a lot.

Favourite tech books

  • Effective Java
  • The Java bible!

  • The Pragmatic Programmer
  • A great book that reminds us that we can and should treat the software development process as an art and a craft. Full of good techniques and memorable analogies such as no broken windows.

  • Test Driven Development
  • The book that opened my eyes to the awesomeness of automated testing.

  • Growing Object-Oriented Software, Guided by Tests
    A book that shows a Test Driven Development approach in the context of realistic development scenarios.
  • Peopleware
  • Technology issues are insignificant compared to the people and team.

  • Design Patterns
    Try to read it cover to cover and you’ll likely fall asleep, but it is an indispensable reference book when you feel like you’re reinventing the wheel.

  • The Mythical Man Month
    An oldie but definitely still very relevant.