Steve Jobs on intelligence

September 14, 2011

Everyone is talking about Steve Jobs right now. Other people are better at describing how important his contributions were.

It's as good a time as any to share one of my favorite pieces of his. It's a speech that he gave when he was just 26 years old at the Academy of Archivement.

Direct link: Audio [Quicktime]

Hacking the Customer Acquisition Game.

May 2, 2011

Around 2 years ago I spoke with my friend Tim Ferriss about growing Shopify, the eCommerce company I started in 2005. The biggest challenge of building a business is customer acquisition. It seems crazy because we have this amazing product that everyone seems to love. Shopify produces millions in wealth for its customers and costs them considerably less money and aggravation to use. I asked Tim, “why don’t more people just try to open online stores.” I should have asked, “why can’t we hack the customer acquisition game like we hack code?”

Tim paused for a moment and said something like this: “You spend all this money on advertising but have you ever thought to just give it away instead?” Paying people to use my product? It sounded just crazy enough to work. So off we went… we took an entire month of marketing money and simply gave it away. We put together a contest that gave away $125,000 in prizes for whoever built the most successful online store in 6 months.

The rest, so they say, is history. Almost 1,400 businesses were created as a result of the first Shopify Build-A-Business contest. Those are all businesses that wouldn’t have been created some financial incentive?. Amazing success stories like DODOcase found their start in this program. DODOcase is now a multi million-dollar company. What’s even crazier is that they’re not the only ones. The alumni of our contest could fill an entire Harvard Business Review worth of case studies.

We hacked the game! People don’t need flashy retargeting? ads and contextualized bullshit. What people need is a kick in the ass. Everyone knows the stories. You’ve all heard the fairy tales of people building online stores and making millions, but it always seems like the good ideas are all taken. However, what people forget is that online commerce is not a zero sum game. Here’s the dirty secret of internet retail: There are never enough online stores.

Retail in the US alone is a multi-trillion dollar market. Every year a higher percentage is being spent online. Granted, a big chunk of this is going to the usual suspect: Amazon.

However, Amazon.com is the Wal-Mart of the Internet. Who goes to Wal-Mart to shop? Lot’s of people, but not the people who actually like shopping. Hear me out… when I go shopping for clothes, I go to my favorite place in Montreal. The store is incredible; brick walls, beautiful lighting, even a DJ booth with great music. You would never see a squeaky floor in a place like this. The experience is designed to impress, the staff knows everything you ask them, you buy something, love it and you will come back. Everyone comes back.

How often do you have an experience like this online? Truth is, not as often as I would like, but they do exist. Shopify stores Evisu and DODOcase offer a boutique like experience that’s a far cry from the linoleum floor and fluorescent lighting of a big box store’s online offering. In fact, most of Shopify’s almost 14,000 stores break the mold of traditional eCommerce stores.

In any case, let’s get back to hacking the customer acquisition game. I’m going to put my money where my mouth is. As I mentioned, last year we gave away $125,000 in prizes. This time it’s personal and we are going to make it bigger and better. Today we are launching the second act of the Build-A-Business contest. Tim Ferriss is joining me again and we’re also partnering with Seth Godin and Gary Vaynerchuck. This killer team of mentors is going to work with the contestants through emails, advice, videos and even one on one sessions.

My biggest regret of last years competition was that we failed on the education side of things. This year it’s going to be different. You will be blown away.

Ok so now I hope I have sufficiently made my point and fully “acquired” you. Run, don’t walk over to www.shopify.com/contest and build yourself a life altering business. We see success stories at Shopify every single day. Please join us. We want you in the ranks of the Build-A-Business alumni.

Can’t wait to write the cheques!

Clarity in log files.

December 6, 2009

Log files are one of the most important aspects of any web service. A webapp with a well designed logging strategy will allow you to essentially go back in time to track down even the most obscure bug. Unit tests have diminished the importance of log files somewhat but how do you write a unit test for a bug that only happens on server 2 around 2am in the morning when user fred is logged in?

Most of us run exception notification services such as exception_logger, hoptoad, exceptional or simply but log exceptions to a DB table ( MySQL protip: make that table MyISAM, otherwise exceptions that are added during a transaction will be removed when that transaction rolls back – duh ). Those exception notifications are great but they never provide a lot of context for how the user got to the point.

Lastly there is also the role that log files play in customer support. Have you ever gotten a complaint about data disappearing from your service? With good logging you can tell your customer in a matter of minutes that employee Bob went on data rampage friday evening before handing in his resignation.

At Shopify we use syslog-ng to have a centralized logging server which collects all the logs from the various machines in our cluster and combines the log files together. We used to give everyone access to this box for log analysis but as we grew this became a bit impractical. To solve this, we created Clarity, which provides a very nice web interface for the two staple tools of log analysis: grep and tail -f.

Clarity is very lightweight and only requires a few dependencies such as eventmachine and json. It’s completely evented which means that you can have many different greps and tails running at the same time on a single instance (as much as the server can handle). It even stops the grep utility on the server when you hit stop in your browser.


  ~  $ sudo gem install clarity 
  Password:
  Successfully installed clarity-0.9.8
  1 gem installed
  Installing ri documentation for clarity-0.9.8...
  Installing RDoc documentation for clarity-0.9.8...
  Could not find main page README.rdoc # anyone know how to get rid of this?!
  Could not find main page README.rdoc
  Could not find main page README.rdoc
  Could not find main page README.rdoc
  
  ~  $ clarity /var/log --include '*/**'
  Clarity 0.9.8 starting up.
   * listening on 0.0.0.0:8080
   * Log mask(s): */**
  

Additional command line parameters are:


~  $ clarity --help
Usage:  clarity [options] directory
 
Specific options:
    -p, --port=PORT                  Port to listen on
    -b, --address=ADDRESS            Address to bind to (default 0.0.0.0)
        --include=MASK               File mask of logs to add (default: **/*.log*)
        --user=USER                  User to run as
 
Password protection:
        --username=USER              Enable httpauth username
        --password=PASS              Enable httpauth password
 
Misc:
    -h, --help                       Show this message.
 

Clarity is now used by our support staff on a daily basis. It’s been so successful internally that we decided to release it as open source. You can read more about it on the github page. The URL structure of Clarity is pretty simple so it’s easy to add links to your internal admin area that directly open log files with the appropriate terms prefilled. You can for example add a link to a search that shows you all the DELETE requests of a certain store directly to your support system. This means that blaming Bob will only take one click in the future.

So, about this Shopify Platform

June 2, 2009

Today marks two events.

First, Shopify was launched exactly 3 years ago. I started hacking on it more than 5 years ago, originally just for myself so that I could sell snowboards online, free from the tyranny of horrible online store software such as Yahoo Stores, but it quickly grew into something much larger. Now we are a profitable multi-million dollar company with one of the best teams in the industry. It’s been an amazing ride, at times a bumpy road but never less than exhilarating.

The other event is the launch of something I’m infinitely excited about: the Shopify Platform. Let me explain. E-commerce is one of those software areas where individualization matters. This has been clear from day one of running Snowdevil and selling our first snowboard. If you build a store on the Internet you are providing a customer experience that is not unlike walking into any physical store in the downtown area of the town you live in. If the floorboards squeak, the wall colors don’t match, if the service is slow or the lighting is off, you will not like the experience. You won’t be back. There will probably be no sale. This goes for online stores as well. An online store must look good because you are building a brand of trust with your client. Poor design begets poor customers and poor customers lead to unsustainable margins. This is the reason I wrote liquid, which allows you to build awesome looking stores on Shopify.

However, there are a lot of common elements to every e-commerce store. There is this small nucleus of core functionality that all software has to provide (and most do). These are things like inventory management, order processing, payment processing, shipping support and so on. Shopify excels at all these things—our customer satisfaction rate is north of 90%. However after you are done with all those features something funny happens. The next feature everyone wants is different for each store. Some people want live auctions, some people want a wholesale area, some people want community forums, license key generation, digital delivery, integrations with MS Commerce Server, Oracle Inventory, international tax form printers, etc.

None of these features is particularly hard to implement. The problem is that they fail our basic test which we use to determine whether we should implement a feature or not: Implement what most people need most of the time.

There is no cheating. Digital delivery is only needed by some people most of the time and international tax form printing is only needed by some people some of the time.

The trouble is, if we were to add all these features to Shopify, we would simply end up with software like the others on the market; filled to the brim with features that only some people need some of the time. I’m a firm believer that every time you add a feature to you are diminishing all other features. Adding features and especially adding elements to a user interface is not something to take lightly.

So that is the solution. Facebook and Salesforce showed us the way and this is what we are bringing to e-commerce: We are turning Shopify into a development platform and our merchants can supplement the pristine Shopify core with only the additional features they need. E-commerce à la carte.

The Shopify platform allows any programmer to create applications that integrate natively with the administration interface or storefront. These applications can be written in any language and communicate with Shopify using our handcrafted REST API. We even provide some amazing rails generators to get started quickly.

Obviously we need developers to make this happen. Reasons why you should develop for the Shopify Platform:

  • Super fast start with the Shopify App rails generator
  • Automatic marketing through the Shopify Application Store
  • Soon we will launch the monetization system that allows you to bill merchants for using your applications directly through Shopify’s monthly billing system. We will deposit the money to you via Paypal.

The sum total is that Shopify is now as extensible as any self hosted Wordpress system but still hosted on a world-class server farm. It’s the best of both worlds and surely will be the way a lot of hosted apps will develop in the coming years.

Exciting times.

Future Ruby

May 27, 2009

My friends from unspace are putting together FutureRuby, the spiritual successor to Rubyfringe which turned out to be one of the best conferences of last year.

The theme of the conference is obviously the future of ruby but one thing that is clear from the lineup is that the event doesn’t forget that ruby is part of a greater ecosystem and that ruby is as much a language as a mindset.

One great example of this is this workshop which Dan Grigsby is putting together which teaches iPhone development specifically to Ruby developers.

Shopify is shipping 8 people to the conference. Hope to see you there :-)

Gazaro launches

March 18, 2009

Ottawa friends of mine launched Gazaro, a really remarkable comparison shopping engine that transcribes a full history of price fluctuations and allows you to see how good of a deal a deal really is.

I’ve been using it for the last few weeks and it really works great, give it a try.

Now to get Shopify’s product base on there…

Older Entries »»