Bob Nystrom
Game and language developer
Who are you, and what do you do?
I'm Bob Nystrom, but, alas, not the 1980 Stanley Cup winning right winger for the New Jersey Islanders Bob Nystrom. Instead, I'm a scrawny programmer nerd who couldn't grow a mustache if he tried.
I was a game developer at EA for eight years. In addition to lots of internal tools and tech, I worked on a few iterations of Madden, had the misfortune of being the tools lead on Superman Returns: The Videogame, and finally worked on Professor Henry Hatsworth in the Puzzling Adventure. The last was, by far, the most fun project I worked on.
I have the bad habit of telling everyone everything I know, so I took what I learned there and wrote a book called Game Programming Patterns. Because I can't resist going meta, I also wrote some blog posts about writing the book. I haven't written any blog posts about writing those blog posts. Yet.
These days, I work at Google on a programming language called Dart. I am now a card-carrying programming language nerd. If you ever have the bad luck of meeting me in person, I will bore you to tears about "homoiconicity", "top-down operator precedence parsing", "mark-sweep garbage collection", and other terminology you've likely already lost interest in by the time you reach the end of this sentence. I maintain a blog about lots of this stuff that manages to stay under a fifth-grade reading level despite being packed to the gills with the aforementioned jargon.
Every now and then, I ooze out of the Internet into meatspace and give a talk on one of the above. I also write lots of little open source projects, mostly related to programming languages or games. Back before I had kids (read: "free time"), I was an avid photo nerd, but these days I rarely get around to processing the few photos I take.
What hardware do you use?
About two years ago, I updated my work laptop to an SSD MacBook Pro with a Retina display. It was damn near a religious experience for me. I love love love type, and seeing screen fonts with such gloriously sharp edges basically made all other hardware considerations irrelevant -- though the SSD part was nice too.
At work, I started using my laptop exclusively and eventually gave up my desk. There was a couch near my team, and I'd just sit there eight hours a day, laptop in its nominally proscribed location. Then, when I got home and got the kids in bed, I'd repeat the setup on my living room couch.
I don't know if it's my weasel-like torso or my scarecrow arms, but the setup is surprisingly comfortable for me. I'm using a larger screen and a normal desk at work these days, but I do kind of miss the purity of just me + laptop.
When I'm walking to work and back or sitting at my laptop, I usually have a pair of wonderful Phiaton PS 20 earbuds jammed into my auditory ports.
At home, I also have a 27" iMac I use for photos and that I used for doing the print layout of the book. When I do take photos, I use a Rebel XT body that has held up wonderfully along with a few prime lenses: 24mm f/2.8, 50mm f/1.8, 50mm f/2.5 macro, and 200mm f/2.8L. I have a flash, but rarely use it since I dig natural light.
The illustrations in my book are hand-drawn on an old graph paper notebook I found in a closet using a Pilot Precise V5 pen. I love the feel of ink on paper and kind of fetishize moleskines. But I'm also a lefty who smears ink everywhere he writes, so I've basically accepted that a computer is the best input device for me 99% of the time.
And what software?
I write all of my prose in Sublime Text, usually in Markdown, even my book. I don't think Markdown is the greatest markup format -- and having written a Markdown parser, I know exactly how hairy it is -- but after writing thousands of reddit comments in it, it's basically muscle memory at this point.
For C and C++, I also use Xcode. For Dart, I use IntelliJ. At EA, I spent years in Visual Studio writing C# and I still think that may have been the most productive development experience I've ever had. Other miscellaneous dev software that is usually running includes iTerm2, SourceTree, and QuickSilver. On the command line, I'm often typing "git", "sass", "python", and "ack".
I've been using Photoshop since version 2.5, before it had layers or multiple undo, so I can't imagine editing images using anything else. I used that to clean up all of the illustrations for the book along with the occasional bit of pixel art and other web shenagans.
I also use Lightroom for processing photos, but still do one last pass on them in Photoshop since I'm attached to adjusting RGB levels individually. I typeset the book in InDesign which (aside from general bugginess) was a really enjoyable experience.
My laptop has f.lux running on it which helps keep my sleep schedule happy while letting me stare at a screen twelve hours a day. It's also helpful for getting coworkers to ask why my screen looks like the prom scene in Carrie.
These days, music makes its way to me through Google Play Music All Access a wonderful service with quite possibly the world's worst brand name.
What would be your dream setup?
I'm sublimely happy to just be on a couch with my Retina Mac and some headphones. A giant Retina display on a desktop might be nice. But, really, the one thing that would massively improve my setup is more time. Between work and kids, there's just not enough hours in the day for all of the projects I want to hack on. Can I ask for a Time-Turner to be in my ideal setup? If so, that.