An IDE is where most development happens — it’s your main interface for writing, running, debugging, and managing code. A well-configured environment saves time, reduces friction, and helps enforce best practices across projects. ## What I Look For in an IDE - Fast startup and low memory overhead - Strong support for Python, SQL, and/or notebooks - Built-in or easily integrated linting and formatting - Git integration for version control - Extension ecosystem (testing, Docker, Jupyter, etc.) ## Commonly Used IDEs - [[VS Code]] — My primary IDE for Python, dbt, and general scripting. Highly customizable. - [[Jupyter Notebooks]] — Best for exploratory data analysis, prototyping ML models, and storytelling. - [[PyCharm]] *(optional)* — When deeper Python refactoring or testing support is needed. ## Environment Setup Tips - Use `.devcontainer` or `Dockerfile` for consistent environments across machines - Define a `requirements.txt` or `pyproject.toml` for dependencies - Set up a virtual environment (e.g., `venv` or `conda`) per project - Add a `.env` file for secrets and runtime config — and make sure it’s `.gitignore`d ## Testing / Linting / Formatting (via Git Hooks or Extensions) - Format code with `black` - Lint with `flake8` or `ruff` - Test with `pytest` (integrated into terminal or pre-commit hook) > **Tip**: Set up your IDE to auto-format on save and highlight linting issues inline. --- **Part of**: [[Building Data Products]]