I am a talented problem solver who is adept at building web applications to solve difficult issues, whilst keeping them maintainable and scalable at the same time. I have been programming since my early childhood in a variety of languages and on various platforms. In the last few years I've specialised in Ruby applications, and written quite a few to date.
I prefer to build upon (and contribute back) to open source projects where possible, as well as expanding the ecosystem with my own projects where possible. I've also spent significant time (5+ years) working as a remote worker, with some face to face time regularly and understand the communication and discipline required to make such a working environment work.
Outside of the workplace I tinker on my own projects; have helped to organise my local ruby group (Leeds Ruby Thing) until recently; help other people in the community with issues (via IRC mostly); and have also entered quite a number of hackdays (programming contests to build something in 24 hours, demo it to everyone else, and win prizes), with my teams winning awards, or being notably mentioned, each time.
Away from the computer I can either be found enjoying the company of my young family, taking photographs of interesting things, sampling the real ales on offer wherever I am, or simply relaxing with friends.
|Ruby (& Rails/Sinatra)||8 Years||Excellent|
|Testing (RSpec/Test Unit/Cucumber)||6 Years||Excellent|
|iOS / Mac Development (Objective-C/Xcode)||4 Years||Good|
|SQL (SQLite, PostgreSQL, MySQL)||10 Years||Excellent|
|"NoSQL" (Redis, Memcached)||2 Years||Very Good|
|Mac OS X||12 Years||Excellent|
|Shall (bash/zsh)||11 Years||Excellent|
|Linux (Debian based mostly)||10 Years||Excellent|
I've also written things in languages varying from PHP to Hypertalk over the years. As well as that I've experimented with a wide range of software technology in the last 10 years, more recent things include Puppet, Chef, Riak and MacRuby. In 2012 I also started learning C from scratch (with K&R), to expand my picked-up-on-the-fly knowledge of it.
I have also authored various rubygems, including ones with C and Java extensions. (CUUID uses C extension for quick UUID generation, jruby-stemmer uses a java extension for stemming words quickly in jruby.)
I hold a full, clean UK Driving Licence.
I also have RYA qualifications in dinghy sailing, experience sailing 7+ tonne yachts, and a great love of driving, especially sideways (in a controlled manner, naturally.)
EmberAds +products [2012-2013] http://emberads.com/
EmberAds' first product was a contextual affiliate advertising platform for website owners to easily add relevant adverts to their sites without requiring anything more than pasting a simple HTML tag into their markup. I'm a founding partner of the company, and part of the team who designed, built and scaled the product to quickly and accurately match a webpage against more than six million products, all whilst serving the adverts quickly and consistently for all users.
CharityBox (EmberAds)  http://charityboxapp.com
I was part of the team that built out EmberAds' second product, CharityBox, to help users save money whilst raising money for charity at no cost to the users themselves. I helped with the backend rails system, the marketing website, and building out the Safari extension specifically. (The product is originally a hackday project that won us CharityHack 2010, and lead to the team starting PizzaPowered together.)
FakeRedis  https://github.com/guilleiguaran/fakeredis
FakeRedis is an in-memory ruby implementation of a redis server, which is useful for speeding up test suites. I got involved by using it at EmberAds and finding discrepancies in behaviour compared to actual redis-server & redis-rb. I started out by contributing patches & specs back fixing the discrepancies I'd noticed. I then figured out how to run fakeredis' specs against a live redis server to fix broken expectations in those specs. (And then use those fixed specs to patch fakeredis!) I've since been given commit access to the project and help maintain & extend it.
I am, I do  (Offline currently.)
I am, I do was built at a weekend hackday to be an inspirational collection of users answering six poignant questions. Dom and I are inspired by other people and what they achieve, or what drove them to do what they do. The app was built so that users can browse through the profiles, reading other people's stories and being inspired by them, before answering those same questions on their own profile to help inspire others in turn.
Tweet Savr  http://tweetsavr.com/ (http://github.com/caius/tweetsavr)
Tweet Savr was built in an evening and allows users to display a conversation of tweets in chronological order on one page. It also provides a permalink for that conversation to be viewed at forevermore, which can then be shared with an audience. It's a perfect example of a small tool built to solve a problem, and not expanding to do more than it needs to beyond that.
CaiusTime  http://time.caius.name/ (https://github.com/caius/CaiusTime/)
Caius Time grew out of a running joke between my friends that I existed on my own timescale when I could, and was frequently behind the UK's timezone. (Oh how times have changed now there's children in the house!) It figures out from my first tweet of the current day how far off a 9AM start I was and displays the offset on the site. It uses basic flat-file caching to save re-calculating the value for the day from then onwards.
Brightbox Cloud [2008-2012] http://www.brightbox.com/
I was part of the team that initially designed and implemented the new Brightbox Cloud, bringing Infrastructure-as-a-Service to the UK properly for the first time. I worked on both the frontend (customer facing) applications, as well as various backend applications from integrating with the billing system, to the magical pixie dust that power the cloud servers. Prior to me joining, the company had a policy of helping the community by releasing as many things as open source as possible (within business reason), which has been instilled in me as well.
Object Factory [2008-2012] https://github.com/brightbox/object-factory
Object Factory is an object generation factory for ruby (with Active Record API integration). It was started at Brightbox by a colleague of mine, and grew under our fingers from a simple collection of methods into a multi-feature factory tool for test suites. I spent some time at the end of 2012 rewriting the implementation entirely and adding a proper test suite for it. (And we subsequently used it in anger at EmberAds and in hackday projects too.)
Habari [2007-2011] http://habariproject.org/
Habari aims to be the personal content management system of the future, built on state of the art technology and available to all under a free license. I joined the project quite early on and helped shape it towards the platform it is today. I was a founding member of the project's Cabal until I stepped back from the project in early 2011 to concentrate on other projects.
/brb [2004-current] http://r.caius.name/brb
/brb is a very popular plugin for the leading Mac OS X instant messaging client, Adium. It inserts a humorous reason for the user to "be right back", to both amuse and inform the other party that the sender will be incommunicado for a short time. It was also the first piece of open source I ever released (to the best of my knowledge), and is still maintained today.
I'm a big believer in open source, both in the consuming and creating of it. Building on the shoulders of others, and allowing them to build on yours is a very good way to both be helped by the community at large, and to help them in return. In that spirit, I've had patches accepted in quite a few notable ruby projects, including Rails, as well as being given the commit bit for a few more, including SafariWatir and FakeRedis.
I also open source quite a lot of my own projects, however trivial they seem to be to me. (See my Github.) I've lost count of the number of times someone's mentioned a problem and I've been able to link them up to a piece of code in one of my projects to help them. I also like tinkering on things in public, makes me more likely to continue tinkering usually, rather than letting the code languish untouched on my hard drive. My latest tinkering/experiment is a wordsearch generator built in Ruby, as I've never written one before and it's a challenge I want to figure out & solve.
EmberAds [2012-2013] http://emberads.com/
I am a company co-founder (of five), have helped design & build both major products of the company, as well as tinkering on smaller tools to help us internally (and open sourcing everything where possible.) I also lovingly look after the servers & infrastructure, both initially on a cloud hosting platform, and then planning & executing a full move to dedicated server hardware part way through the company's life.
PizzaPowered [2010-2012] http://pizzapowered.com/
I maintained the servers for the entirety of the company and its products, as well as championing development on one of the three products. As part of my work for PizzaPowered I designed and built a resilient, well behaved web crawler for analysing people's websites without causing them undue load.
Brightbox [2008-2012] http://brightbox.com/
I initially helped maintain and extend the existing Ruby on Rails hosting platform, before being part of the team that designed and built the new Infrastructure-as-a-service platform which launched in October 2011. The team actively incorporated new development ideas and workflows where they enhanced the ability to solve problems, and helped share solutions and libraries they wrote for others to use.
References available upon request.
Please email me at , or if you prefer to talk in more of a realtime fashion, call me on +44 7960 268100 (UK).