Uses This

Interview

What do people use to get stuff done?

Damien Miller

Damien Miller

Open-source developer (OpenSSH, OpenBSD)

Who are you, and what do you do?

I'm Damien Miller, an open source developer, amateur photographer, Information Security Engineer at Google, husband and parent.

In the open source world, I work on OpenSSH, some Netflow tools (softflowd, flowd), the OpenBSD operating system and various implementations of the BCrypt password hashing algorithm (jBCrypt, py-bcrypt). At Google, I help product teams with security and develop internal tools to detect and avoid security vulnerabilities. I suppose I'd summarise the theme of my professional and open-source work as "indispensable security tools".

Photography is a recent obsession hobby; representing a swing back to my long-abandoned undergraduate experimentation as an artist.

What hardware do you use?

Work desktop: A recent x86 desktop system with a HP 30" monitor running Google's variant of Ubuntu.

Personal desktop: A recent beige-box Intel Core-i7 desktop system with some Intel SSD drives, a large amount of RAM and a Dell 30" wide-gamut monitor.

Both my desktops have IBM M-series keyboards and Logitech mice attached.

Work laptop: An aging MacBook Pro (~2008), that I mostly for work while travelling.

Personal laptop: A Lenovo x61s that I had upgraded with a SSD and maxed-out RAM. I use used it for open source software development, mostly OpenSSH. Unfortunately, it died just last week and I'm stuck with the dilemma of choosing a replacement (see below).

I also keep a motley collection of servers for testing software I write. I have an old QNap NAS that I use to back up my photos to and a small Commell LE-575 headless network computer running OpenBSD as my firewall.

Camera: A Nikon D800 DSLR and more lenses than I probably should have bought. Mostly I use Nikon's 24-70 f/2.8G which, while heavy, is a practical, versatile and optically excellent lens. If I'm intending to shoot a portrait then I usually use Nikon's 85mm f/1.4D, which can be both painterly and sharp. If I'm indulging in street photography, then I reach for my Nikon's 28mm f/2.8D.

And what software?

Work desktop: I'm running Goobuntu (Google's customisation of Ubuntu). The only two desktop programs I have open with any regularity are a terminal window (gnome-terminal currently) and a web browser (Google Chrome); everything else happens in one of these two. In the web browser, I use Gmail, Google Drive (nee Docs), Google Calendar and a bunch of internal tools. In the terminal window, I edit code with Vim and usually have a bunch of ssh sessions open. On the rare occasions that I have to prepare a document to be printed that goes beyond the abilities of Google Docs (e.g. a conference paper) I'll usually use LaTeX.

Work laptop: Pretty much the same, except the operating system (OS X) and the terminal (iTerm2)

Personal desktop: I use this mostly for photo editing and the occasional videogame. It runs Windows 7, Adobe Lightroom 4, Photoshop CS6 and Nik Software's collection of tools for photography.

Personal laptop: Much like my work desktop, but OpenBSD as the operating system and Mozilla Firefox as the web browser (it's a bit more stable than Google Chromium on OpenBSD). It's also dual-boot to Windows 7 if I need to use Lightroom while travelling.

All my terminals use the Terminus font which, being a bitmap, is fast to render and very clean.

What would be your dream setup?

For software development, it doesn't matter too much how fast the computer I'm sitting at is if I can ssh to one (or many) that are faster. Given this I tend to care more about comfort and ergonomics of the computer that I'm at than its specification. I love the tactility of my ancient IBM M-series keyboards, but don't love their acoustics so much - the key action is somewhat loud. If someone invented something that felt like an IBM M series keyboard but made little or no sound, then I'd be forever grateful. Oh, and to any prospective inventors, please throw in a trackpoint with three mouse buttons while you're at it :)

On laptops, specifications matter a little more since I occasionally edit photos and often use them while off the net (e.g. on flights). I despair of finding an acceptable ultralight laptop in this brave new world of bad MacBook Air knockoffs with wide, glossy screens and junk keyboards. My dream laptop would basically be an IBM X40 with a modern screen (LED backlit, high-DPI) and innards. The X40 was, in my opinion, the pinnacle of practical laptop design: thin, light and having a 4:3 aspect ratio screen with a narrow bezel, a keyboard with a trackpoint, three mouse buttons and no touchpad. Furthermore, it was almost indestructible: mine survived a 60 km/h bicycle crash much better than I did, despite being in only a thin backpack. I have occasional fantasies of travelling to Shenzhen and paying some Bladerunneresque back-alley shop to shoehorn a screen from a recent MacBook Air and Bunnie Huang's open-source laptop motherboard into my old X40 to realise this. Back in reality, I'll probably buy another second hand X61s - it's the closest thing with a semi-recent specs.

On the software side of development, I'm pretty happy. I spend most of my time at the Unix command-line and it's a testament to the vision of its designers and the efforts of those who have tweaked, polished, refined and added to it since that it is still an effective and enjoyable environment four decades later.

For photo editing, I'm mostly limited by my imagination and skills. That being said, I'm surprised that there are no affordable high-DPI desktop monitors yet and certainly none that have a colour gamut suitable for photo work. When the technology that is now common in mobile device screens makes it to the desktop then we'll be within striking distance of something fantastic: a display system able to exceed human vision in tone, colour, resolution and update rate. I'm looking forward to a 30" monitor that matches the quality of a fine art print (though probably not so much to actually paying for it).

Previously: / Next up: