I’m a polyglot software developer, and love playing with different languages. Over the years have toyed with C, Prolog, Perl, Objective-C, Java, Scala & Clojure. Employers have paid me to write HTML, PHP, Perl, C, JavaScript, Java, Objective-C, Scala and English.

This is my personal website. As part of it I maintain a blog, and these are excerpts from my two most recent articles:

A Lesson in Benchmarking

Our API had a cache builder abstraction that allowed us to use either an in-memory LRU cache or memcached. The LRU cache was faster, but the memcached version could be shared, and “unlimited” in size. It was added on the theory that as we scaled out, the memcached version would be better because a higher number of instances would see fewer cache hits.

Nuisance Calls

I’m interrupted far too often by cold-callers, PPI spammers, or even just from people calling the wrong number. Last week my Out Of Hours support phone got an SMS from a hospital laboratory saying “your test result is normal”. I’ve been thinking about ways to reduce the number of nuisance calls without hampering the usability of phones too much.

Free & Open Source Software

I wrote SBJson, a popular JSON parser & generator for Objective-C. You are welcome to use it—and any other project available from my Github profile—for free, as long as you adhere to their respective licenses.

In most cases the license requires that you have to attribute me in your application. I understand that this attribution requirement can sometimes be a problem. If you let me know about the problem, I may agree to grant you an alternative license.