Tools I Use to Live My Glamorous Life

Development

Languages/Technologies

  • I am primarily a Python expert (25 years!)
  • I am primarily a FastAPI user, and I am better than average at doing async programming (which sucks and is bad, but it’s fun to do bad things)
  • I primarily choose Postgres as my database
  • I reluctantly use Ruby at my office
  • I do most of my personal dev projects in Go
  • If you ask me to write something in C++ I will say no but I will write C++ to spite you
  • I prefer Linux on the desktop to Mac on the desktop at this point
    • I do not value my time or sanity
    • If something is reliable, I get bored and self-destructive so I need to be in a state of crisis in all aspects of my life and a Linux desktop fills that need in this space
  • I usually prefer Debian stable or one of its relatives for servers and Alpine for container base images
  • I use Tailwind at home, Sass at work
  • I use Solid and plain old JS at home, React at work
  • I use Ollama on Mac and Linux to locally run LLMs

Editors/Environments

  • My muscle memory is Vim, I use it everywhere
  • Most of my polyglot development is via VS Code
    • I use LLMs for developing code signficiantly less than other people on the cutting edge of tech. I have the Continue plugin installed at home against local Ollama but use its features quite sparingly.
    • At work I use Cursor, a VS Code parasite IDE because the Thought Leaders in Engineering Leadership have mandated it, partly as an assertion of thought leadership and partly to assuage the board of directors that we are, as an organization, indeed taking AI seriously. It’s also configured to use local Ollama in the places where it works. I use the chat window occasionally and it fixes some trivial mistakes fine, but I don’t use the non-vanilla-VSCode stuff any more than I use Continue at home (which is to say, maybe 3-5 chats/autocompletes a week).
  • I am forcing myself to use Zed more too, just because monocultures are a Bad Idea and VSC is a monoculture now
  • I like using Ebitengine to make silly 2D games
  • I also (rarely) play around with Picotron, Pico-8, TIC-80 and LÖVE for the same

Command line

  • Here is the bootstrap set of dotfiles I use on new computers
  • I use zsh and bash almost equally, though I think I have more zsh machines now
  • I usually start out with oh-my-zsh or oh-my-bash on new systems
  • I use nvm, pyenv and rbenv to manage node/python/ruby installs
  • I use grep, rg and ag in descending order of frequency
  • I like git-delta for command line diffing
  • I like lazygit for some easy to explain but harder to do than necessary git operations. Sometimes a GUI (or a TUI) is nice! Not everythnig has to be commands or code!

It Came from Userspace

  • I always add ~/.local/bin and ~/bin/ to my $PATH so I can manage my own binaries without superuser perms
  • I download VS Code and Go (setting $GOPATH to ~/.go) from tarballs and manage them myself, adding ~/go/bin and ~/VSCode-linux-x64/bin to $PATH – that way I don’t need to deal with native packages or elevated install permissions
  • Same with Deno
  • Currently in ~/bin: btm slirp4netns1 tmux tic80 (static binaries acquired from their release pages)

Cloud Stuff

  • In the past, I did Terraform
  • At my last job, I learned a little Pulumi
  • At most places of employment, I use AWS
  • I had to learn Azure at my last job
  • At home, I use GCP
  • I am in the process of switching my self-hosted stuff over to fly.io

This Site

Productivity

Producing and Manipulating Visual Artifacts

  • Monodraw for cool text-mode diagrams
  • Xara Photo and Graphic Designer as I have muscle memory and it’s fast to make drawings in
  • The Gimp for quick raster touchups
  • Inkscape to touch up SVGs
  • D2 for diagrams as code – I like it in terms of how clean the language looks, how clean the output looks, and how easy it is to use
  • Mermaid for diagrams extensively because it’s everywhere, mark a code block as mermaid in markdown and you get the rendering for free in things like Obsidian and on Github
  • Graphviz comes along for the party, too – it’s old but it gets the job done for a large range of jobs

Desktop Apps

Mac

Linux

Networked Software

Computer Hardware

General-Purpose Computing and Development

I have a handful of computers I use regularly!

Toys

  • Shanling Q1 for listening to music outside of my home office
  • RG35XX running MyMinUI for video games during my commute hours
  • Flipper that I never break the law with

Non-Computer Hardware


  1. This is missing in ChimeraOS for some reason and the only part absent from a working podman setup on my handheld ↩︎