We encourage engineers to hone and refine their development environment. In fact, we think getting your editor juuust how you like it is one of the criteria for levelling up as a software engineer!
However we do have some stipulations, and some recommendations.
- Use macOS. Multiple operating systems makes it harder to share knowledge, pick team-wide tools, and introduces extra categories of day-to-day issues.
- Your development environment must conform to our security guidelines.
- Manage packages with Homebrew.
- Only run databases (PostgreSQL, Clickhouse) as OS services. Don't run Redis as a service, run it per project.
- Do not use Docker unless the project has a specific need for it.
- Use our mac-setup repository to get everything installed that you're going to need.
- Use rbenv for managing your Ruby versions.
- Use nvm or fnm for managing your Node.js versions.
- Use zsh or bash as your shell.
- Install packages with Homebrew.
- Use iTerm2 as your terminal.
- Don't use a GUI for Git.
Code editors are a very personal preference and you should experiment with different ones to find out what works best for you. But remember, your editor (and your customisations of that editor) should work to speed you up not slow you down. If you're spending so long faffing with your code editor that you're getting less work done, you're doing it wrong.
The team use VSCod{e,ium}, Vim, and Sublime Text (in that order of popularity).
We're happy to buy licenses for code editors!