Uses This

A collection of nerdy interviews asking people from all walks of life what they use to get the job done.

A picture of Paul Ford

Paul Ford

Developer, writer, CEO (Postlight)

Posted in developer, mac, linux, writer

Who are you, and what do you do?

My name is Paul Ford. I'm a co-founder and CEO of Postlight, a close-to-60 person digital product studio in Manhattan. We design and build web applications, mobile apps, and APIs for our clients and for ourselves. I'm also an essayist who likes to explain technology to broad audiences and apologize for still loving the tech industry. With my co-founder Rich Ziade I host a podcast on tech called Track Changes. And I'm a co-parent to seven-year-old twins.

What hardware do you use?

My phone is a maxed-out Google Pixel 3, which I use for phone things: Email, reading, web browsing, messaging, music, and taking pictures, and as an interface to the New York City mass transit system, especially the buses. I also use its location-sharing to let my spouse know where I am, and she does the same. It's intrusive, but handy. Yesterday I took the kids out on a day trip. She could look to see if we were on the train headed home, and then started up the grill on our deck.

At work I use a maxed-out 2018 MacBook Pro 13-inch laptop, and a sequence of adapters that power a 2004 Apple 30" Cinema HD screen that is vast and matte and sufficient for the quality of my vision. Many of our employees are not in New York City, so I do a lot of Google Meet meetings, so we use Google Meet speakermics, which allow for full-duplex conversations, which makes conversation far more organic. That device turned Google Meet from something exhausting to something really good. I also use a maxed-out 12.9" iPad Pro for meetings and note-taking, with the Apple Pencil and Smart Keyboard.

At home I have a maxed-out Huawei Matebook X Pro running the latest Ubuntu Linux, plugged in to some random and sufficient monitor. It is a shameless, down-to-the-packaging ripoff of the before-they-screwed-up-the-keyboard-era MacBook Pro, and thus just a lovely machine. The screen is as sharp as a papercut, and typing on its keyboard is like squeezing a kitten's paws. Sure, it's the only computer I know that says it's uploading updates instead of downloading them, and on bootup it plays "March of the Volunteers," but the Ministry of State Security agent assigned to my laptop promises I have nothing to worry about. (Those are some little jokes for people keeping up on the latest Huawei news.)

I also keep an old 2014 MacBook Pro up-to-date for when I need to update Keynote presentations at home or do other things that require platform lock-in. Our apartment is full, so my "office" is a shared space in a corner by the bed, and my wife uses it when she works from home. We have a KVM switch so that we can bounce between a number of different machines. At both home and work I use Microsoft Sculpt ergonomic keyboards and mice. I used to love Das Keyboards (clank! smack! thump!) but even the quiet ones are too loud when someone wants to sleep nearby, so those are in the closet. There's a lot in the closet.

I have plenty of Raspberry Pi computers. I buy them reflexively when new ones come out. Sometimes I wait a month or two but I always give in. Most of them are just sitting in wire baskets but one is running Pi-Hole to block trackers. Each seven-year-old kid has a low-end Acer Chromebook, which they use for games and NetFlix on weekend mornings. They're learning to text and email. I do a lot of reading on a Kindle Paperwhite at night, so I can keep the phone away from the bed, and we have a Nintendo Switch, which I don't play too much, but people do like Stardew Valley.

My basic recipe for work-related machines is to buy the best medium-range machine available with max memory and a good processor, and then stick with it for years without touching the hardware. It's a little like buying the "good" IKEA furniture: You get the discount of mass production but it doesn't splinter to the touch. Or I buy fun junk to play with. But I don't try to make the fun junk work for work, even if it's tempting.

And what software?

The core of my life is in the free software text editor GNU Emacs. I am writing this in Emacs right now. 80% of my life is spent in Emacs, using a "mode" called Org mode. Org mode is a notebook + writing environment + TODO list + agenda manager + coding environment. But everything is saved as plain text, and everything can be converted to HTML, Microsoft Word/Google Docs, or PDF. You can add links to other files, emails, or websites. Code snippets can be included. Emacs is hard to learn, and Org mode is harder, but taken together they offer a sustainable way for me to do things. I've used Emacs for decades and it's possible I will continue to use it until I die; it is a lifelong piece of software. Like Unix, it has been around as long as I have, and keeps evolving.

With Org mode, everything you're doing can be dropped into one big text file, and can then be organized in a very large hierarchical outline. So I have categories for work, writing, personal, and so on, but it's still one big text, and text files are easy to back up and store. It can be synced with Dropbox, and I'm also starting to check it into a repository using the git version control tool. You can point to sections of the big text file and turn them into HTML for emailing, or turn a section into LaTeX code, which then can be turned into a PDF. Or you can feed Org mode content through the command-line tool Pandoc, which can output Microsoft Word documents as necessary.

Fonts are software. I use the IBM Plex font family for all my daily work. It's an open source font family and available everywhere you'd find fonts, including Google Docs. It has a great monospace as well as very complete serif and sans-serif. IBM is a vast incomprehensible organization, but wow did they settle on a single typeface. I spend a lot of time with words and I like having typographic consistency in every environment. Wherever I go, Plex is there.

I use Firefox as my default web browser. I used to use Google Chrome but it started to feel like it was using me. (I still use lots of other Google products; Chrome simply started to get a weird, scratchy "mouth feel"; I feel the same way about Chrome as I do about quinoa in a salad.) I just like Firefox more, anyway. I like the containers, which let you use multiple accounts at once without a lot of fuss, and the way pinned tabs work. It also has a good developer mode, and is especially fast these days. I still use Chrome on my Pixel phone and Safari on the iPad but I'm ready to move to Firefox on those, too. Just a matter of time.

I use 1Password for password management. I'd probably just use the Firefox password manager but 1Password is good with family and corporate shared accounts and mobile and Linux. We live in a world with so many passwords, God only knows how anyone logs into anything. I use good two-factor auth and review my settings regularly. Still, I live in fear like everyone else.

Google's Gmail is my email host. I access email in lots of normal, Google-endorsed ways: On my phone using the Gmail app, on the iPad using the Gmail app, and via the Gmail app running on Firefox. Where I likely differ is that I also use a tool called Lieer, written in Python, to automatically mirror all my email to my home and work machines every few minutes, and when that happens it kicks off an index process called Notmuch. I access my email in Notmuch through a special mode in GNU Emacs. I have 23 years of archived email from many accounts and have corresponded with thousands of people, so this lets me search my email for people quickly, something that Gmail simply cannot seem to do, despite Google being the world's premiere search company.

For example, in a few microseconds, I was able to see that we've been discussing me doing this interview since January 2011. (I hope the nearly nine-year wait was worth it. My setup back then is basically the same at its core: GNU Emacs, Org mode, Linux and Mac.)

Recently, I'm thinking of automatically turning my Twitter archive into fake emails and feeding them into my email archive so that I can have all of those connections in the search, too. I'm mostly off Facebook.

Note that I do not claim that all of this makes me more productive, merely that it makes things more searchable. I don't see computing as a way to be productive as much as I see it as a space to be thoughtful. And I really do like things to be nicely searchable and linkable. With Notmuch, it's very easy for me to turn emails into TODO items in Org mode. I can link the email to the TODO item and treat my whole life as a single linked hypertext. (It's unfortunate I cannot do this using the World Wide Web, but in 2019 the web is less about documents and more for restaurants.) It's also easy to briefly reply to emails from within my text editor, although doing so means I need to use a special mode called messages-are-flowing. This might surprise readers, but email is an awkward format with inconsistencies. Finally, I can compose complex HTML emails in Org mode and send them as mime messages. I also use a lot of "canned" messages to automatically reply to people or ask them to fill out a form to see if they are serious about their product. I become a robot to speak to robots pretending to be people. In these ways, and with the assiduous application of filters, and even though the world sees fit to send me many, many dozens of emails a day (most of them commercial pitches from semi-automated people who see the title "CEO" on my LinkedIn profile and get too excited), I keep my inbox to three or four messages at a time. As a result, my inbox contains only the most hand-curated, most painful, and most guilt-producing messages that the universe has seen to provide. It's a very painful inbox, but the portions are small.

This configuration is the same on my work and home computers; I manage all my config files using version control so that everything works the same wherever I go, and so that, when it is time to set up a new computer in a few years, the pain is minimal. Even at work it's all GNU Emacs every day, work or play. But of course work involves a lot of extra, work-ish systems, many of which I do not control (being a CEO is about listening). So now you have to layer in tools that other people might use. I use Google's office suite for many things, especially Google Sheets, which still works a treat. And Google Docs, of course. I wish they'd update it but what can you do. I am pretty angry about the state of Google Drive, which has a set of user experience patterns that makes me wonder if the designers are paid by the number of new files created, rather than by the number of old files found.

I still use Microsoft Office and Adobe Creative Cloud (see also). Office because I have to send documents/contracts to recalcitrant organizations who haven't made it over to Google Docs, and I also sometimes have to open mega-Excel documents, because Excel is the program that runs the world. Creative Cloud because I have the educational discount since I teach in the MFA in Interaction Design program at the School of Visual Arts, and I can't quite bring myself to be without Photoshop, even though I probably only open it a few times a year and can do most of what I need with apps that cost about $15 all-in. Mostly, after a long time in the tech industry, I live in fear of not being able to open some horrible file at night, when it is urgent, after all the people are asleep. So I spend hundreds of dollars a year just in case, as a kind of insurance. Subscriptions to Office and Adobe is a little like paying the Mafia not to wreck your store.

Then you're on to the regular suspects; Google Meet, as mentioned. But we use a ton of other software at work, especially GitHub, Jira, Basecamp, and tons and tons of Slack. Slack is our company, in a way, especially given our remote team (which includes a team in Beirut!). We built Dash, a tool for Slack that helps you make decisions. While most things you build you end up throwing away, we use Dash all the time. Those are the ones I'm in; the designers and engineers and product managers have their own tools that I don't use. We use Pingboard for tracking out-of-office times and the like, and we use Greenhouse for HR/candidate tracking. We're a software firm so we mostly complain about these tools. I don't know. They mean well. I guess maybe I'm asking for too much for my HR system to give me a sense of joy and happiness. God help us if we ever held all the software that promised to be "delightful" and "beautiful" and "the new way" to account, though. I guess they're beautiful to their VCs.

Every week I spend hours, usually starting Sunday night to manage the scaries, but then every single workday, using a customer relationship management tool called Pipedrive that lets our firm track client relationships and potential relationships. I move a lot of virtual cards around in a kanban board, talking to our managers as I do so, trying to make progress, updating numbers. As software goes Pipedrive is.. okay. It's always trying to sell me some other plan or upgrade, which is dispiriting. When your sales software is constantly trying to sell you something it's kind of suspicious. Isn't the $300 a month I'm giving you enough right now? It's like when I take my kids out for ice cream and on the way home they see an ice cream truck and ask for more ice cream. Nonetheless, this is a better solution than the past ones we have tried, and we are avoiding the full lifestyle commitment and endless howling upsell of going full Salesforce. With Pipedrive, when you "win" a contract they do pop up little animated sports figures who ride across the screen, so that's fun. Only one a day, though, which isn't very high-velocity of them. Yesterday we closed a contract and a bicyclist rode across the screen. Sometimes it's soccer. It's fun to imagine in reverse. Imagine a soccer player who scores a huge goal. To reward them, they're shown a small animation of a software sales-person landing a six-month CMS replatforming deal. Gooooooooaaaal!

When I'm meeting with people, or listening to people on the phone, or talking about projects, that's where the iPad comes in. On the iPad I mostly use an app called Notability that lets you write on "graph paper" - or annotate a PDF - with the Apple pencil. It will record a meeting, too, so you can send it out for transcript. I love this app. I love to write and highlight and scribble. It's the most wonderful feeling. Sometimes when potential clients send me long emails I turn those emails into PDFs (by printing them to PDF), then load them into Notability with very wide margins, and write my notes in the margins, with screenshots, captions, and diagrams, and send them back. It's a way to let people know that I'm really listening and trying to help them, not just talking. They see handwriting and know I'm committed. It's the opposite of robotic interaction.

I still spend some time in OmniGraffle for sketching diagrams, on both Mac and iOS. Mostly now I use it to sketch out processes and funnels rather than systems diagrams and platform architecture. Life! And also I still love OmniGraphSketcher, which is now open-sourced. You can draw and label arbitrary line graphs. It lets you think different thoughts and explore hunches instead of messing with data. Eventually you should back up your graphs with real data. But I like any software that lets you think out loud instead of having to plug in numbers to justify your existence.

I spend a lot of time in the command line or hacking things for fun. I use a terminal editor called Alacritty, which is GPU accelerated so you know it's good. I use a screen multiplexer called tmux, and write a lot of Unix shell scripts in zsh, the Z shell, which I manage via a framework called oh my zsh. On the Mac I use Homebrew to manage packages.

I tend to feed data-ish things into a tiny database program called SQLite, which I can't say enough about, it's just the handiest little thing. It has full-text search and you can basically dump any kind of information into it, then massage that information into something usable. Then you can run Datasette, which is an open-source front-end to SQLite (which is public domain), written in the Python programming language. It gives you an instant API and data explorer.

I like to program in Python, and JavaScript, via node.js, but also some Lisp-like languages like Racket, which has a great GNU Emacs mode where you can evaluate your code as you type along and build up routines slowly and thoughtfully. I try to do as much from the command line as I can. I also keep a lot of emulators around so I can run old DOS, Amiga, and Mac OS software. For some reason I like to emulate over the holidays. I'm not much about games; I like to see old apps and how they worked, and think through what's changed, and that's a lot easier than it used to be now that the Internet Archive has a vast trove of old software. What always surprises me is not how much things have changed but in many ways how little, especially around software. The hardware is so powerful now, but clearly it's hard to come up with new ideas in software.

What would be your dream setup?

Were I to be given any pony of my choosing, I would love for all of my data to be securely encrypted in a cloud I fully control. Then I would like to access that data using a variety of platforms and programs, including programs I write myself. And I'd love for my computers to do more things for me while I sleep. They just sit there like lumps when they could be working.

Maybe I'd have several hundred terabytes of local storage so I could mess around more with Wikipedia data. Sometimes I price out a home petabyte but it's still pretty steep. Like anyone who grew up in the age of floppy disks I'm enamored of storage. So there's a lot of 32-gig this and 4-terabyte-that floating around the house. I spend a lot of time looking at things like Storinators and thinking about what I'd do with all that free space.

That said, in 2019, with all the clouds and cheap laptops, and Raspberry Pis, I can have as much computer as I want. I can have lots of little computers, pocket computers, portable computers, server computers, kid computers, sensor computers, and so forth. I have computers that cost $5. But in truth there is little need for any more computer in my life. In general I'm extremely happy with all I have and I just wish I had more time to unlock the potential of my tools.