🛠️ tools of the trade
or, the “it’s parentheses all the way down” part.

tl;dr

  • hardware: Mac


hardware

remember this guide is opinionated, right? ok so: Mac. look, you’re gonna need a Linux-like environment. MS-DOS ain’t gonna cut it. in theory, if you buy into Apple’s kool-aid, the thoughtful design of a Mac might even make you a better product developer, at least by osmosis. i don’t know about all that, but it is indeed a slick machine. the clincher for me is that you can use BootCamp to install Windows if you really need it (to test Microsoft Edge and such) and it’s difficult to install Mac on non-Mac hardware if you need to test Safari, which a bunch of users do indeed use in the wild.

all that being said, not everyone is privileged to shell out that kind of moola, so a Linux laptop is an absolutely fine choice as well!

security

internalize this now: every engineer is a security engineer. you need to know security just as much as security “specialist” does. you must adapt the mindset of the paranoid because the Internet is not a nice place and is constantly trying to kill you.

  • encrypt your hard drive.  → System Preferences → Security & Privacy → FileVault → Turn on
  • 1Password: generates secure passwords for you. because you suck at it, trust me.
  • Signal: secure your mobile communications.
  • Arc. i’m on the verge of recommending this browser over others for just a better experience in general. (Brave was my previous alt. recommendation)
  • YubiKey. more secure option when setting up Two-Factor Authentication. not strictly necessary but as you progress in your career (and paranoia 🕵️‍♂️) definitely take a look.

software

  • browser: Chrome. quite simply, it has better tooling for debugging. believe me, i used to be a hardcore firefox guy (with my name on the monument to prove it). so it pains me to say it, but your life coding websites will be easier on Chrome these days.
  • a word on Arc. i’m on the verge of recommending this browser over others for just a better experience in general. (Brave was my previous alt. recommendation)
  • a way to test Microsoft Edge: VirtualBox + free, legal VMs. alternatively, you can look at BootCamp for Mac to install Windows, or you could also use Parallels or VMWare but those aren’t free. my update in 2023 as i write this is, hesistantly and with humbleness, that browser skews have gotten so much better in the past decade that you might not need to check anymore. :ducks in fear of somebody throwing something at me:
  • terminal: iTerm2. killer feature, you can create a shortcut key to have a gamelike visor-like experience.
  • Preferences → Profiles → Window → Style → Full-Width Top of Screen
  • Preferences → Keys → Hotkey → Show/hide all windows with a system-wide hotkey.
  • also, turn on iTerm2 → Secure Keyboard Entry
  • quick note: god, terminals are so unintuitive. and nobody teaches you how to use them, at least nobody certainly taught me. they have hidden characters that you’re just supposed to know about, their manuals are hidden, and you have to just know ahead of time what you are looking for. i’ll discuss some useful commands in the next section.
  • watch this space: there are some even more modern contenders in this space: Fig, Warp
  • who would think command lines could get even better but they are!
  • package manager: Homebrew. let’s you install all the geeky things that you’re going to need later on. MacPorts used to be the recommendation here, but god, what a mess.
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

# install zsh
brew install zsh zsh-completions