#BlackLivesMatter Support the Equal Justice Initiative


Below is a list of some of my favorite tools that I use in my work.


While my daily driver is a MacBook, I tend to do most of my development via remote machines running Linux.

  • MacBook Pro
  • Google Pixel
  • reMarkable tablet (mostly for reading/annotating papers)



I generally prefer tools written in Rust where I can find them. They’re easy to install since I always have a Rust environment set up and they’re generally fast.

  • git
  • mosh instead of SSH since i tolerates loss of connection
  • tmux to keep track of sets of processes for different projects
  • pv - super useful for quick progress monitoring
  • fd as a replacement for find
  • bat as a replacement for cat
  • rg as a replacement for grep
  • xsv for CSV processing
  • jq and gron for JSON processing
  • pipx for managing any Python utilities
  • pipenv for Python package management
  • pyenv to manage Python versions
  • jabba to manage Java versions
  • n to manage Node versions


  • zsh for quick scripts
  • Python for AI/ML and more complicated scripting
  • Scala for anything that needs to run on the JVM or via Apache Spark
  • Rust for things that really need to be fast
  • JavaScript for anything that runs in the browser