Tools of the trade
When starting a business you need to make a lot of choices. Many are trivial and others take more time to think through so that you are not stuck with it because the cost of switching might be too high down the line. What’s great though is the amount of free services and software available today which allow you to have extremely low upfront costs and minimal recurring costs. Here I’ll list a couple of the tools we started using for our business and the reasons why we chose it over other alternatives.
Operating System (development): Mac OS X (Snow Leopard)
How we use it: Write code in our favorite IDE (see below), and other typical tasks.
Why we chose it: This wasn’t exactly a choice as using the Ruby on Rails framework (see below) already bound us down to either Linux or Mac (if you didn’t know, it’s almost impossible to get RoR running flawlessly on Windows — we tried). Since the typical choice for RoR devs was to use Macs, we followed suit. There was also the fact that I was already a Mac user (so was Harry to some extent) so we tipped the balance a bit (sorry Linux fans). We did have to buy some new hardware though, but everybody loves their shiny new Mac/Macbook Pro
Operating System (production): CentOS (5.6)
How we use it: We use CentOS to run our whole web stack.
Why we chose it: We chose CentOS because as the system administrator, I have a lot of experience with it (compared to other linux flavors like Debian). I originally used it for deploying an internal web server at the previous company I worked at and I have been using it ever since. CentOS is basically Red Hat Enterprise Linux without the cost of support but all the enterprise level goodness (stability & security).
Project Management: Basecamp (Free)
How we use it: We use Basecamp to track tasks for each team member and also to track larger milestones.
Why we chose it: This was a no-brainer for us as some of us already has used this product and liked it a lot for its minimalism.
Source Control Management: Mercurial
How we use it: We use Mercurial to version our code and we also use it to deploy our application in production.
Why we chose it: There is a lot of debate online about Git vs Hg but it’s become clear that the choice between the two is typically more about personal preference than a checklist of features. This definitely is the case for us. The dev team had experience with Mercurial already so it was an easy choice. As to why it was our preference in the first place, it stemmed from our great experience of using Mercurial with TortoiseHg on Windows in past projects. Before DVCSs became popular, we all had used TortoiseSVN. What’s unfortunate however is that TortoiseHg isn’t really compatible on the Mac so we had to resort to MacHg.
Source Control Management Part II: GUI: Source Tree ($60)
How we use it: When we need to push or pull code we use Source Tree. We use the command line as well but we prefer having a proper visual interface to speed things up a bit for things like diffs.
Why we chose it: We tried all the other GUI tools out there for Mac. MacHg was the best choice if we wanted to go free, but it’s workflow is lacking quite a bit. After hearing about a 10% discount from BitBucket we jumped ship immediately to Source Tree and we are happy we did.
Source Control Management Part III: Merge tool: FileMerge (Bundled with Apple’s X Code)
How we use it: Do 2 or 3-way file merges when we have conflicts in Mercurial / Source Tree.
Why we chose it: It’s free and comes bundled standard with X Code. While we would of preferred to switch for a superior tool like Araxis Merge and the nicely designed Kaleidoscope (which does not support 3 way merges) this has to do for our tight budget.
Source Control Management Part IV: Central Repository: Bitbucket
How we use it: We store all our source code on Bitbucket as our central repository and maintain several branches there under one private project. Our dev team are all collaborators.
Why we chose it: Once we chose Mercurial this was another no-brainer. It’s not as awesome as GitHub but it’s a close second feature wise. But better yet, since its acquisition by Atlassian, Bitbucket’s pricing changed quite a bit and for the better. We can host unlimited public and private projects as long as we remain under or at 5 collaborators (with write rights). This is perfect for as since we are only 3 developers and require private repos.
Web Framework: Ruby on Rails (3.1)
How we use it: Rails is the programming logic that serves the HTML pages for our site. There isn’t much else to it but it’s where most of our work consists of.
Why we chose it: Rails has grown tremendously in popularity in recent years and without a doubt people are taking notice. I originally heard about it when it was still in its infancy in 2006 but quickly dismissed it as “too magical”. Looking back, I should of seen that in much better light as I started liking it as soon as I first started using it last year and indeed it was magical. What do I mean by magical? Rails — and to some extent the Ruby language — simply does what you want to do in half the steps than any other framework I worked with or heard about in a convenient and intuitive fashion. Not only is it quick to pick up, it’s sexy. Of course, that’s not only because of Rails but Ruby as well but that’s why it’s a deadly combo. Rails also has a whole lot of plugins that extends it beyond the general purpose framework and is much more of an ecosystem. With Ruby you get RubyGems. And with it you can install “gems.” Gems are basically plugin packages that resemble compiled libraries for a language like C as they never mangle with your source code. Then comes in Bundler. Bundler itself is a gem, but what is does is that it manages the gems for your application. In our case that would be a Rails application. The great thing about it is that you don’t have to worry about updating any source files by hand and simply run the “bundle update” command and your gems get updated automatically. Of course there is much more to it but that’s not the object of this post. Rails is a gem as well so you can see how the ecosystem is really built to give the least pain possible to keep up with the framework updates.
Data Store: MySQL, Memcached
How we use it: For permanent storage of information we use MySQ. To speed things up a bit we cache some things in memory for faster retrieval of frequent queries . We do not yet use Memcache much however, we need to write most of the site first to see where its needed the most.
Why we chose it: We chose both based on popularity and stability. MySQL has been around for many years now and so has Memcache and is used for production overwhelmingly compared to other solutions. At this point we don’t foresee the need for other data stores but only time will tell.
Productivity Tools: Google Apps (Free)
How we use it: We mostly use it for email, but having the other stuff in there is nice (docs especially).
Why we chose it: Again another no-brainer since there is nothing out there that compares to it and is free. Since we started our business in March we were lucky to get grandfathered into the free account with 50 users instead of the new limit of 10.
Hosting: Linode ($20/mo)
How we use it: We are only running one instance currently and it’s actually live at tutorwith.me but there isn’t much there today besides a form to collect emails of people interested in participating in the beta. We are in the process of setting up a staging area that is internal only at live.tutorwith.me so that we can see how the next version that we will push to all users will look like. This way we we can hammer out bugs before they are visible to the public.
Why we chose it: Having tried many VPS solutions out there including but not limited to Rackspace, Media Temple and Amazon EC2, Linode is the clear winner in terms of performance for the price you pay. They were also very generous recently and treated everyone with a + 25% disk space for their 8th anniversary.
We will have more similar posts on the future as we adopt new tools in our arsenal.
One Response to Tools of the trade
Leave a Reply Cancel reply
What do we do?
We are a marketplace for students and tutors where they can meet online and learn in a virtual classroom environment.
Visit our homepage →Tags
alpha API awards coffeescript contest Dobson Seed Competition elasticsearch family fixes friends highlights hovercard javascript John Molson School of Business jquery jquery tools launch launch party Mac new features profile Rails REST Ruby ruby on rails save space SIFE Concordia tire tutorial Tutorials tutor with me updates virtual environment WindowsTweets
- We are sad to announce that Tutor With Me is shutting down - http://t.co/YM1urL6ccZ 12:13:20 AM May 19, 2013 from web ReplyRetweetFavorite
- New post: Looking back at 2012 http://t.co/IF4xVBoP 10:23:14 PM December 29, 2012 from Tutor With Me Blog ReplyRetweetFavorite
- New post: Contest Extended! http://t.co/Hk0SAevt 12:48:31 AM December 20, 2012 from Tutor With Me Blog ReplyRetweetFavorite
- New post: What's new this month: November http://t.co/L69MlQg4 02:17:40 AM November 25, 2012 from Tutor With Me Blog ReplyRetweetFavorite
- @localeapp Hello from the Tutor With Me team! Thanks for the Ts :) http://t.co/aLIaHvzG 05:07:34 PM November 24, 2012 from Camera on iOS in reply to localeapp ReplyRetweetFavorite






Mate — thanks for the Bitbucket plug!
Would you mind emailing me? Bitbucket would love to send you a t-shirt as a way to say thanks! jstepka – bitbucket.org.