Tools I Use

I'm trying to keep notes on all the tools that are part of my development and workflow, as well as the bits that tie everything together online. This is difficult, especially some of the small bits online, so this is an ongoing list to remind me. And readers can consider this a conditional endorsement, I'm happy to chat about my experience with any of them.

Development

  • Github
  • PyCharm/RubyMine/IntelliJ IDEA from Jetbrains
  • Mathematica from Wolfram
  • MongoDB
  • Python 3
  • Docker
  • Ray for distributed computing
  • GCC, Clang, and Intel C/C++ compilers

Everything lives in Github -- everything. Code, papers in progress, presentations, even this lab notebook. Usually data, but if it's too big for Github, it's on S3 with links here on Github. I've been using Unix variants for almost 30 years, so generally my tools rely on "composable" things like shell commands, Makefiles, and plain text, but there are undeniable advantages to working with a modern IDE for a complex piece of code. JetBrains makes the best IDE's around.

In the last 5 years, most of my development work has shifted from R to Python, so the technical stack has shifted quite a bit. Kubernetes and Ray have radically shifted the landscape for easy large scale scientific computing, and containerization with Docker has drastically improved our ability to replicate computational science.

Writing, Diagramming, Bibliography Management

  • LaTeX
  • Overleaf
  • OmniGraffle Pro
  • BibDesk
  • Skim
  • ReadCube Papers
  • Adobe Photoshop and Illustrator
  • Jekyll for building websites from Markdown
  • Pandoc for document conversion

Hosting and Online Services

  • Github Pages for lab notebook hosting
  • Figshare for archiving data/files/figures from papers
  • OrcID for researcher unique ID's
  • Academia.edu and ResearchGate for publicizing work and tracking people
  • Amazon AWS for EC2, Kubernetes, and S3 services