Hardware
- Macbook Pro 13-inch 2018: Nowadays fast SSD and at least 16 gigabytes of memory is the lowest bar for a development box
- Normal mouse and normal keyboard: I'm not even using mechanic keyboard, might due to their noises. I'm still using a ten-year old BenQ so-called X structure keyboard. Developers don't have to type a lot at all.
- 27-inch display: nothing special
- Laptop stand: A must-have
- Stand desk: not yet. I might give an electronic multi-stage desk a go.
Software
- Operation system: As a Java developer most of the time (Clojure at last project), I don't have to bear with Windows though I heard about its improving terminal experience lately. I quite enjoy the experience under Ubuntu, especially the huge performance gain in Docker. The change of shortcuts is the top blocker to my turning away from Macbook.
- IntelliJ Ultimate: As a previous ten-year user of Eclipse, I vouch for IntelliJ with my whole heart. Its support of refactoring and TDD is the deal breaker. My current company has paid for it but I'm also willing to take from my own pocket.
- iTerm2: Great terminal with tabs and view split. Though on linux it's easy to find alternatives without some advanced features I don't use.
-
My homebrew list: Sorry for the transient packages
ack gettext jq nettle perl stoken adns git krb5 node pinentry tfenv aliyun-cli git-delta leiningen npth pkg-config unbound awscli git-lfs oniguruma postgresql vim bdw-gc gmp libyaml openconnect protobuf wget clojure gnutls lua openjdk python@3.8 xz curl gradle maven openssl@1.1 readline yarn exercism guile -error mysql p11-kit rlwrap z fzf hub libidn2 n ruby zsh gdbm icu4c ncurses
Terminal setup
- Zshell
- Oh-my-zsh
- fzf: A great improvement to command history
- z: Excellent directory jumper
- spaceship-prompt: Optional
- Sdkman
-
Useful aliases apart from those coming with plugins of oh-my-zsh
➜ cat ~/.oh-my-zsh/custom/alias.zsh alias dprune='docker stop $(docker ps -a -q) || docker system prune -af || docker volume prune -f' alias dclean='docker rm -f $(docker container ls -aq) || docker volume prune -f' alias brewu="brew upgrade; brew upgrade --cask; brew cleanup;" alias grsb="git remote set-branches --add origin"
Tips
Get yourself familiar with common shortcuts in those applications.