Archive for January 2010

Let me help you!

I’ve just spent an exciting three years developing GigPark (which was recently named one of the top 10 Toronto web startups of 2009) and managing the integration and transition to it’s new owners since the acquisition in August.

Now I’m moving on to new challenges, and I’m available for contract work.

Do you need help with:

  • Web application performance and scalability?
  • Software development using Ruby? (I also have a lot of experience with Java and a variety of other languages and tools.)
  • System architecture?
  • Cloud computing, EC2 and Amazon web services?

Do you need someone to lead a software development team or help with an Agile software development process?

I have experience with all of these things and I’d be happy to help.

Please read about some of the interesting things that I’ve done and then contact me to see how I can help you.

GigPark in Top 10 Toronto Web Startups of 2009

I’m incredibly proud to see that blogTO, my personal favorite site for news and happenings in Toronto, has named GigPark one of Toronto’s top 10 web startups of 2009!

As Director of Technology I was GigPark’s first employee, and led the development up to and through the acquisition by Canpages in August of 2009.

Movin’ on… (status of EC2 on Rails)

I began a fun project a couple of years ago: EC2 on Rails. It became quite widely used, people contributed some great code, and a small community developed.

I had a great vision for what it should become. But since I was very busy with a start-up (which we successfully sold last August), I struggled to find the time to work on it. I did a lot of work that I never ended up releasing because I couldn’t find the time for testing and fixing the last few small bugs (though it has been in use in production with great success).

The hardest thing to find time for was always documentation and communication of the status, so today I’m taking the time to clarify since I get asked a lot:

I won’t be working on it any more.

But open source is a wonderful thing and anyone who wants to keep using it can fork it and do so.

Thanks to everyone who contributed features and fixes.

I apologize for letting it languish for so long, I had the best intentions to find some more time but now that I have a four-week old baby I know that it’s impossible.

A great success in it’s day

It felt great to be sitting in a session at RailsConf 2008 and hear the presenter recommend EC2 on Rails.

When I first created EC2 on Rails it was the first and only Rails AMI, and in fact it was the first public Ubuntu AMI that I know of (though Eric Hammond went on to create what later became the definitive Ubuntu public AMI and Canonical eventually produced official Ubuntu images).

In spite of the sparse documentation it was simple enough that many people used it either as-is or as a starting point for their own custom setup.

I think there’s still a great need for a simple open-source Rails server image, but now there are at least a couple of options, and the choices for all components of the Rails production stack have improved hugely.

Some of the custom functionality is now available via other projects like Marc-AndrĂ© Cournoyer’s mysql_s3_backup.

I’d do a few things differently

If I had the time to continue working on it I’d make some major changes in the architecture:

  • I’d use Chef to configure the image instead of a build script. This would allow running instances to be upgraded more easily, allow greater customization by the user, and allow the sharing of common customizations.
  • I’d stop using Capistrano for deployment, or at least move all the code that’s inside Capistrano recipes into scripts that exist on the server. (Chef-deploy looks promising but I haven’t had a chance to play with it yet).
  • I would provide better support for elastic clusters (i.e. adding and removing instances from the cluster).

I have a lot of thoughts on how those things would be achieved, feel free to get in touch with me if you are building something similar and want to chat about it.

The new and improved but unreleased version

The unreleased version (available on GitHub) has been substantially rewritten. It is now based on Nginx, and Phusion Passenger, and uses the awesome Varnish proxy for balancing across multiple instances (optionally with HTTP caching). As I mentioned it’s being used in production with great success, but there are still a few minor known issues and probably some untested areas.

Please feel free to fork it and give it new life.