A Canvas for Thought

September 23, 2007

Craigslist Software Jobs: Canada vs. San Francisco

Filed under: perspectives,wild speculation — vednis @ 11:57 am

I recently checked out the Canadian Craigslist scene after reading some recent posts by Guy Kawasaki.  I’ve heard that Craigslist is big in the San Francisco Bay area, but how is it catching on in Canada’s largest cities?  I devised a small survey to compare the regions, and wow, what a difference.

I compared Canada’s largest city, Toronto, and the surrounding area (known as the GTA), to the San Francisco Bay area.  I also threw in Montreal, Vancouver, and their surrounding areas.  I looked at some of my software specialities, including the Python programming language and Linux, and at some general Web2.0 activity indicators.

As searched on Sept. 23rd, 2007:

S.F. Bay GTA Vancouver Montreal
Population (2006) 7 million 5.5 million 2.1 million 3.6 million
Python in Jobs 386 27 23 16
Linux in Jobs 1157 247 244 75
Ruby in Jobs 259 31 55 6
Python in Gigs 14 0 0 0
Ruby in Gigs 41 0 0 0
AJAX in Jobs 577 222 121 41
Developer in Jobs 1206 772 456 141
Software Engineer in Jobs 1458 98 99 26
Programmer in Jobs 269 234 169 80
Startup in Software Jobs 234 10 4 4
Startup in Internet Engineering Jobs 179 4 1 4

heri noted in the comments that the Montréal numbers are irrelevant, because most job postings will be in French.

Some interesting observations:

  • Why does everyone in S.F. want a Software Engineer, but in Toronto they only want Developers?
  • I have heard that the Linux scene in Toronto is pretty dead.  Answer: yep.
  • I have heard that Vancouver is a bigger tech hub, per capita, than Toronto: perhaps, going by the Cutting Edge Indicators (Ruby, Open Source/Linux, startups, and overall Craigslist usage).

Do keep in mind that this is just a survey, and unscientific in every way.  But do feel free to have fun with the numbers, and draw your own conclusions.

Technorati Tags: , , , , ,


September 16, 2007

Rails, Y-Combinator, and the E-Myth Revisited

Filed under: perspectives — vednis @ 5:45 pm

I have recently been reading a book called The E-Myth Revisited.  The author, Michael Gerber, lays out the foundation for building a successful small business using a franchise model.  I decided to measure two successful projects from the Web2.0 world against the franchise model: Ruby on Rails, and Paul Graham‘s startup-generating machine, Y-Combinator.  The results are interesting.

First, some background.  Gerber defines a successful franchise as a Turn Key Business Model.  You learn how the business model works, get the keys to the business, fire it up, and it succeeds; every time, it succeeds.  This model is followed by two of the most lucrative franchises in Canada: MacDonald’s and Tim Horton’s.  Starting either restaurant means that you start a successful small business, guaranteed.

Put another way, a successful franchise is a system, powered by people, that is guaranteed to run properly, so long as the system guidelines are followed.  Tim Horton’s is a system for running a profitable doughnut shop.  Rails is a system for repeatedly building robust, flexible, featurful web applications.  And Y-Combinator is a system for turning wizardly hackers into Web2.0 startup entrepreneurs.

Gerber states six rules that a business model must follow to succeed at the franchise game.  We can see some interesting aspects of Y-Combinator and Ruby on Rails’ success
if we look at how each follows Gerber’s small business franchise rules.  (Note that these rules must be taken together: they are an irreducible system, a whole of interrelated parts.)

1. The model will provide consistent value to your customers, employees, suppliers, and lenders, Beyond what they expect.

Rails fills this role in flying colours.  Diving into Ruby, Rails, and the Pragmatic bookself will have you building those super robust Web2.0 web applications very, very quickly.  And that is before you have even touched the larger Rails community, which is teaming with tutorials, plugins, and stories that will add untold value to an already successful application.

Y-Combinator is a dream come true for a hacker-turned-founder wanting to start a startup.  They deliver exceptional value by giving startup founders everything they need: legal advice and services, bookkeeping, market awareness, and other smart startup founders to bounce ideas off of.  The founder may be unbelievably creative, and you can turn out code like you wouldn’t believe, but they are still at great risk of running afoul of Gerber’s Fatal Assumption:  “if you understand the technical work of a business, you understand a business that does that technical work”.  ie, wizardly hacking != knowing how to run a business that employs wizardly hackers.  Y-Combinator is a system that teaches you, the wizardly hacker, how to run a business.

2. The model will be operated by people with the lowest possible level of skill.

Now, I should clarify exactly what “lowest possible” means.  The lowest possible level of skill may be “brain surgeon”.  The model must be operable at the lowest possible skill level because highly skilled people are expensive.  In comparing two similarly successful franchise models for brain surgeons, the one that requires less skill to run will be more successful simply because it has a larger eligible talent pool to draw from.  It would be easier to set up a franchise that requires “one brain surgeon and two assistants”, rather than one that requires “three brain surgeons”.

Rails makes doing difficult things simple because many tasks involving complex concepts have been neatly abstracted away.  Need a database table to store and maintain a hierarchical tree structure?  You need not read about nested sets, adjacency lists, SQL syntax, or time/space performance tradeoffs, and, more importantly, you need not spend time debugging the whole mess.  You simply add the line ‘acts_as_tree’ to you model, and you’re done!

Y-Combinator makes startups accessible to ordinary wizardly hackers.  Not hackers like Miguel de Icaza, or Paul Graham himself, but normal wizardly hackers with a bright idea that can be turned into code in three months.

3. The model will stand out as a place of impeccable order.

Here we see Rails shine through.  If you understand “The Rails Way”, and “The Ruby Way”, then many of the design decisions encountered while building a typical web application have been made for you.  There is an obvious place for everything, every piece of functionality or code.  Application deployment is clean, orderly, and portable across web hosts.  The risks and rewards for adhering to The Way are clearly laid out, they are flexible, but departing from The Way will involve trading away some of the advantages that the platform brings.  (The Pragmatic books do an excellent job of communicating this point.)

Now, applying this rule to Y-Combinator is difficult for me, since I know nothing about how the course internals work.  But I would assume that first things first: get your idea written down, and get your legal paperwork out of the way.  Perhaps some of the “impeccable order” is evident in Y-Combinator’s stringent selection process: they prefer to fund startups that fit a certain profile, which increases their chance of success.

4. All work in the model will be documented in operations manuals.

The operations manuals for Rails are obvious, those being the Pragmatic books, the various cookbooks, and so forth.  Follow these, learn The Way, and success with your Rails projects is guaranteed.

Once again, I don’t know if Y-Combinator has anything like a manual.  But I will bet that many people would love to get their hands on the powerpoint slide decks that the company shows to each round of startup founders.

5. The model will provide a uniformly predictable service to the customer.

A company that understands Rails development will produce web applications that are flexible and robust.  However, Rails does not guarantee a decent user interface, competent project management, or clear client communication (look to SCRUM for that).

I would assume that Y-Combinator successfully delivers Web2.0 startups, because they are still going.

6.  The model will utilize a uniform colour, dress, and facilities.

OK, you got me on this one.  I can’t apply this rule to Rails or Y-Combinator without bandying about evidence of near-ubiquitous Mac, Linux, and Textmate usage in the web and startup communities.

So there you have it, an attempt to apply a new-found model to my world.  It will be interesting to see if Gerber’s ideas can be applied to other business models in the technology space: is Y-Combinator the only sure-fire way to build a successful startup incubator?  How well does Y-Combinator fill out the market strategy, customer awareness, and visionary components of a successful business?  Would it be possible to provide a Rails Turn Key Business franchise, a system for building world-class Rails shops, one that provides business assistance in the same way that Y-Combinator helps startups?

The E-Myth Revisited is a good book: I’d recommend it to anyone thinking about going into business for themselves.

Blog at WordPress.com.