About Me
Welcome! I’m Richard, a leader and a software developer from Canada, now living in Berlin, currently CTO at mTOMADY. I’m passionate about building software, learning languages, and continual improvement. I have been building software since I was 14 years old, and it’s still something I enjoy doing in my free time.
I am serious about creating the highest quality software I can, and I like to have fun while I do it. That’s why Ruby is currently my favourite programming language. You can also read about the principles that guide my software development.
For me, the purpose of life is, at least partly, to have joy. Programmers often feel joy when they can concentrate on the creative side of programming, so Ruby is designed to make programmers happy. - Yukihiro “Matz” Matsumoto
I’ve spent a lot of time thinking about leadership and what it means to me. I’ve written about the leadership qualities that I both appreciate, and strive to emulate.
I also love learning natural languages. I can speak German at a B2 level and Icelandic and French at a B1 level. Icelandic was a big success for me, as I had to learn it independently. Feel free to write to me in German, Icelandic or French if you want to.
Continual improvement is also important to me. I’m always looking for new skills to learn, and new techniques to improve what I already know. Frustrated by how many things I’ve forgotten from university, I am particularly interested in how our memory works. As an introduction I recommend the course Learning How to Learn, followed by reading Universe of Memory if you want to go deeper.
I also love Open Source software. Here’s an incomplete list of contributions I’ve made over the years. It’s here as a reminder to myself for the next time I think, “Oh, I haven’t made any contributions in a long time,” that this is not necessarily true :)
Roughly in chronological order, newest first:
- mongoid: Usability improvement: Unmask Enumerable#find
- onesignal-ruby: Added a previously unsupported API call
- retry_it, a Ruby gem to conditionally retry a block of code (such as an HTTP call)
- ruby_odata: Regular expression bug fix
- ruby_odata: Bug fix in error handling
- meteor-persistent-session: Module for Meteor to persist values across page refreshes
- meteor-image-upload: Module for Meteor to enable easy upload of images
- Meteor: Upgrade version of AmplifyJS
- meteor-raven: Catch uncaught global exceptions and log them
- meteor-raven: Add gotcha to documentation
- node-cas: Bug fix
- node-cas: Support passing options to https
- fix in Jasmine: Guarantee that afterEach and after blocks are always run
- acts-as-taggable-on: Bug fix
- better-logging: Convert to proper Gem
- nyan-cat-formatter: Default to rspec2
- i18nify: A cleaner way of doing i18n in Ruby
- 2006-2009: Incubation committee member for OSGEO
- 2006-2008: Project Management Committee and Module Maintainer for GeoTools project
- 2004-2007: I made significant contributions to GeoTools, uDig, GeoServer while at Refractions Research