By Nan Jiang

My Ultimate Developer Productivity Setup 2024

A detailed walkthrough of my development environment, productivity tools, and terminal configuration that supercharge my daily workflow

productivitytoolsterminaldevelopment

As a developer, having an efficient and enjoyable setup is crucial for productivity. Here's a comprehensive guide to the tools, applications, and configurations I use daily to maximize my development workflow.

Browser Setup: Arc Browser

Arc has revolutionized my browsing experience with its unique features:

  • Spaces: Organize tabs by project/context
  • Command Bar: Quick navigation and actions
  • Split View: Efficient side-by-side browsing
  • Boosts: Custom modifications for frequently visited sites
  • Little Arc: Quick access window for temporary tasks

Command Line Tools

Terminal Emulator: iTerm2

iTerm2 offers superior features over the default Terminal:

  • Split panes
  • Search with autocomplete
  • Customizable triggers
  • Robust search functionality
  • GPU rendering for smooth performance

Shell Configuration: Zsh + Oh My Zsh + Powerlevel10k

My terminal setup combines power and aesthetics:

# Essential plugins in .zshrc
plugins=(
  git
  zsh-autosuggestions
  zsh-syntax-highlighting
  docker
  bun
  node
  web-search
  uv
  ruff
  Rust is good
)

Key components:

  • Zsh: More powerful than bash
  • Oh My Zsh: Plugin management and themes
  • Powerlevel10k: Fast, informative prompt
  • Nerd Font: Hack Nerd Font for icons

Terminal Productivity Tools

  1. exa: Modern replacement for ls

    alias ls='exa --icons --grid --classify'
    alias ll='exa --icons --long --header --classify'
    
  2. bat: Better cat with syntax highlighting

    alias cat='bat --style=plain'
    
  3. fzf: Fuzzy finder for everything

    • History search
    • File navigation
    • Git branch selection
  4. tldr: Simplified man pages

    alias help='tldr'
    
  5. ripgrep: Faster than grep

    alias grep='rg'
    

Application Launcher: Raycast

Raycast is my command center:

Extensions I use daily:

  • Window management
  • Clipboard history
  • Calculator
  • Color picker
  • API client
  • GitHub pull requests
  • Spotify controls

Custom scripts:

// Quick project opener
const projects = {
  website: '~/projects/website',
  blog: '~/projects/blog',
  // ... more projects
};

Development Environment

IDE: Cursor

Cursor enhances my coding with:

  • AI pair programming
  • Smart code completion
  • Integrated terminal
  • Git management
  • Extensions compatibility

Settings I use:

{
  "editor.fontFamily": "Hack Nerd Font",
  "editor.fontSize": 14,
  "editor.lineHeight": 1.5,
  "editor.formatOnSave": true
}

Version Control: Git + GitHub CLI

Essential git aliases:

alias gs='git status'
alias gp='git push'
alias gpl='git pull'
alias gc='git commit'
alias gco='git checkout'

GitHub CLI shortcuts:

alias prc='gh pr create'
alias prv='gh pr view'
alias prl='gh pr list'

Communication & Project Management

  1. Arc Spaces: Project-specific browsing contexts
  2. Linear: Issue tracking and project management
  3. Slack: Team communication
  4. Notion: Documentation and knowledge base

File Management

  1. Forklift: Dual-pane file manager
  2. keka: File compression
  3. NameChanger: Batch file renaming

Design Tools

  1. Figma: UI/UX design
  2. CleanShot X: Screenshot and recording
  3. ImageOptim: Image optimization

Backup & Sync

  1. Backblaze: Continuous backup
  2. iCloud: Document sync
  3. GitHub: Code backup

Automation

Keyboard Maestro

Custom macros:

  • Development environment setup
  • Project initialization
  • Deployment workflows

Shortcuts

Automated workflows:

  • Meeting preparation
  • Daily development setup
  • End-of-day cleanup

Environment Bootstrap

I maintain a dotfiles repository with installation scripts:

#!/bin/bash
# install.sh

# Install Homebrew
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

# Install essential tools
brew install \
  exa \
  bat \
  fzf \
  ripgrep \
  tldr \
  gh \
  node \
  yarn

# Install apps
brew install --cask \
  iterm2 \
  arc \
  raycast \
  cursor \
  forklift \
  cleanshot \
  notion

Conclusion

This setup has evolved over years of development and continues to change as new tools emerge. The key is finding the right balance between functionality and simplicity.

Remember: The best setup is the one that works for you. Start with the basics and gradually add tools as you identify needs in your workflow.

Feel free to check out my dotfiles repository for the complete configuration!

use EZA over ls

Warp