The right tools make you faster. The wrong tools slow you down. After years of trying different setups, I have settled on a toolset that works well for web, mobile, and backend development.

This guide covers every category of developer tools: IDEs, terminals, version control, containers, AI assistants, and more. For each category, I share what I use and why, plus alternatives if my pick does not fit your workflow.

IDEs and Code Editors

Your editor is where you spend most of your day. Pick one and learn it deeply.

JetBrains IDEs

Best for: Kotlin, Java, Android, Python, Go, Rust (with plugin)

JetBrains makes the best IDEs for statically-typed languages. The code analysis, refactoring, and debugging tools are unmatched.

IDELanguageCost
IntelliJ IDEAKotlin, JavaFree Community / Paid Ultimate
Android StudioAndroid (Kotlin)Free
PyCharmPythonFree Community / Paid Professional
GoLandGoPaid
RustRoverRustFree

Key features I use daily:

  • Find usages — see everywhere a function or class is used
  • Refactor > Rename — safely rename across the entire project
  • Run/Debug — set breakpoints, inspect variables, step through code
  • Database tool — query databases directly in the IDE (Ultimate)
  • Built-in terminal — no need to switch windows

Tip: Learn the keyboard shortcuts. They will double your speed. Press Shift twice for “Search Everywhere”, the most useful shortcut in any JetBrains IDE.

VS Code

Best for: JavaScript, TypeScript, web development, general-purpose editing

VS Code is lightweight, fast, and has the largest extension ecosystem. It is the most popular editor in the world.

Essential extensions:

  • GitLens — see who changed each line and when
  • Prettier — auto-format code on save
  • ESLint — catch JavaScript/TypeScript errors
  • Thunder Client — API testing inside VS Code
  • Remote SSH — edit files on remote servers
  • Docker — manage containers from the sidebar

My VS Code settings:

{
    "editor.fontSize": 14,
    "editor.fontFamily": "JetBrains Mono",
    "editor.formatOnSave": true,
    "editor.minimap.enabled": false,
    "editor.bracketPairColorization.enabled": true,
    "terminal.integrated.fontSize": 13,
    "files.autoSave": "onFocusChange"
}

Neovim

Best for: Developers who want maximum speed and keyboard-only editing

Neovim is a terminal-based editor. It has a steep learning curve, but experienced users can edit code extremely fast. In 2026, the Neovim ecosystem is mature with LSP support, Treesitter for syntax highlighting, and plugins like Telescope for fuzzy finding.

Neovim is not for everyone. If you are new to programming, start with VS Code or a JetBrains IDE. Come back to Neovim later if you want to optimize your editing speed.

When to use which?

  • Android development → Android Studio (no choice, it is the official IDE)
  • Kotlin backend → IntelliJ IDEA
  • Python → PyCharm or VS Code (both work well)
  • Go → GoLand or VS Code with Go extension
  • Rust → RustRover or VS Code with rust-analyzer
  • Web frontend → VS Code
  • Quick edits → VS Code
  • Terminal-first workflow → Neovim

Terminal and Shell

A good terminal setup saves minutes every day. Those minutes add up.

Terminal Emulators

ToolPlatformWhy
GhosttymacOS, LinuxFast, GPU-accelerated, native feel
WezTermAll platformsHighly configurable, Lua config
Windows TerminalWindowsBest option for Windows developers
iTerm2macOSFeature-rich, widely used

Shell: Zsh with Oh My Zsh

Zsh is the default shell on macOS and available on all Linux distributions. Oh My Zsh adds plugins and themes that make it better.

Useful plugins:

# In your .zshrc
plugins=(
    git                 # Git aliases (gst, gco, gcm)
    z                   # Jump to frequent directories
    docker              # Docker autocompletions
    kubectl             # Kubernetes autocompletions
    zsh-autosuggestions # Fish-like suggestions
    zsh-syntax-highlighting
)

Essential CLI Tools

These modern replacements are faster and more user-friendly than the originals:

ClassicModern ReplacementWhy
lsezaColors, icons, git status
catbatSyntax highlighting, line numbers
findfdSimpler syntax, faster
grepripgrep (rg)Much faster, respects .gitignore
topbtopBeautiful system monitor
curlhttpieHuman-friendly HTTP requests
mantldrSimplified command examples
# Install all of them at once (macOS)
brew install eza bat fd ripgrep btop httpie tldr

Version Control: Git and GitHub

Git is non-negotiable. Every developer must know it well.

Git Setup

# Essential config
git config --global init.defaultBranch main
git config --global pull.rebase true
git config --global push.autoSetupRemote true

Git Workflow

For solo projects, a simple flow works best:

  1. Create a branch for each feature
  2. Make small, focused commits
  3. Write clear commit messages
  4. Open a pull request (even for yourself — it creates a review record)
  5. Merge and delete the branch

For team projects, use GitHub Flow or trunk-based development.

Git Tools

ToolPurpose
GitHubRepository hosting, CI/CD, code review
GitLens (VS Code)Blame, history, comparison
lazygitTerminal UI for Git operations
gh (GitHub CLI)Create PRs, issues from terminal

Resources:


Containers: Docker

Docker packages your application and its dependencies into a container that runs the same everywhere. It solves the “works on my machine” problem.

Essential Docker Commands

# Build an image
docker build -t myapp .

# Run a container
docker run -p 8080:8080 myapp

# Run with Docker Compose (multiple services)
docker compose up -d

# See running containers
docker ps

# View logs
docker logs -f container_name

Docker Compose for Local Development

Most projects need more than one service. Docker Compose runs them all together:

services:
  app:
    build: .
    ports:
      - "8080:8080"
    environment:
      - DATABASE_URL=postgres://alex:pass@db:5432/myapp
    depends_on:
      - db
      - redis

  db:
    image: postgres:17
    environment:
      POSTGRES_PASSWORD: pass
      POSTGRES_DB: myapp

  redis:
    image: redis:7-alpine

Docker Tools

ToolPurpose
Docker DesktopRun containers on Mac/Windows
OrbStackFaster Docker alternative for macOS
PortainerWeb UI for managing containers
diveAnalyze Docker image layers

Resources:


AI Coding Tools

AI tools are the biggest change to development in 2026. They handle boilerplate, suggest solutions, and speed up debugging.

AI Code Assistants

ToolBest ForPricing
Claude CodeComplex tasks, CLI workflow, full codebase understandingSubscription
GitHub CopilotInline code completion in IDE$10-39/month
CursorAI-first IDE experienceFree tier + $20/month

How I Use AI Tools

  1. Code generation — describe what I want, let AI write the first draft
  2. Code review — paste code and ask for improvements
  3. Debugging — share error messages and let AI explain the fix
  4. Documentation — generate docstrings and README files
  5. Testing — generate test cases from existing code
  6. Learning — ask AI to explain unfamiliar code or concepts

Tips for Effective AI Coding

  • Be specific in your prompts. “Write a REST API” is too vague. “Write a GET endpoint that returns paginated users from PostgreSQL using Axum” is good.
  • Review every line AI generates. It can produce subtle bugs.
  • Use AI for the boring parts — boilerplate, repetitive patterns, test scaffolding.
  • Do not use AI as a crutch — understand the code it generates.

Resources:


Database Tools

You will work with databases daily. Good tools make it painless.

ToolTypeBest For
DBeaverUniversal GUIAny database, free
pgAdminPostgreSQL GUIPostgreSQL-specific features
Redis InsightRedis GUIViewing cached data
DataGripJetBrains DB IDEPower users, paid
TablePlusNative GUIClean interface, macOS

For quick queries from the terminal:

# PostgreSQL
psql -h localhost -U alex -d myapp

# Redis
redis-cli

Resources:


API Testing

Building backends means testing endpoints constantly.

ToolTypeBest For
BrunoDesktop appOpen source, Git-friendly
PostmanDesktop appTeam collaboration
Thunder ClientVS Code extensionQuick tests without leaving IDE
httpieCLITerminal-based API testing
curlCLIAvailable everywhere
# httpie — human-friendly HTTP
http GET localhost:8080/api/users
http POST localhost:8080/api/users name="Alex" email="alex@example.com"

# curl — available on every machine
curl -X POST http://localhost:8080/api/users \
  -H "Content-Type: application/json" \
  -d '{"name": "Alex", "email": "alex@example.com"}'

Productivity Tools

These are not code tools, but they make your workday better.

ToolPurposePlatform
RaycastApp launcher, snippets, clipboard historymacOS
ObsidianNotes and documentationAll
ExcalidrawQuick diagrams and sketchesBrowser
NotionProject planning and docsAll
RectangleWindow managementmacOS

My Daily Workflow

Here is how all these tools fit together in a typical day:

  1. Morning: Open terminal (Ghostty), pull latest code (git pull), start services (docker compose up -d)
  2. Coding: Open IDE (Android Studio or IntelliJ), write code with AI assistance (Claude Code or Copilot)
  3. Testing: Run tests in IDE, test APIs with Bruno or httpie
  4. Database: Check data with DBeaver, run migrations
  5. Commit: Use lazygit or terminal for small commits with clear messages
  6. Deploy: Push to GitHub, CI/CD handles the rest
  7. Monitor: Check logs, fix any issues

How to Choose Your Tools

Do not install everything at once. Start with the basics and add tools when you feel a pain point.

Start with these:

  1. One IDE (VS Code or JetBrains)
  2. Git + GitHub
  3. A good terminal
  4. Docker
  5. One AI coding tool

Add later as needed:

  • Database GUI
  • API testing tool
  • Advanced CLI tools
  • Productivity apps

Rules for choosing tools:

  • Free is fine. Most great developer tools are free or have free tiers.
  • Learn one tool deeply before switching to another.
  • Do not chase trends. A tool you know well beats a new tool you are still learning.
  • Your tools should help you, not distract you.

What’s Next?

Pick one tool from this list that you do not use yet. Install it, learn the basics, and use it for a week. If it saves you time, keep it. If not, remove it and try the next one.

The best developer setup is the one that gets out of your way and lets you focus on writing code.