Things I use, recommend, and endorse without reservation.
Software #
Development #
- Neovim - Modern vim. Fast, extensible, powerful. See Neovim Configuration
- tmux - Terminal multiplexer that changed how I work. See tmux Configuration
- zsh - Best shell experience with the right plugins. See zsh Configuration
- mise - One tool to manage all dev tool versions. See mise Tool Management
- fzf - Fuzzy finding that integrates everywhere. See fzf
- git - Version control done right. See Git Configuration
- uv - Python packaging and dependency management done right. See [[uv]]
Terminal #
- kitty - GPU-accelerated terminal. See kitty Terminal
- wezterm - Cross-platform and scriptable. See WezTerm
Window Management #
- Hyprland - Wayland tiling compositor with excellent workspace support. See Hyprland Window Manager
- Awesome WM - When I need X11. See Awesome Window Manager
- KDE Plasma - Actually like this DE - great workspace management and keyboard shortcuts
I need window managers with robust workspace hotkeys: win+num to switch, win+shift+num to send apps, win+ctrl+num to join workspaces. Both tiling and floating work fine if the workspace management is solid.
Utilities #
- atuin - Shell history that syncs. See Atuin
- starship - Fast, informative prompt. See Starship Prompt
- gitui - Fast git TUI written in Rust. See gitui
- lazygit - Alternative git UI. See Lazygit
- lf - Fast terminal file manager. See lf
- yazi - Alternative file manager with async I/O. See Yazi
Python #
- uv - Fast, all-in-one Python packaging and dependency management
- ruff - Fast Python linter and formatter
- pytest - Testing without complexity
Hardware #
(Add specific hardware recommendations if desired)
Workflows #
- Keyboard-driven everything - Minimize mouse usage
- Win+num workspace switching - Instant access to any workspace
- Dotfiles in git - Version control everything
- Containers for isolation - Keep host system clean
- Documentation as code - Write it down, automate it
- Vanilla JS - Prefer simple over complex build pipelines
Development Approach #
JavaScript/Frontend #
- Vanilla JavaScript - No build step, no dependencies when possible
- CDN libraries - Alpine.js, htmx, or similar via script tag
- Avoid heavy frameworks - No webpack, no deep node_modules trees
- Progressive enhancement - Start simple, add complexity only when needed
Python #
- uv - For all dependency management and virtual environments
- pyproject.toml - Modern Python packaging standard
- Simple structure - Flat is better than nested
- Type hints - For code clarity without ceremony
Principles #
- Open source over proprietary when possible
- Simple over complex
- Fast over feature-rich
- Keyboard over mouse
- Text over GUI
- Vanilla over framework when feasible
- One tool that does it well over many tools
See Nope for things I avoid.