Juan Villela

Here’s some of the stuff I use for work and procrastination.


I used to be a Mac guy. Maybe I still am. But after having to part ways with my M1 Air, I started using an old gaming PC I built a while back. I’m not a lunatic, so I replaced Windows with Linux —Pop OS specifically. Now, I don’t think I’d go back to Mac.

Update (2022-02): I was provided a new (as of this update) M1 Max MacBook Pro by my employer. Which is overkill for my work, but it’s a fantastic laptop. The Linux PC is currently serving as a Plex server in my closet.

  • CalDigit TS4 - This thing powers everything on my desktop from a single Thunderbolt cable; audio gear, peripherals, and monitors. It even charges my MacBook. Amazing little dock.
  • LG 27UK650-W - It takes some calibration to make it look just right. But once it does, it’s a solid workhorse of a display. I have two of these stacked vertically.
  • Keychron V10 (Alice Layout) - After years with a HHKB Pro 2, I swapped it out with this Alice layout. It’s far more comfortable for me and how I position my hands while I type. I swapped out the switches for some Zealios V2s (67g).
  • Logitech MX Ergo - So nice and comfortable.
  • UpDesk Standing Desk - The table is pretty good, but the customer service is nonexistent.
  • Herman Miller Aeron Chair - Fantastic chair.
  • Ubiquiti Dream Machine Pro - The only reason I got the Pro was to mount it on a rack. This also runs NextDNS to filter out my internet traffic.
  • Ubiquiti Switch 8 (PoE) - I have a couple of these around the house to extend the ports coming out the wall.
  • Ubiquiti UniFi AC Pro - Solid access point.

Audio Gear

  • Electro-Voice RE320 - Fantastic mic for Zoom calls and DnD virtual sessions. It’s overkill for my use but my voice sounds sexy now.
  • dbx 286s - Brings the volume up on the mic and adds some hardware tweaks to make the sound smoother.
  • Tascam US-2x2HR - Best bang for your buck, IMHO. It’s just plug-n-play.
  • beyerdynamic DT 990 Pro - These are overkill for essentially Zoom and podcasts. But TOOL does sound lovely in lossless with these.
  • Topping E30II - Great DAC that feeds into the L30II.
  • Topping L30II - Great Amp to power the DT 990 Pros.
  • Bluesound POWERNODE - This serves as audio input for the TV, AirPlay endpoint, DAC, and AMP. It’s a great sounding all-in-one box. Pretty sweet.
  • Klipsch RP-600M - These sounds great and sweet for my messed up hearing.


Dracula Theme all the things.

Desktop Apps

  • VS Code - Honestly, I’ve tried every editors at this point. This is by far the most decent one. It is solid enough, way too customizable, and integrates perfectly with all my tooling.
  • Alacritty - Best cross-platform terminal. Solid and performant.
  • Transmit - Rarely use it, but it’s nice to look at.
  • Affinity Designer - Who needs Photoshop.
  • Things - I’ve tried them all and this UI is simply the best for me.
  • Drafts - All text starts here.
  • Raycast - There are so many macOS launchers and I’ve used them all. This one is by far my favorite. It almost as customizable as Alfred, but feels more solidly built. This also handles window, clipboard, and snippet management.
  • SoundSource - It’s a simple app that audio management so much easier.
  • Hazel - A computer should run itself. This does the trick.
  • Bartender - Too much crap on the menubar.
  • CleanShot X - If you regularly take screenshots or screen recordings, this is the app you should be using. It’s so powerful, but still manages to be very user-friendly.

Mobile Apps

  • ShellFish - The iOS FTP app.
  • Working Copy - I can’t believe this is an iOS app. Paramount for mobile git-ing.
  • Scriptable - Sometimes you just need a little JavaScript in your automation.
  • Castro - I always go back and forth between this and Overcast. I love Overcast for its quality build, but Castro has a fantastic UI.
  • Unread - This syncs to Feedbin. The UI is fantastic.
  • GoodLinks - This is honestly the best read-it-later app you can find. It’s pretty much perfect.
  • Ivory - Twitter and Reddit are dead to me. Mastodon is where it’s at. The indie app scene is thriving right now, but when it comes to top-notch UX, you can’t beat Tapbots.
  • Panels - I read a ton of manga and the occasional comic. I buy most of my stuff digitally and prefer this to any native reader. It’s an amazing app with iCloud sync and even OPDS server streaming stupport.
  • Prism - Plex Amp is great, but if you want a no-nonsense audio player for your Plex music library, this is the app.
  • Prologue - I usually read my books with a companion audiobook. I found this app (made by the same dev as Prism) which utilizes a Plex “music” library as an audiobook. It’s wonderful.
  • Infuse - Keeping with the Plex, theme this is an amazing Plex video player. While I like the Plex apps, these tend to give you more controls, with a better UI, and far less clutter.


These are entirely for VSCode, my text editor of choice. I’ve tried them all and this is what I like the best. And so do many other developers. I try to keep my plugin use to a minimum to prevent the app from running slow. Most of them are for some sort of syntax optimization. But the ones listed here are what enhance my everyday experience.

  • GitLense - If you use the built-in Git functionality, this thing will add a lot of the features you might be missing.
  • Git File History - I’ll go as far as to say you need this plugin. Grab a file, run this plugin, and easily scroll through the version history. Such a life improvement.
  • GitHub Pull Request - Instead of my usual gum/sk + Git + gh utility for CLI PR creation, I’ve been trying out this plugin. There were some early bugs, but they’ve since been ironed out. Overall, it’s great. If you’re already using VSCode’s built-in git functionality like I do, this will integrate nicely into your existing workflow and make it feature complete.
  • Error Lens - Give your linter errors some nice color so they’re easier to parse.
  • Pretty TypeScript Errors - You know those useless compiler errors that spit out a ton of unreadable gibberish? Yeah, this solves that.
  • TODO Tree - If you’re a TODO person, this will make finding them far easier.
  • Better Comments - This makes code comments easier to parse.
  • GitHub Copilot - It can be a bit obtrusive at times. But honestly, the quality has become so much better and provides good code more often than not.


Although there’s a plethora of tools and apps available for development work, I often find some of them lacking. So this is a combination of handmade tools and some great open source options. These lists are the amalgamation of years of trial and error to find just the right combinations. I’ve also included some stuff I’m testing out.


  • tenjin - Early on in my development career, I realize a lot of time was spent copying and pasting previously use code. So I started to keep a repo full of commonly used scripts, stylings, configs, templates, and snippets. That eventually morphed into a JS CLI utility. This current iteration is written in Go and has a slimmed-down collection with just the stuff I need for work and personal projects. I quite like this little tool.
  • showrunner - I run a Plex server at home for all my media. More often than not, I need to rename entire TV Shows to the correct formatting. I’ve tried using a couple of shell scripts before, but this tool does it in a single command. Plus, it pulls the metadata from TMDB API.
  • scriptable - There is so much automation that happens on my phone. Most of it is through Shortcuts. But there’s only so much it can do before it becomes unmanageable. Unless you’re Federico. These are the various JS scripts, running on Scriptable, that make iOS automation so much easier.
  • dotfiles - I think most devs have a dotfiles repo somewhere. I took what I liked the most from others and made something easy to maintain and expand.


I started finding Rust alternatives to some of the default CLI tooling for greater security (debatable) and an overall nicer UX. Also, the cargo experience is superior to any other package manager.

  • starship - I love cool prompts. This one is robust and highly customizable via a single TOML file.
  • zellij - Tmux is great and all. But I came across this on Twitter and found it faster. You can write your plugins, define them via a YAML config file, and what got me is the ability to define layout configurations via various YAML files, which are then called via flags.
  • zoxide - This is just cd on steroids.
  • exa - A prettier and feature-rich ls.
  • fd - A prettier and superior find.
  • bat - A prettier and more useful cat.
  • rip - A better rm.
  • delta - If you’re a CLI git user, you’ll love this thing. It makes diff output far more readable and thus more useful. You can also use a custom theme and who doesn’t love that.
  • sd - This thing is one of the most crucial binaries on my computer. It powers the majority of my CLI utilities.
  • gum - For smaller and simpler jobs where I just need to choose from a list.
  • atuin - Amazing quality of life improvement utility. It creates a simple but powerful searchable shell history UI.
  • sheldon - There are so many zsh plugin managers. This one is lightweight and easily managed via a TOML file.
  • cargo-update - This little utility brings the cargo experience up to 11. A simple package updater.
  • topgrade - I didn’t know I needed this until it came into my life. Single command to update all your software. It’s OS configurable, and you can even add/omit your own commands. Pretty nice quality of life improvement.
  • git-interactive-rebase-tool - If you’ve ever had to rebase or edit some commits, you’ll know it’s a pain. This makes it slightly more user friendly.
  • forgit - This does almost all of the things I’ve written zsh scripts for. It’s just an awesome git companion. I love it’s git add functionality. It gives you a scrollable list to pick which files to add, but more importantly, a preview of the file to the right. It’s just awesome.

Trying Out

  • gitui - Tower was my GUI of choice for Git, but with the help of a handful of utilities I’ve written for myself, I find CLI to be as useful and often faster. But this thing sorta merges the two to bring you a pretty cool CLI “GUI”. I’ve been using it on and off for some time and like it. At the time of writing this (2021-08-26), they do not have GPG commit signing, which makes it hard to use on a regular. But it’s currently in the works.