Stuff I use

May 28, 2021 29 min. read

Stuff I use

I write a lot about things I'm interested in, and in many posts, I've alluded to particular pieces of hardware or software I use. I'm also often explicitly asked what I think of some software or why I chose what I chose.

In case anyone is interested, I've put together this page to consolidate all of the above 😅. Despite being a timestamped blog post, I'll keep these page updated as time goes on (as well as linking to any relevant posts which might get written about changes in my setup).

Hardware

I'll outline computing devices and peripherals in separate sections below, simply because oftentimes, my peripherals happen to be used by more than one computer.

Computing Devices

Most of my general-purpose computers run the same software stack, so I'll detail those in another section, though I've expanded a little in cases that aren't 100% true.

  • Primary Workstation: Custom built
    My daily driver for all my development work is a custom-built workstation I built a few years ago.

    It's a little outdated so I'll probably upgrade soon but it's currently made up of the following components/parts:

    Case: Corsair Obsidian 750D
    CPU: AMD Ryzen 5950x (16C/32T) clocked @ 4.0Ghz
    GPU: Inno3D GeForce RTX 3080
    Memory: 32GB Corsair Vengeance @ 3200Mhz
    Storage: Samsung 860 EVO 250GB + 2TB WD Blue HDD
    Motherboard: Asrock X470 Taichi
    PSU: Corsair RM850

  • Secondary Workstation/Server: Custom built
    This computer was originally built before going to University, though it's gotten many upgrades since. It usually just gets hand-me-downs from my primary workstation as I upgrade that.

    Unlike literally all of my other machines, instead of running Windows 10, it runs NixOS, though I use PCIe-passthrough to run Windows 10 LTSC as a host for running/streaming games through Steam.

    I don't do anything fancy with the NixOS side of things, though I have plans to host many services locally via k3s. I'll update this as that happens. 😅

    On the Windows side, Windows 10 LTSC automatically boots into Steam's Big Picture Mode, which is displayed on my TV in my bedroom. Coupled with a bunch of dedicated Steam Links, weaker general-purpose computing devices, and Android TV boxes around the house, I can enjoy my entire Steam library (which is way too large), Visual novels, and emulated games effortlessly and at the comfort of something that isn't a desk!

    It has the following specs:

    CPU: AMD Ryzen 2700x (8C/16T) clocked @ 4.2Ghz
    GPU: XFX AMD Radeon RX 550 (4GB) for NixOS
    GPU: Gigabyte GeForce GTX 1060 (6GB) for Windows
    Memory: 16GB Corsair Vengeance @ 3200Mhz
    Storage: Samsung 860 EVO 250GB + 2TB WB Blue HDD
    Motherboard: MSI A320M-A Pro
    PSU: Corsair TX550M

  • Primary Laptop: "New" Dell XPS 15 9500
    This is my primary, work-provided, laptop and I use it whenever I don't want to work at my desk.

    Day-to-day, though, since I'm usually using my workstation, I use Synergy to share my workstation's keyboard and mouse so I can keep all my work-related software installed here rather than polluting my daily driver's OS. This also means I can use the XPS as a second monitor for reading documentation, Slack, as well as a webcam.

    As a standalone machine, it runs everything I throw at it admirably, and the battery lasts most of the day without needing to recharge.

    It has the following specs:

    Display: Infinity Edge w/ touch @ 4k
    CPU: Intel i7-10750H (6C/12T) clocked @ 2.6Ghz
    GPU: NVIDIA GeForce GTX 1650 Ti
    Memory: 32GB OEM Provided @ 2900Mhz
    Storage: OEM Provided 1TB NVME

  • Secondary Laptop: Microsoft Surface Laptop 3 13-inch
    This was my primary laptop until not long ago. I bought it myself to replace an old, work-provided Macbook Pro 13 (2016) since I really didn't get along with MacOS 😅

    Nowadays, I don't really use it, and it acts as a secondary computing device in a pinch or as a general computer for family to use if they're staying over.

    It has the following specs:

    Chassis: Alcantara in grey 🧡
    CPU: Intel Core i7-1035G7 (4C/8T) clocked @ 1.3Ghz
    GPU: Intel Iris Plus 950
    Memory: 16GB OEM Provided @ 2400Mhz
    Storage: OEM Provided 512GB SSD

  • Media Consumption Tablet: Microsoft Surface Pro 4
    This is a tablet that I use for consuming media (Netflix, Visual Novels, ebooks, etc.) when I don't physically want to use a laptop.

    Because the form factor is so convenient, if I don't anticipate having to work when I travel (when that used to be a thing), this would double as my primary laptop. Despite its age and declining maximum battery life, it lets me do development work in a pinch.

    It has the following specs:

    Typecover: Alcantara in grey 💗
    CPU: Intel Core i7-6650U (2C/4T) clocked @ 2.2Ghz
    GPU: Intel Iris 540
    Memory: 16GB OEM Provided @ 2400Mhz
    Storage: OEM Provided 512GB SSD

  • Phone: Xiaomi Mi Mix 3
    This is a phone I find very hard-pressed to upgrade from. I've never been very embedded in the Apple ecosystem, so despite having owned iPhones in the past, I've never stuck to it.

    When the iPhone started popularizing the notch, I really admired the minimizing of bezels but really, really, really, dislike the "notch". I think it's such an inelegant solution to needing to design for a front-facing camera.

    Thankfully, that's where the Mi Mix 3 shines! The phone is made of two sections that slide over each other (much like an old-school sliding phone) to optionally reveal the front-facing camera.

    Not only is the phone effectively bezel-less in every sense of the word, it's also amazingly satisfying to play with the magnetic slider mechanism. It has a real weight and quality to it. It comes with all the features one would expect from a contemporary flagship phone, including a fingerprint sensor, NFC support, wireless charging, and pretty much everything else I care about.

    Despite having bought one at launch, the battery still lasts the entire day, and the slider mechanism still feels as smooth and solid as the day I got it.

    It has the following specs:

    OS: MIUI Global 12.0.2 (Android 10)
    CPU: 4 powerful Kryo 385 Gold (2.8Ghz) cores and 4 weaker Kryo 385 Silver (1.7Ghz) cores
    GPU: Adreno 630
    Chipset: Snapdragon 845
    Memory: 8GB
    Storage: 128GB

Peripherals

  • Desk: Fully Jarvis Bamboo Standing Desk
    I used to use an IKEA Idasen standing desk after getting used to standing in the middle of the day when I used to work in an office, but a good friend recommended the Jarvis to me when I was shopping for something a bit more stable and less loud.

    I went with the 160x80cm bamboo tabletop because I loved how warm. I also went with the gunmetal table legs plus the optional bamboo desk drawer and programmable controller.

    Overall was a great purchase. Despite the fact that I already had a standing desk, the smoothness, quality, and warmth that this desk emanates makes me look forward to working atop it 😍

  • Headphones: Sony WH-1000XM4
    Just a really solid set of headphones. The noise-canceling works reliably and it's really good, they're comfortable, the battery lasts forever, and they sound great.

    There are a few intelligent features such as pausing whatever may be playing and disabling noise cancellation when you speak, as well as doing the same when you perform some gestures. These are neat features but I don't use them very much outside of skipping/pausing media.

    My only complaint is that I have to be very careful wearing these out, since they're not waterproof at all and not exactly cheap! Whenever it rains (which is often in London), I have to put them away pretty quickly.

    I'll probably invest in some wireless earbuds to make up for this weakness, but overall I'm pretty happy with the purchase.

  • Monitor: LG UltraGear 27GN95B
    This is my first time using any sort of high refresh-rate monitor. I primarily got it so that I could enjoy 4k 144hz gaming paired with my GTX 3080, but the improvements to fluidity even when browsing the web make me feel like I'll be hard-pressed to ever go back to a low refresh rate monitor.

    My previous monitor was a BenQ PD2700Q, which had amazing colour accuracy and decent blacks (especially for a monitor from 2017), and while the colour accuracy and black levels are noticeably worse, it isn't so bad as to detract from an amazing viewing experience.

    I'm not a fan of "gamer" aesthetics, and whilst the back of the monitor features RGB and some pretty edgy design, the front of the monitor is incredibly tasteful, with very minimal bezels easily matching the look of my XPS 15. This monitor is highly recommended, especially due to the lack of choices at the time of writing for 4k + 144hz.

  • Keyboard: HHKB Professional Hybrid
    I originally bought this HHKB because I wanted to experience what people meant when they said that Topre key switches felt amazing to type on and were nothing like any of the switch types I had tried in the past.

    I ended up keeping it as my primary keyboard and seldom ever use any of the other keyboards in my collection.

    I really enjoy the feeling and sound of these unsilenced Topre switches, and despite some initial hardship with the layout, once I adapted, I couldn't bring myself to go to a larger form factor.

    The HHKB is super light, effortlessly fits into my bag, is wireless (and I only change the batteries once every 2 months or so), can connect to multiple profiles, and more! I admit the layout might be a deal-breaker for most people, but I'd definitely recommend trying out Topre if you're at all into mechanical keyboards.

    I'm also using aftermarket Japanese legend keycaps because it looks cool 💪

  • Primary Mouse: Logitech MX Master 3
    A lot has been said about the MX Master 3, so I won't ramble on for too long.

    It's a great mouse with arguably the best scroll-wheel money can buy. Once you get used to the thumb scroll-wheel, most mice feel lacking. It's adequately weighty, precise, wireless, and doesn't need ridiculously frequent recharging—a win on all fronts.

  • Secondary Mouse: Logitech M730
    My secondary mouse is almost permanently paired with my Surface Laptop 3 or Surface Pro 4.

    Its battery lasts a hell of a long time, even compared with the MX Master, and it's much smaller, which lets me throw it into a bag if I'm traveling.

  • Gamepads: Steam Controller
    Whenever I want to use a traditional controller for gaming, I use one of my Steam Controllers.

    These controllers seem to be a controversial topic on the web; people will either attack them as unwieldy and (admittedly) not very suitable for fighting games or defend them by calling them the most configurable and comfortable controller money can buy. I'm very much in the latter camp. 😁

    These controllers eschew the right analog stick and traditional D-pad for two touchpads which can be configured to do a bunch of things (oftentimes just to emulate the input method they replaced). I agree with the sentiment that they're not ideal for high precision inputs such as fighting games (though I used to play an embarrassing anime fighter: Naruto Ultimate Ninja Storm 2–4 competitively at a top 3 level in the UK 💪💪💪). They're great for enjoying shooters, though, so you win some, you lose some.

Software

image

I'm actually a bit of a software purist with respect to running as little software as possible. I'm definitely not suckless tier, but I try to avoid installing software if I can help it.

You can definitely see how that pans out with a few less popular choices below!

  • Primary Operating System: Windows 10 Pro
    I've written a lot about running Windows 10, so I won't ramble on too much here.

    In short, if I could run all my software across all my hardware without sacrificing driver stability, driver availability, software availability, or battery life, I'd definitely run Linux (most likely NixOS) on all of my machines. Unfortunately, that isn't the world we live in today unless you're okay with carefully choosing and considering your hardware from a subset of available hardware.

    In my experience, the most cited reasons why Windows isn't something people should use usually involves telemetry, uncontrollable automatic updates, or poor developer experience. I totally agree that these are problematic—to an extent.

    So long as I have my email hosted by Google or have any social media of any kind, people are collecting telemetry about me. It's gotten to the point where telemetry and "spying" is an unavoidable fact of life. I've simply given up this fight.

    Uncontrollable updates are annoying, and once the next release of Windows 10 LTSC is available, I'll be buying a copy of that. That way, I don't get any of the bloat that usually comes with Windows 10 or any updates outside of security updates. The only reason I'm not using LTSC at the moment is that WSL2 isn't available in the current LTSC release.

    WSL affords me a real Linux experience, running on a real Linux kernel, so as far as I'm concerned, the developer experience is there. You get all of the benefits (outside of idealogical benefits) of running Linux while benefiting from all that Windows (and proprietary software) has to offer.

    If you're a macOS user, @ me up when you can run Docker natively 😉

  • Secondary Operating System: NixOS or Alpine Linux
    I've spoken about why I use Alpine Linux on WSL2 and why I drank the NixOS kool aid, so again, I won't ramble on too much 🤞

    Whenever I can run NixOS on bare metal, I will. I operate a few VPSes, and even those run NixOS. I really appreciate all of the configuration, stability, and reproducibility benefits that it affords you. I genuinely think NixOS has been onto something and will become an indispensable tool in the future.

    Whenever I can't run NixOS, I'll opt for running Alpine Linux because, by default, it's super minimal and lightweight. I have my own extensive Nix + HomeManager config, which I install atop Alpine Linux (or literally any other OS that Nix is compatible with), and I'm ready to start hacking away.

  • Web Browser: Microsoft Edge
    I've already started receiving hate mail 🤣

    I used Firefox religiously for the past 15 years or so and only recently switched to Edge after Microsoft made "Edgium" publicly available.

    I do think that trying to avoid a browser (rendering engine) monopoly is a good thing, but Microsoft Edge is actually pretty good! The main features I like include built-in support for vertical tabs, tab collections (I can save all my work-related stuff into a tab "workspace"), and complete(?) interoperability with the Chrome ecosystem, so I never need to worry about stuff being janky because some developers only tested on Chrome.

    Vertical tabs are new to me, but I'm aware you can get them on Brave (out of the box?) and Firefox (with an extension) but how wild is it that Windows 10 comes with a modern, fast web browser with a built in adblocker (I still use uBlock though) and support for things like vertical tabs? That's pretty wild!

    Honestly, it's entirely possible I'll switch back to Firefox, but not having to install an alternative web browser is really nice. One less moving part!

  • Terminal Emulator: Windows Terminal or Kitty
    When I'm on Windows, Windows Terminal is literally the best terminal you can use when it comes to trading off features for speed. What I mean by that is: it's super featureful and fast 🤯

    When I'm on Linux, I use Kitty, which is also very featureful and GPU accelerated. I've heard a lot of discussion about whether or not GPU acceleration in the terminal is actually useful but it seems fine to me.

    The main considerations I have when choosing a terminal are whether or not they support window padding, mouse events, Unicode, and ligatures. Unfortunately, this excludes many other popular choices such as alacritty.

  • Shell: zsh with oh-my-zsh
    When I was still at University, I read Steve Losh's post about zsh, and I tried doing something similar myself. It just stuck!

    Admittedly, I mainly use zsh for eye candy. I know most of what I use is achievable in standard bash, or probably anything else, but it works well enough! More recently, I've started making use of CDPATH which lets me set up "portals" to jump around my filesystem, but again, its nothing fancy.

    Unfortunately, oh-my-zsh is pretty heavy and slow, and in the past, I've actually switched to zprezto, which is much lighter weight. When switching all dotfiles to nix, I ran into some issues with the built-in zprezto support and didn't bother debugging it since it was easy enough to port my config to oh-my-zsh instead.

  • Text Editor: Neovim
    I get by perfectly fine on vanilla Vim. Still, when working on larger and more complex projects, I really appreciate Neovim exclusive plugins such as coc.nvim, which provides really strong IntelliSense.

    I've pretty much always used Vim, so I don't have any objective reasons as to why I'm not using something like Visual Studio Code. Still, this way, I can continue living in my terminal and keeping everything configured easily, as well as maximally utilising years of building up Vim muscle memory.

    I don't use many plugins (though I suppose the amount one considers "a lot" is rather arbitrary). I wrote a walkthrough of my Vim configuration and plugin usage here if you're interested.

  • Colourscheme: Monokai
    I just really like Monokai and like that it's available for pretty much everything (including custom Github userstyles—a fact I abuse for the syntax highlighting of this blog!).

Back to Blog Index →