- A strong believer in the benefits of Ruby on Rails. I've been using it full time since January 2007.
- Building websites since 1997.
- 20 years worth of mistakes; doing things the hard way; learning from what went wrong. Trying to learn even more from what went right.
- Finishing projects and standing by them in production. Coding isn't all about the thrill of the new - it's also about detail and making it work.
- Refactoring and simplifying existing components. It's better to build something quickly and improve it later than to make it perfect first time, if that's even possible.
- Rigorous, automatic testing so you, the customer, have the confidence to make changes and adapt your business.
- I've been using Linux since 1999 and managing Internet servers since 2005. I am completely comfortable deploying and managing a production environment. Recently, that has been less to do with running a Linux server and more to do with running applications on Engine Yard's AppCloud or Heroku
- Rework influences my work on a daily basis. Best absorbed with some perspective, not blindly, but astoundingly insightful. Learning that constraints help creativity; simplicity is beautiful; that things that appear simple require effort and discipline. I love the fact that 37signals still publish and stand by their manifesto from 1999.
- Liked The Agile Samurai by Jonathan Rasmusson from The Pragmatic Bookshelf, although I find myself taking a less formal approach to agile over time.
- Loved HTML5 for Web Designers by Jeremy Keith from A List Apart.
- Found Eloquent Ruby detailed, interesting and readable - explaining concepts that I thought I knew and introducing new ideas. Hard to put down.
I've been running my own company, Logical Cobwebs, since 1994 - working as a contractor through an agency, freelance on gigs, and in partnership with others in startups.
Projects and Gigs
- GiftCardRescue. A gift card exchange site based in Maryland, written in Ruby on Rails. I have done 99% of the coding on this project and handle everything from design to production support. Designing new applications is exciting and it gives you the freedom to explore new ideas - but I believe the true test of software development is supporting that application after it's been in production for several years and ensuring it stays lean enough to adapt. (2009 - present)
- Brabeia. Helping this Vancouver marketing company to build their online contest site using Ruby on Rails. I was the lead developer on this flagship product for Brabeia. The company went public in 2015 and they are growing their marketing and online contest tools rapidly. (2014 - 2016)
- Muddy Boots Online. Working as a Ruby on Rails programmer. (2014)
- Tay River Levels. Just for fun, a website I've built to make it easy to keep an eye on the river levels where I live. I kayak on a section of the Tay and it's nice to know what sort of white water to expect (2016).
I've worked for banks, telecoms, government, education, distribution and retail. Some of it has been at the leading edge using the latest tools; some of it has been the rigor of maintaining a financial system. All of it has taught me a great deal: language skills like Java and Ruby; coding skills like testing and transparency; business skills like communication and commitment.
- Otozip. Advising and mentoring their developement team and leading a lot of the coding. Otozip helps people book their cars into Service Centers and helps Service Centers bring in new business and simplify their processes. (2013)
- Bandzoogle. Helping their in-house team migrate their Coldfusion app to Rails 3. (2011)
- Cloops. Leading their Ruby on Rails development team, improving and maturing their existing website. I took over responsibility for the website and effectively became the company's CTO. A lesson in adapting to changing business requirements. (2011)
- MyArtChannel. Leading their Ruby on Rails development team, building a website for the British Columbia visual art community. The biggest thing I've learned over the past two years is to only build what is needed right now and not to speculate on features that are likely to be needed in the future. Also, the reason you did something a certain way six months ago might not still be relevant: revisit old decisions and simplify where possible. (2008 - 2011)
- Royal Bank of Scotland. Maintaining a Java application handling credit card management. The app I was working on was very hard to maintain and the bank required endless documentation and adherence to processes that drove me crazy but there's a lesson to be learned from such extremes. Part of the reason for the rigid approach was that the application was brittle and had no automated testing - change was hard. In such circumstances you have no option but to move slowly and cautiously. (2006)
- Scottish Police Services Authority, Telenor, Scottish Enterprise, Perot Systems, British Home Stores and others. (1994 to 2005)
- Yakify (Ruby on Rails). I co-founded this startup that attempted to reinvent how people could share ideas about interior design, home renovations, etc. A sort of Pinterest meets Zillow kind of thing. Only then Zillow did exactly that (and made an excellent job of it too) which killed off Yakify. We'd made quite a few "pivots" over the year and finally had to call it a day. Lots of lessons! (2012)
- Lemontastic (Ruby on Rails). Using PayPal to receive and pay money to businesses and individual members. This project taught me so much about Ruby on Rails and about how startups work. I guess this falls into "learning from my mistakes" category: overly complicated without testing the market first. (2007 to 2008)
Education and Interests
I graduated from Bath University in 1990 with a degree in Aeronautical Engineering. I am a slalom canoeist and represented Great Britain at three World Championships from 1987 to 1993, winning the silver medal in the team event in Italy in 1993. I canoed down the Grand Canyon with my wife, Nonie in September 2001 and enjoyed it so much I went back in 2004 and 2007. We have two children and enjoy watching them find their own way in the World.