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:
- Autosuggestions from history
- Syntax highlighting in real-time
- Git shortcuts (gst, ga, gc, gp)
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:
- One session per project
- Windows for different contexts (code, server, tests)
- Panes for side-by-side work
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
| Shortcut | Action |
|---|---|
| Cmd+P | Quick file open |
| Cmd+Shift+P | Command palette |
| Cmd+Shift+F | Search in files |
| Cmd+B | Toggle sidebar |
| Cmd+` | Toggle terminal |
| Ctrl+Tab | Switch tabs |
| F12 | Go to definition |
| Shift+F12 | Find 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
| Shortcut | Action |
|---|---|
| Cmd+Space | Spotlight/Alfred |
| Cmd+Tab | Switch apps |
| Cmd+` | Switch windows same app |
| Ctrl+Left/Right | Switch desktops |
Browser (Chrome)
| Shortcut | Action |
|---|---|
| Cmd+L | Focus URL bar |
| Cmd+Shift+T | Reopen closed tab |
| Cmd+1-8 | Switch to tab N |
| Cmd+Option+I | DevTools |
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
- All notifications off during deep work
- Batch email/Slack checking
- Phone in another room
Final Thoughts
Productivity tools are personal. What matters:
- Reduce friction in common tasks
- Automate repetitive work
- Protect focus time
- Learn keyboard shortcuts
Start with one improvement. Master it. Move to the next.
The best productivity hack is doing less—better.