I rely on a lot of tools to get by. Here are some of the ones I stand by.

Statistical modeling


I’m biased towards Stan, but for good reason. Here are a few that come to mind:

Don’t get me wrong: Stan isn’t perfect. There’s still a lot of room for improvement, but it’s the best tool for statistical models that matter at the moment.

Honorable mention

PyMC3. If you’re completely pythonic, this is probably the tool for you.


Text / Code editor

I’ve been using Emacs since 1996. I can’t shake it. I’ve tried moving to other text editors and IDEs. I always come back.

My normal use case is to switch between C++, Stan programs, makefiles, and R scripts. I haven’t found another text editor that handles all of that well. If anyone knows of a decent C++ editor, please let me know. I miss Eclipse from my Java days for its autocomplete and refactoring support.

Honorable mentions

MacDown is what I use for editing complex Markdown documents like this one. When I don’t need to see the output rendered in real-time, I stick to emacs.

Atom is a text editor that’s put together by the GitHub team. It’s definitely more modern than Emacs and I use it now and again, but there are times when it lags, the indentation rules aren’t very good, and a lot of the plugins don’t work.

Tabs vs Spaces

Indent 2 spaces.

There’s no debate. Unless you’re writing makefiles, in which case you have to use tab.

Web Browser

I’m on Mac and Google Chrome is pretty stable. Since the email is controlled through Gmail, it’s useful having separate “People.”

Honorable mention

I used to use Firefox as my daily browser. One of the reasons I switched was the extraordinary amount of RAM it consumed.

Programming / Scripting

Here’s my order of comfort:

  1. C++
  2. Stan
  3. R
  4. Javascript (Node.js)
  5. Java
  6. html / css
  7. Matlab
  8. BUGS / JAGS
  9. Python
  10. Lisp

Here’s my preference:

  1. Stan
  2. C++
  3. Java
  4. Javascript
  5. Lisp
  6. html / css
  7. BUGS / JAGS
  8. Matlab
  9. R and Python (tie)

I find both R and Python to be clunky. I’ll probably catch a lot of flak for even saying that, but it’s true. They’re both scripting languages that are interpreted and dynamically typed. Python has a better package manager, but every time I tried picking Python up in earnest, I ran into installation issues and 2 vs 3 problems. R is R and you can’t win. I haven’t tried Julia, but I can get by in R well enough, so I won’t pick it up.

Revision Control System

Git > Subversion > CVS.

Git takes a while to master. Although I’ve pushed on bugs in Git and seen it improve over the years, it’s still the better paradigm for managing source code.




I’m on an iPhone now. I have no loyalty to Apple. In fact, Apple devices tend to fail on me. The last time I switched from an Android phone was for good reason: you can’t play back albums seamlessly. I listen to a lot of mixtapes and having a few millisecond gap every couple minutes is pretty annoying.

Honorable mention

My favorite phone to date has been the 1st generation Moto X. If I switch back to Android, I’ll probably look for a version of it.


I have a Macbook Pro.

I switched to Mac laptops in college. I used to dual boot Linux and Windows. Linux for the development, Windows for being able to have a useable computer. My laptop was stolen and the next one I bought was an Apple iBook G3. Since then, I’ve bought a couple non-Apple laptops and haven’t really enjoyed the experience.



Technics SL-1200M3D is my turntable of choice. For the type of djing I do, it’s useful to have a steady platter, high enough torque, and a pitch control that’s smooth. All the Technics 1200s do that well.

I used to have the Vestax PDX-2000 and never really liked the pitch control. I still have a Vestax QFO LE DX and the pitch control is pretty wild (+/- 60%).

As heavy as these things are, I don’t see a world where I replace my turntables with a controller. There’s a tactile element that’s lost with controllers.


I’ve been using the Shure M44-7 mounted on Technics headshells since 2001. I’ve had the Ortofon Concordes, but they were harder to travel with.


I have the first version of the Rane TTM 56 from 2002 and it’s still going strong. There were just a lot of great features on the mixer:

If I were to buy a new mixer, it’d be the Rane Sixty-Two or the Pioneer DJM-S9.

Digital Vinyl System

Serato. I’m still on Scratch Live. At some point it’ll break and I’ll need to upgrade. Hopefully not too soon. I’ve had it since 2004.

Back in the day, I was on a beta version of Final Scratch, then Native Instruments’ Traktor Final Scratch. I switched to Serato when it was stable and it’s been great. I like vinyl, but it’s heavy.


I’ve been using the Sony MDR7506 for djing since 2003. They’re great. Not the best quality sound for daily listening, although passable. They’re sturdy, folds up nicely, and easy to replace (if it comes to it).

For daily listening, I use the Shure SE215 with the microphone cable.

Road Cases

My gear has been in Road Ready flight cases for 15 years now across both coasts and to England. If you’re mobile, pick up some cases. It’ll save you in the long run.