Below is a list of some of my favorite tools that I use in my work.
Hardware
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)
Editor
- Neovim (heavily customized)
- EditorConfig
Utilities
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
Languages
- 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