Intel i7-4790, 16GB RAM, 1TB SSD, GTX970
I’ve been building my own workstations since grad school. It’s fun to choose exactly what components I want, and I can convince myself that the money I save is worth the time I spend. This machine is enough for local development, and I move to a cloud GPU for heavy training.
Just one monitor
Before 4K I ran a multi-monitor setup with 3 27″ 1080 screens. It looked cool but now I have a nice 4K panel on my desk. A 4K display is 3840 × 2160 pixels and 1080 is 1920 × 1080 pixels, meaning 4K has as many pixels as 4 HD monitors. I don’t need more.
Cherry MX browns
I like the feel of a mechanical keyboard and given how much time I spend touching it I want it to be just right. The brown switches give nice tactile feedback (which the reds don’t), they’re light under my fingers (unlike the greens), they’re not too loud (like the blues), and they have the standard 4mm travel with actuation at 2mm.
Herman Miller Aeron Chair
It spend a lot of time in this chair. It’s worth it.
I have a Lenovo XYZ that I use on the road but given current trends in build quality, spyware, and price, I may switch to a Macbook for my next laptop.
Still my go-to terminal text editor. I’m no vim wizard but I’m comfortable enough to edit code or config files on remote servers. My favorite part is that since commands are just keys pressed in normal mode, you can type a sequence of keys in input mode, save that to a register, then execute that register as a script.
I begrudingly switched to VS code a few years ago, but now I actually really like it.
zsh, tmux, powerlevel10k
It won’t make you a great programmer, but it will make your terminal look cool and you’ll feel like one.
When programming, I like a font with a large x-height and clear distinctions between all similar-looking characters such as uppercase I (as in India) and lower case l (as in lima). There are many such fonts designed for programming but my favorite is Hack. I see a lot of people using Fira Code but the ‘j’ just looks ugly to me, like the ‘g’ in Source Code Pro. Monoid is too thin and Iosevka is too bold. My other favorite is JetBrains Mono.
TensorFlow if needed for a client, otherwise PyTorch.
I’ve spent a lot of time trying to use Python’s
multiprocessinglibrary, but the actor model is just easier to reason about and has fewer gotchas. Ray is a great way to do parallelism in Python, plus it interacts really well with numpy.
I do a little 3D work, mostly for visX videos. In this video, for example, I did all the 3D stuff myself. Mostly though, I use Blender as a simple video editor.
Great for keeping data synchronized between my various machines. No reliance on external services and I run the backups myself. All network communication encrypted so it’s safe for low-priority client data.
My daily driver OS for the past few years. It’s almost everything I want in a linux distro. It’s stable, clean, mostly unmodified gnome 3, no snaps, just works and gets out of my way. There are some nice quality-of-life things like pre-installed nvidia drivers. The killer feature is the tiling window management.
Pen and Paper
Lamy Lx fountain pen
smooth, clear, not too fancy or expensive
I used a G2 all throughout college and grad school but now I can only find the 0.7 mm versions. The G-Tec-C4 is a similar gel pen (it’s the international version of the Hi-Tec-C sold in Japan) available in a range of thicknesses. I use 0.4 mm.
The paper has a nice bite, little bleed, and it’s available where I live.
My favorite acoustic guitar. It has a wonderful tone, full and balanced.
DAW of choice. Really good for MIDI and virtual instruments, although all the DAWs are really good these days.