Setup your machine

Code Editor

Choose your code editor

Cursor

Visual Studio Code

Sublime Text

Time to configure it

  • If you chose Cursor/VS Code

    1. Create code command

    2. Open the Command Palette (⇧⌘P) and type shell command to find the Shell Command: Install 'code' command in PATH command. Restart the terminal for the new $PATH value to take effect. You'll be able to type code . in any folder to start editing files in that folder.

    3. Configure user settings (⇧⌘P) and type user settings and select Preferences: Open User Settings Depending on your VSCode version you will see a JSON view of the settings by default or not. If it doesn't show at first you can click a {} button on the top right that will show you the settings JSON view.

      {
         "explorer.confirmDelete": false,
         "editor.scrollBeyondLastLine": false,
         "editor.wordWrap": "on",
         "files.trimTrailingWhitespace": true,
         "editor.tabSize": 2,
         "markdown.preview.scrollPreviewWithEditor": false,
         "[python]": {
             "editor.tabSize": 4,
         },
         "files.insertFinalNewline": true,
         "markdown.preview.scrollEditorWithPreview": false,
         "html.suggest.html5": false,
         "editor.quickSuggestions": {
             "other": true,
             "comments": false,
             "strings": true
         },
         "window.zoomLevel": 0,
         "python.venvPath": "~/.virtualenvs",
      }
      `
      
  • If you chose Sublime

    1. Create subl command

      sudo mkdir -p /usr/local/bin/ && sudo ln -s /Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl /usr/local/bin/subl
      
    2. Install package manager as shown here

    3. Configure user settings (Sublime Text -> Preferences -> Settings)

      {
        "ensure_newline_at_eof_on_save": true,
        "font_size": 14,
        "show_encoding": true,
        "tab_size": 2,
        "translate_tabs_to_spaces": true,
        "trim_trailing_white_space_on_save": true
      }
      

General MAC OS config

  • Enable "Show Path" bar in Finder

    defaults write com.apple.finder ShowPathbar -bool true
    
  • Enable "Show Status" bar in Finder

    defaults write com.apple.finder ShowStatusBar -bool true
    

Xcode

Xcode is an IDE for macOS developed by Apple for developing software for macOS, iOS, iPadOS, watchOS, and tvOS.

  1. Install Xcode from the App Store
  2. Open Xcode and accept the licence
  3. Install command line tools with this command:
    xcode-select --install
    

Homebrew

Homebrew is a free and open-source software package management system that simplifies the installation of software on Apple's macOS operating system and Linux.

Installation

  • To install it, run in Terminal the following command:

    /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
    
  • Run brew doctor and update homebrew with brew update


Git

Git is a distributed version-control system for tracking changes in source code during software development. It is designed for coordinating work among programmers, but it can be used to track changes in any set of files.

Installation

Xcode developer tools already installs GIT for us.

Configuration

  • If migrating from another computer, import previous configuration following this guide

  • If no configuration was created, execute these commands in your terminal:

    ssh-keygen -t rsa -C "YOUR EMAIL"
    git config --global user.email "YOUR EMAIL"
    git config --global user.name "YOUR NAME"
    git config --global color.ui true
    

Useful tips


GitHub

GitHub is a web-based collaborative software platform for software development version control using Git. It provides access control and several collaboration features such as bug tracking, feature requests, task management, and wikis for every project.

If you are new to GitHub, create an account.

When you finished, give your account username to somebody in the team


wget

GNU Wget is a computer program that retrieves content from web servers. It supports downloading via HTTP, HTTPS, and FTP.

Installation

Run the following command:

brew install wget

Postgres / PostgreSQL

Postgres is a free and open-source relational database management system emphasizing extensibility and SQL compliance.

Installation

You can install it from Postgres app page

Configuration

Configure PATHs

  1. Open zshrc:

    nano ~/.zshrc
    
  2. Paste the following:

    export PATH=$PATH:/usr/local/bin
    export PATH=$PATH:/Applications/Postgres.app/Contents/Versions/latest/bin
    
  3. Save those changes and exit.

  4. Apply those changes:

    source ~/.zshrc
    
  5. Finally, type psql in your terminal to open Postgres console and run:

    CREATE USER postgres SUPERUSER;
    

Ruby (Rails team only)

Ruby is an interpreted, high-level, general-purpose programming language.

We use RVM (Ruby Version Manager) to easily install, manage, and work with multiple Ruby environments from interpreters to sets of gems.

Installation

Run the following command:

curl -sSL https://get.rvm.io | bash -s stable --rails
source ~/.rvm/scripts/rvm

Once RVM is installed, install latest Ruby version:

rvm use ruby --install --default

Configuration

Configure no documentation for gems (speeds up gem installation process):

echo 'gem: --no-document' >> ~/.gemrc

Install rails and bundler

gem install rails bundler

Node.js (Node team only)

Node.js is an open-source, cross-platform, JavaScript runtime environment that executes JavaScript code outside of a web browser.

nvm (node version manager)

We use nvm to manage different Node.js versions between projects. Run the following command:

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash

Check that everything went well running the following command:

command -v nvm

pnpm / bun

pnpm and bun are package managers for the JavaScript programming language. Install either of those.


Python (AI team only)

Python is an interpreted, high-level, general-purpose programming language. Python 3 is the latest version of this language.

Installation

We use uv to manage python versions and dependencies. Install it:

curl -LsSf https://astral.sh/uv/install.sh | sh
echo 'eval "$(uv generate-shell-completion zsh)"' >> ~/.zshrc
echo 'eval "$(uvx --generate-shell-completion zsh)"' >> ~/.zshrc

Configuration

  • Setup Python's environment management

    Install a specific Python version

    uv python install 3.12
    

    List installed versions

    uv python list
    
  • To create a Python3 virtual environment

    It's usual to have different Python environments for each project. This keeps the project dependencies independent from each other.

    Create an environment:

    uv venv .venv
    

    Activate it:

    source .venv/bin/activate
    
  • To exit the virtualenv

    deactivate
    

Troubleshooting

If you experienced errors while bundling, run this commands in Terminal:

gem uninstall libv8
brew install v8
gem install therubyracer
gem install libv8 -v '3.16.14.3' -- --with-system-v8

Extra (optional)

Docker

Docker is a set of platform as a service products that uses OS-level virtualization to deliver software in packages called containers.

Installation

You can install Docker Desktop app from docker page.