The Ultimate Developer Productivity Stack

productivity dev tools

Developer productivity is about removing friction. Here’s the stack I’ve refined over years—tools and practices that genuinely make me faster.

Terminal

Shell: Zsh + Oh My Zsh

# Install Oh My Zsh
sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

# Essential plugins
plugins=(
    git
    docker
    kubectl
    zsh-autosuggestions
    zsh-syntax-highlighting
    fzf
)

Key features:

Terminal Multiplexer: tmux

# ~/.tmux.conf
set -g prefix C-a                    # Better prefix
set -g mouse on                      # Mouse support
set -g base-index 1                  # Start windows at 1
set -g history-limit 10000           # More scroll history

# Split panes with | and -
bind | split-window -h
bind - split-window -v

My tmux workflow:

Fuzzy Finder: fzf

# Install
brew install fzf
$(brew --prefix)/opt/fzf/install

# Ctrl+R: Search command history
# Ctrl+T: Search files
# Alt+C: cd to directory

Power moves:

# Search and open in vim
vim $(fzf)

# Git checkout branch with fzf
git checkout $(git branch | fzf)

Better CLI Tools

# Modern replacements
brew install bat        # cat with syntax highlighting
brew install exa        # ls with colors and git status
brew install ripgrep    # grep but fast
brew install fd         # find but simple
brew install jq         # JSON processor
brew install httpie     # curl for humans
# Aliases
alias cat="bat"
alias ls="exa --icons"
alias ll="exa -la --icons"
alias grep="rg"
alias find="fd"

Editor: VS Code

Essential Extensions

{
    "extensions": [
        "ms-python.python",
        "GitHub.copilot",
        "eamodio.gitlens",
        "esbenp.prettier-vscode",
        "bradlc.vscode-tailwindcss",
        "ms-azuretools.vscode-docker",
        "usernamehw.errorlens"
    ]
}

Key Settings

{
    "editor.formatOnSave": true,
    "editor.minimap.enabled": false,
    "editor.fontSize": 14,
    "editor.fontFamily": "JetBrains Mono",
    "editor.fontLigatures": true,
    "workbench.colorTheme": "One Dark Pro",
    "files.autoSave": "afterDelay",
    "telemetry.telemetryLevel": "off"
}

Keyboard Shortcuts to Master

ShortcutAction
Cmd+PQuick file open
Cmd+Shift+PCommand palette
Cmd+Shift+FSearch in files
Cmd+BToggle sidebar
Cmd+`Toggle terminal
Ctrl+TabSwitch tabs
F12Go to definition
Shift+F12Find references

Git

Aliases

# ~/.gitconfig
[alias]
    s = status -sb
    co = checkout
    br = branch
    cm = commit -m
    ca = commit --amend
    aa = add --all
    lg = log --graph --oneline --decorate
    undo = reset HEAD~1 --soft
    wip = !git add -A && git commit -m "WIP"

Git Workflow

# My daily flow
git s                    # Quick status
git aa                   # Stage all
git cm "feat: message"   # Commit
git lg -10              # Review history

Tools

# Interactive rebase made easy
brew install lazygit

# Better diffs
brew install delta

Docker

docker-compose for Everything

# docker-compose.yml for local dev
services:
  db:
    image: postgres:13
    volumes:
      - postgres_data:/var/lib/postgresql/data
    environment:
      POSTGRES_DB: myapp
      POSTGRES_PASSWORD: dev

  redis:
    image: redis:6

  app:
    build: .
    volumes:
      - .:/app
    ports:
      - "8000:8000"
    depends_on:
      - db
      - redis

Start everything:

docker-compose up -d
docker-compose logs -f app

Note-Taking: Obsidian

Structure

vault/
├── daily/        # Daily notes
├── projects/     # Project-specific notes
├── references/   # Technical references
├── ideas/        # Captured ideas
└── templates/    # Note templates

Daily Note Template

# {{date}}

## Today's Focus
- [ ] 

## Notes


## Tomorrow
- [ ]

Automation

Makefile for Projects

.PHONY: help install test lint run

help:
	@grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-20s\033[0m %s\n", $$1, $$2}'

install: ## Install dependencies
	pip install -r requirements.txt

test: ## Run tests
	pytest

lint: ## Run linters
	flake8 && black --check .

run: ## Start development server
	python manage.py runserver

Now just:

make install
make test
make run

Shell Scripts

# ~/bin/new-project
#!/bin/bash
mkdir -p "$1"
cd "$1"
git init
python -m venv venv
source venv/bin/activate
pip install django
django-admin startproject config .

Keyboard Shortcuts

I invest time in learning shortcuts:

macOS

ShortcutAction
Cmd+SpaceSpotlight/Alfred
Cmd+TabSwitch apps
Cmd+`Switch windows same app
Ctrl+Left/RightSwitch desktops

Browser (Chrome)

ShortcutAction
Cmd+LFocus URL bar
Cmd+Shift+TReopen closed tab
Cmd+1-8Switch to tab N
Cmd+Option+IDevTools

Focus Practices

Pomodoro Technique

25 minutes work, 5 minutes break. I use a simple timer app.

Block Schedule

9:00-12:00  Deep work (no meetings)
12:00-13:00 Lunch
13:00-14:00 Meetings
14:00-17:00 Collaborative work
17:00-18:00 Review, planning

Notification Discipline

Final Thoughts

Productivity tools are personal. What matters:

  1. Reduce friction in common tasks
  2. Automate repetitive work
  3. Protect focus time
  4. Learn keyboard shortcuts

Start with one improvement. Master it. Move to the next.


The best productivity hack is doing less—better.

All posts