Alex Preston / blog

Developer Tools / Practices that have doubled my productivity

Mon Oct 21 2024

A large part of this I got from my former teammate, Alex Zvorygin, who was insanely productive and showed me a lot of tricks while I was at Datadog. This list is organized by the impact on my productivity, with the top items having made the biggest difference.

These workflows made coding and debugging a lot faster and more than anything more pleasant. These days doing work feels more like riding a bike and less like fighting against the computer.

1. Rectangle - Window Manager

Rectangle is great for managing windows with shortcuts instead of dragging and resizing them manually.


2. Alfred - Clipboard Manager

I've tried tons of clipboard managers, but Alfred's is excellent because it's searchable and also saves images you might have copied. You do have to pay for Alfred's Powerpack, but I think it's well worth the price.


3. AltTab

AltTab improves Command + Tab functionality on Mac for better window switching.


4. fzf - Fuzzy Search

fzf implements fuzzy search and comes with all sorts of bells and whistles. I mostly use it for searching my command history and files/directories really fast.


5. z - Directory Jump Tool

Z makes changing directories ultra-fast. No need to type entire paths; z learns your frequently used folders and lets you type something like z k8s to jump to /Users/alexrpreston/work/coding/k8s-resources.


6. iTerm2 - Terminal

This is pretty standard, and most developers probably already use it, but I was a noob and used the built-in terminal for ages. iTerm2 has a ton of great features, and I've barely scratched the surface. Even something as simple as being able to click on links has saved me tons of time. Also, the key bindings you can set up, such as Control + A for the beginning of the line or Control + E for the end, are great.


7. Aliases

Aliases are pretty standard, but it's easy to fall into a routine of typing the same command over and over without taking two seconds to make an alias. These are some that I use fairly often. Ask yourself if you are using a command a lot—alias it!

alias zshrc="code ~/.zshrc"
alias ..="cd .."
alias ...="cd ../.."
alias ~="cd ~"
alias l="ls"

alias g="git"
alias gs="g status"
alias gco="g checkout"
alias gcb="g checkout -b"
alias gc="git commit -m"

alias k="kubectl"
alias kd="k describe"
alias kg="k get"

8. K9s - Kubernetes GUI

I do a lot of Kubernetes work, and sometimes it's nice to use a GUI instead of kubectl when debugging.


9. LazyDocker - Docker GUI

This is similar to K9s but for Docker. TL;DR: It turns your terminal into a Docker GUI for managing containers, networks, etc.