Sorry this page looks weird. It was automatically migrated from my old blog, which had a different layout and different CSS.

Choose Your Battles

I was struck recently by the similarity between Marco Arment’s approach to Instapaper and Maciej Cegłowski’s approach to Pinboard.

First Marco Arment:

Tumblr didn’t have a dedicated server administrator until a few years into its life, so I had to be our de facto server administrator in addition to my primary developer role from Tumblr’s start until we had 48 servers handling about 5,000 requests per second.

Since that’s a sizable infrastructure, but we had very little time to devote to maintaining it, I had to choose mature, stable technologies with great tools and very low administration needs. And I built Instapaper on the same technology: PHP 5 with a custom high-performance MVC framework, MySQL, Memcache, Apache, and CentOS, on high-end dedicated hardware.

This proved invaluable to both Tumblr and Instapaper, since I don’t need to deal with webserver processes crashing, corrupted databases, or any serious platform issues. All of these tools are used by many other companies with deployments much larger than these, so nearly all of the bugs get worked out long before they get a chance to affect us.

The result of all of this platform conservatism is that I can spend my time improving the product in meaningful ways instead of fighting with my server software.

Marco Arment, Rands In Repose interview

And now Maciej Cegłowski:

I believe that relying on very basic and well-understood technologies at the architectural level forces you to save all your cleverness and new ideas for the actual app, where it can make a difference to users.

I think many developers (myself included) are easily seduced by new technology and are willing to burn a lot of time rigging it together just for the joy of tinkering. So nowadays we see a lot of fairly uninteresting web apps with very technically sweet implementations. In designing Pinboard, I tried to steer clear of this temptation by picking very familiar, vanilla tools wherever possible so I would have no excuse for architectural wank.

The other reason I like the approach is that the tried-and-true stuff is extensively debugged and documented. The chances of you finding a bug in MySQL or PHP as the author of a mid-sized website are microscopic. That’s not the case for newer infrastructure like NoSQL or the various web frameworks.

Maciej Cegłowski, Read Write Web interview

They seem to know what they’re talking about: both Instapaper and Pinboard are growing strongly despite — or perhaps because of — being more-or-less one man bands.

Andrew Stewart • 14 February 2011 • Deployment
You can reach me by email or on Twitter.