Talking Tools: Marco Arment of Tumblr and Instapaper


Talking Tools is an ongoing series of interviews with people whom I respect as creators, communicators and craftspeople. The goal is to dig deeper into how these people work, what their toolboxes look like and how they engage in their own processes.

Today, I’m pants-on-head excited to be speaking with Marco Arment, the CTO/Lead Developer at Tumblr and the one-man band behind Instapaper, a service that allows you to read things later that I use every single day. He frequently shares interesting thoughts on technology (among other things) on his blog at marco.org. He’s a badass. Read on for a riveting discussion of programming languages, text editors and blunt force trauma-inspired career changes.

I’m guessing you use a computer or two - please tell me briefly about each machine you regularly use and its particular purpose.

My home and work setups are identical. In each place, I have a 2008 Mac Pro with two 24” monitors, a Microsoft Natural Ergonomic 4000 keyboard (the only Microsoft product I use), and an Apple Magic Mouse.

I also have a 2009 15” MacBook Pro, matte screen, that I use during my daily train commute and whenever I travel.

I recently upgraded the laptop and the home Mac Pro to SSDs, which I would highly recommend to anyone willing to get good ones (Intel X25-M or SandForce-based).

You’re a somewhat-outspoken fan of the Kindle - what were the last three books you’ve purchased? Were they any good?

My Kindle is mostly an Instapaper reader, although I do (very) occasionally read books on it. The last one I read, which was almost a year ago, was George Carlin’s Last Words, which I’d recommend for any Carlin fan, even if you’re only a casual fan.

Aperture, Lightroom, or Walgreens + Shoeboxes?

I used Aperture 2 for a while, but couldn’t handle its awful performance, frequent bugs, and confusing (to me) interface and file management. When I tried the Aperture 3 trial, it didn’t seem to fix any of those problems. So even though I could have gotten Aperture 3 for just the $80 upgrade price, I chose to spend $300 on Lightroom 3 instead.

Lightroom and I get along very well so far. I do miss Aperture’s easy integration with iTunes and iPhone syncing, but I don’t really miss anything else about it.

My dream photo-editing program would probably just be iPhoto with Aperture’s lossless RAW editing controls. But Lightroom is pretty great, and it seems to be more important to Adobe than Aperture is to Apple, so it seems to be improving at a rapid pace, whereas I always think that Aperture is about to be abandoned.

What’s your favorite program with which to write programs and why do you like it? What others have you tried and subsequently found lacking? Also, please provide a small screenshot of the color scheme/theme you use.

I used to try to do all of my coding in vim. That didn’t work out very well, because I never learned how to navigate it insanely efficiently like many of its users can. Plus, I like GUIs for editing, even though I still do almost everything else in terminals during development (MySQL commands, version control, test scripts, file processing).

So I use TextMate. I love it. I use it for nearly all of my text-related needs, including drafting long blog posts and emails.

We’ve spoken about coffee briefly in the past, so I know you’re something of an enthusiast - tell me about how you make an awesome cup of Joe and please be specific.

Currently, my favorite method is a simple pour-over filter cone with Kenya AA beans, as freshly roasted as I can get (which is usually about 3-7 days old). I recently detailed the equipment and process here.

I want to start home-roasting, but I’m waiting until we buy a house so I can have sufficient space and ventilation.

You built Instapaper to scratch your own itch, so to speak - how, if at all, has the popularity of Instapaper changed the product? Alternately, if you were still the only one using it, how would it be different from what it is today?

It actually wouldn’t be very different. It would probably be uglier, as I have pretty low design standards when I don’t think anyone else is looking. The non-critical functionality would also be more clunky and difficult to use, since I never would have had a reason to sand down the rough edges.

If you had to choose a single tool/application on your metaphorical tool belt that would be the hardest to replace, which would it be and what would be a likely replacement?

Probably PHP. I know PHP so well that I can be extremely efficient and productive with it. I don’t know any other languages in its class well enough to do anything useful, mostly because I haven’t yet needed to.

If I had to replace it, I’d most likely choose Python. I don’t care for Ruby’s style, but Python seems to be a solid choice. If I were starting a major web project from scratch today, and I could afford to spend some extra time, I’d almost definitely choose Python for it.

I’ve watched some friendly exchanges on Twitter between yourself and Jeff Atwood regarding PHP and you seem to generally come to PHP’s defense - what about that language do you like? Also, what do you find infuriating (surely, there must be something)?

Most people judge PHP on bad tutorial code they saw ten years ago. But it’s a very capable, advanced language that supports many modern programming amenities. And deployment is extremely easy: any Linux server can have Apache and PHP deployed on it, if it isn’t already, with one command to the package manager. Mac OS X already has both installed — Snow Leopard even includes the fairly recent PHP 5.3. And once it’s set up, you barely need to touch it. It’s very fast, very stable, and very low-maintenance. Almost everyone knows PHP already, and if you don’t, it’s quick to learn and easy to read (when written well).

But there are a lot of things not to like about PHP. Its method names, parameter orders, and general styles are inconsistent. Its core designers and Zend are all over the place and often make decisions that I strongly disagree with. It doesn’t have any practical support for parallelism. And nearly every third-party module or library I’ve ever used has been terrible.

Coding professionally in PHP is lonely. While I know this isn’t the case, it always feels like we’re the only ones using it at this scale, because we hit so many bugs in critical modules (such as PECL’s two Memcache modules) and libraries (anything from the Zend Framework and any community code) that seem like any reasonable use should encounter, but nobody talks about them or publicly fixes them. I’ve needed to discard a lot of third-party code and replace it with my own implementations because it just doesn’t work. Every time I talk to an engineer from another major PHP-using web service, such as Yahoo or Facebook, they always say the same things. But nobody’s public about it.

These are valid criticisms of the language. But what I don’t like are criticisms based on the ability to write bad code, or the large amounts of bad code in tutorials and popular PHP software. These are both mostly because PHP has been so popular (and so easy) for so long. It’s possible to write bad code in any language — whatever this year’s geek-darling language is, somewhere, bad programmers are writing bad code in it — but it’s less widespread than bad PHP code because every other web-app language is used far less often than PHP is, and most have been in use for much less time.

Moreover, it’s perfectly possible to write good PHP code. Tumblr, Instapaper, and some of our old consulting clients use a great PHP-5-only MVC framework that we’ve written over the last four years, which puts us in a great position: we have the advantages of knowing what all of the code does and where to fix bugs or add features, but we also have this mature, proven framework to do the heavy lifting and enforce good code structure.

So it works for us, and I think we made the right decision in 2006 when we decided to build on PHP. (Remember what it was like deploying Rails sites in 2006? Keep in mind that we didn’t have a sysadmin, and we were paying full price at Rackspace for servers.)

But, for starting fresh today, I think I’d choose Python because it appears — at least to me, an outsider — to have most of the advantages that PHP had when we chose it in 2006, but with better direction, better library quality, and parallelism.

“If I had to choose a single programming language to use for the rest of my career, it’d probably be __________. “

I hope I never need to make this decision.

I’m conservative with how many languages I learn. I currently would only describe myself as having workable knowledge — enough experience to be productive at reasonable speed without a learning curve — of PHP, C, Objective-C, and maybe Javascript.

There’s definitely a point of diminishing returns with learning new languages: it’s hard to be a productive programmer unless you’re an expert in at least one or two languages (including their respective platform libraries), and it’s hard to find the time to become an expert if you keep starting from scratch with new languages. I think it’s a good balance to have workable knowledge of three to five languages and maybe be an expert in two or three of them.

But I’d hate for new languages to stop being made or used, or for my career to settle on just one. I dislike parts of all languages. And whenever I see a great feature in one, I learn from it and try to apply its lessons to all of my coding. If that list ever stops growing, I’ll stop getting better, and I’ll probably get bored and burn out.

Can you tell me a little bit about your blogging process? Assuming it’s a somewhat-lengthy piece, where does it live as it’s being written, edited, primped and polished?

Usually, I’ll get an idea for a post at an inopportune time, like when I’m in the middle of doing something else, so I’ll quickly create a Tumblr draft post with just a title and maybe a couple of sentences to remind me what I was thinking of.

Over the next couple of days, I’ll write a few paragraphs here and there, or I’ll just sit down one night and bang out the whole thing. Then I’ll sit on it for a day or two to do edits or partial rewrites. If it’s only a few paragraphs, it’ll still be in Tumblr’s drafts. If it’s longer, or if I’m on my laptop, it will more likely be in TextMate.

Then, at some random time when I feel like it’s done, I’ll hit Publish.

You wake up in the morning and find that you have, say, 500 unread emails that weren’t there when you went to sleep. Tell me how you’d handle this and what applications/utilities make it easy (or easier)?

The Delete key works wonders.

The only way to deal with large amounts of email is to devise standards for deciding quickly whether to respond to something. And not whether you think you should respond, but whether you think that you realistically will. You have to be honest with yourself and brutal to the senders who don’t make the cut.

This is how most people work anyway, but they’re in denial about it, so they’ll let their inboxes collect thousands of messages and then “declare bankruptcy” after a while and start the cycle again.

I need to be able to judge, as soon as I see a new message, whether I’m likely to respond. I try to keep the inbox clear at the end of the day, because realistically, if I haven’t answered something within two days, I probably won’t answer it. So for each message, I ask myself, “Am I really going to have the time to respond to this today?” And if the answer is no, I move it to the archive folder with a keyboard shortcut and move on.

I don’t recall ever having read anything about how you manage tasks and such. How do you remember to pick up the freakin’ dry cleaning?

If there isn’t an iCal alarm or a message at the top of my email inbox about something, I probably won’t do it.

If some big dude clubbed you over the head with a tack hammer and you forgot how to write software, what type of work do you think you would do?

I enjoyed my high-school job at Bruegger’s Bagels. Now, I enjoy coffee. I might just open a coffee roaster somewhere where there isn’t a good one nearby (so, almost anywhere) and live wherever I could afford as a result.

Say we’re at the doorstep of the Apocalypse and you have time to drink and enjoy one last beer before humanity is extinguished - please tell me which beer it would be and what, if anything, you’d eat while drinking it.

Probably a Chimay Grande Reserve (“blue”). And maybe an everything bagel with chicken salad.

You have an hour or so before bed to spend however you chose - please tell me how you’d unwind.

I’d write.

Big dorky thanks to Marco for taking the time to talk with me. You can find Marco’s writings at marco.org and follow him on Twitter at @marcoarment. And, to quote El Gruber, “If you’re not using Instapaper, shame on you.”

Check out lots of other great Talking Tools Interviews.

Trackbacks

  1. are attracted to such graphics and hence…

    keep coming back to your blogs.write the right wayfinally, a lot depends on how you write your blog. flawless language with correct grammar and no spelling mistakes are a pre-requisite. a dash of humor will always help in getting people to…

  2. others and having them do the same…

    for you is great for your blog.there are many ways to write content on your blog and the main thing is to let your passion come through. the readers want you to feel passion about your blog and they want relevant…

  3. good article says:

    that’s related with that very topic.2.determinationin life…

    to achieve something you need a determined path.if you want to be a good blogger then you should be determined about your work. sushil kumar determined his path and thus made up to it.3.hard worknow you may have curiosity or determination…

  4. your writing skills. perhaps try to test…

    your skills by creating some articles on your own and posting them on your blog. if you get a good number of interested readers, then you are probably ready to take writing projects from here. let’s say that you are a…

  5. franchises says:

    you need to take in order to…

    create amazing articles for your blog:1. always start the process by doing keyword research. you would want to make sure that you’ll be able to address the specific needs and demands of your potential clients. so, know the keywords that they’re…

  6. is no place for me.the fundamental issue…

    is so few people understand what sci-fi actually is. there have been thousands of books listed as sci-fi which under the true definition don’t remotely resemble pure science fiction. fantasy and sci-fi have become interchangeable for so many that the …

  7. may have out-of-town relatives. if they are…

    planning on moving to town, prior exposure to your site through those kids could be good for you.)or perhaps you own a shoe store. blog posts which highlight walking and hiking paths in your area would be a good idea. a…

  8. list of things-to-do. perhaps summer can help…

    change things!use the sunshine and heat this summer to remove the hurdles and energize yourself to bring forth your creativity. there are a number of retreats which not only offer perfect ambience but also offer the advantage of connecting with other…

  9. business is to start a blog.i’m usually…

    met with a groan or glazed eyes until i describe the benefits.a blog can get you ranking higher on google for your keywords, build you credibility as an expert and help you become a reliable source of information that can be…

  10. tend to rank you higher in their…

    results! remember if you use your words wisely, the free traffic you get will be highly focused on exactly what you have composed! use your primary keyword in your title and place your secondary keywords, sparingly and naturally, throughout the opening…

  11. beginning, the company can help its bloggers…

    to fix timings for the release of the posts in chronological order. the blog topics become clear as the blog progresses. the editorial process involves reviewing of the blogs prior to allowing them to get published.ii) blog needs to have conversational…

  12. the latest topic. you can choose topics…

    that involve giving useful tips and strategies. such blogs are helpful and readers would want to read it. also, before you start writing, first jot down all the points that you would want to include in your blog. then expand on…

  13. there are many other cool ways to…

    get awesome backlinks and i am going to share some. the first and greatest is ezinearticles; this is the best and fastest way to get a respected backlink to your blog. just write an article and add a link back to…

  14. blog from twitter or linkedin. use mail…

    chimp or constant contact to turn your blog into a newsletter that links to your website. even if you don’t subscribe to them, add twitter, facebook, linkedin, google+, digg and stumbleupon icons so that readers can share your blogs.need more reasons?…

  15. easy way to make money, but how…

    much time are you willing to spend doing it?another way to monetize your blog is by affiliate marketing. again, this has been very lucrative for some of the successful online marketers. however, they are well established and well known so what…

  16. writing historical screenplays for the industry of…

    film and television. since it is more expensive and complicated to give a shape to historical screenplays, only the best of the lot get to see the daylight.what makes the job of a historical fiction writer even more difficult is the…

  17. writers who overwrite often lose their readers…

    before the end, or at least send their readers into agonies of groaning, along with the occasional laugh in the wrong place.despite everything your high school english teacher may have taught you, or you misunderstood in her class, using big words…

  18. blog?do you want to increase the number…

    of visitors reading your content?there are thousands of abandoned blogs on the net because they didn’t receive enough traffic to make them profitable or the owners simply lost interest. in order to create and sustain a blog you must be passionate…

  19. obtained a person’s email address. it’s good…

    to know where the email address came from. was it from social media, a lead nurturing campaign, maybe from an interesting blog post? it’s always a good idea to separate an email list into groups of top-of-funnel acquisition channels. make sure…

  20. personal experiences is that you can form…

    a bond with your readers and that is always good. add photos from holidays and make your blog personal, it’s easy to make a great blog that people can see is about you. add a profile picture to your blog and…

  21. your blogs net worth). don’t be concerned…

    with writing a long post. just write a post. make it original, in your unique style. write about any topic related to your sites theme that you are genuinely interested in. this sincere and real style sends a powerful message as…

  22. the arrival of mass media, article marketing…

    has been used to advertise companies, products and services provided by a brand or label through various techniques. despite being in existence for a number of decades, the real turning point of article marketing came with the advent of internet. the…

  23. Going Here says:

    answer their question or solve their problem,…

    not yours.6. in the body of the article, make sure you list the steps needed to easily solve the problem. keep it as simple and as easy as possible. using steps is the easiest way, but only one step at a…

  24. blog allows for two-way conversations with the…

    customers and businesses. since consumers can share their feedback in the blog, the businesses may check and improve the problems after hearing the feedback. so, customers may feel like the business is listening to them and responding to their wants. i…

  25. you have written that will help the…

    reader even more. link to high-traffic blog posts that are valuable by other authors and link to your affiliate links that will help them as well.9) edit and trim your posts. use the least amount of words as possible. read your…

  26. ipad says:

    type of work to your website.facebook fan…

    pageas facebook continues to pull in such a huge customer base, it would be prudent to have a fan page where you can talk about your work, your blog, new galleries etc. get people excited, lead them to your website. use…

  27. you can promote your products and services…

    easily through blogging. if you put your full efforts into online content and keep on learning as you advance ahead, you will learn the knack of making money through blogging.here are some of the reasons why you should think of writing…

  28. really be a fun thing to do…

    and getting feedback about your blog could also be fun and entertaining. in order to get more feedback, you will need to have more people who get on your blog and read what you have to say. whether you write a…

  29. Titanic says:

    you don’t, then you should get one….

    this can be one of the biggest things that can revolutionize your business. i started off with a blogger.com blog, and you can get started with one also for Titanic free. they have great tools that allows you to get up and…

  30. Mac väska says:

    article writing. i can tell you i…

    sure made a lot of mistakes in the beginning. one of my biggest mistakes was taking some of my previous work, and adding to it, producing articles that were over 1000 words plus with big block paragraphs, often riddled with sentence…

  31. very easy to spot. one indicator of…

    an overnight paper is the numerous errors that were not caught because there was no time to proofread. the best-written paper is one that is completed in advance and then reviewed at a later time. writing makes the world go round…

  32. makes a five-figure salary every month his…

    blog and Titanic he continues to get all kinds of media attention for it. he also makes money through social media and other internet marketing ventures and has built himself up to be a star in the blogging world.if you want to…

  33. Recent Blogroll Additions……

    [...]usually posts some very interesting stuff like this. If you’re new to this site[...]……

  34. car stereo says:

    in wordpress. it gives you more choice…

    and control when writing your blog posts or importing pictures. this is not an essential plugin really, more a preference.7. cbnet ping optimizer - this stops the over excessive ‘pinging’ of your website to search engines. wordpress by default will …