Uses This


What do people use to get the job done?

Alex Payne

Alex Payne

API developer (Twitter)

Who are you, and what do you do?

I'm Alex Payne. I go by al3x around the Interwho. I work at Twitter in San Francisco as their API Lead. Our API is how we expose the things you can do with Twitter in a way that programmers can use in their own applications and websites. Part of my workday is spent writing code to make the API go, and part is spent helping developers out with their questions and suggestions.

In my free time, I'm working on a book about the Scala programming language. I geek out on programming languages, economics, culture, and theory. I DJ with a friend once a month.

What hardware do you use?

I have a 15" MacBook Pro, one of the final revisions before the current black-bordered unibody design. It's got a 2.6 GHz Core 2 Duo processor and 4 GB of memory. I hook it up to a 30" Cinema Display when I'm at work, and I prop it up on Rain Design iLap when I'm at home. I type Dvorak, but I leave my keycaps in their factory default QWERTY layout.

Instrumental to having just one machine is a good networked storage and backup strategy. I have a ReadyNAS NV+ at home with about 750 GB of expandable RAID storage. Most of the disk goes to store media that I'd flip out if I lost, and the rest goes to Time Machine backups. I've also started backing up essential files with Backblaze.

I always have my original (pre-3G) 8 GB iPhone with me. I listen to Shure SE110MPA headphones on the go and Audioengine A5 speakers over an AirPort Express at home. My home network is tied together by a Linksys WRT54GL wireless router running the Tomato firmware.

And what software?

I spend most of my day flipping between TextMate, Terminal, Safari, and a Fluid app for Gmail. I write Scala and Ruby code in TextMate, run tests and such in Terminal, and answer hell of email with Gmail. I keep Safari mostly ad-free with Safari AdBlock and speed up searching with Inquisitor.

I use iChat for IM and Twitterrific to interact with Twitter. iCal syncs up to Google Calendar for scheduling, and Things keeps track of my tasks on both my MacBook and my iPhone. I've recently started journaling, and I use MacJournal for that. I keep a big library of PDFs (academic papers, presentations, books, &c.) in Yep. I've taken to storing sensitive files in encrypted disk images managed by Knox.

I also run some of the usual "power user" Mac enhancements: TextExpander to make emails go faster, LaunchBar to get to what I need quickly and to keep my clipboard history accessible, Growl and HardwareGrowler to get visual notifications from software, and Caffeine to keep my Mac awake while watching web videos and such. I keep tabs on my machine with iStat pro.

We use Dropbox at Twitter to share documents, and we make pretty extensive use of Google Apps. We use Trac for ticketing internally, but I keep API-related tickets public on Google Code. We do code reviews with Review Board and browse our Git repositories with cgit.

I've usually got iTunes or playing, though lately I've been listening to Bloom play itself when I need to focus. Speaking of focus, I use Isolator to get distractions out of the way. When I need distractions again, I see what's on my Instapaper or Google Reader.

What would be your dream setup?

Bill Joy said at this year's TED conference, "I'd argue today that we have incredibly powerful computers, but we don't have very good software for them". I'm of the same mind.

Hardware-wise, my current setup is a dream. I love having just one machine to look after, and I love that it's both portable and powerful; my only wish would be for a workday's worth of battery life. I can get decent network access nearly anywhere via HSDPA if Wi-Fi isn't available. The Cinema Display lets me sprawl out. My ReadyNAS gives me a sense of security about my data. My iPhone lets me leave the house with just my keys, my wallet, a pair of headphones and this one little magical device that can connect me to anyone, direct me anywhere, and entertain me for days. It's a good time for hardware.

Software is another story. I'm perpetually dissatisfied with my text editor, the tool I spend the most time with. OS X is the best Mac experience there's ever been, but it's hardly the best computing experience I can imagine. The iPhone is an incremental improvement, but I can't accomplish the majority of my daily computing tasks on it comfortably.

I want to interact with my computer in a fundamentally different way. The desktop metaphor is dead; a generation of children have grown up never working with the physical objects that the virtual desktop represents. What I really want is a modernized Plan 9, a software platform that's designed from the ground up for our networked, distributed world. If you try to placate me with the assertion that the Web is this new operating system I will become violent.

I want better software: more usable, more accessible, more open, more secure, more integrated, more seamless. I want a better software development experience. I want better programming languages with better development toolkits. Fundamentally, I want better abstractions for the same computation I can do today with all that lovely hardware.