My Current Development Stack

5 min read

My intention is to blog more about the ups and downs of my software development technologies I’m currently using. While I’m not ready to announce what I’m working on (primarily to prevent any more “SHIP IT YESTERDAY!” anxiety than I already have), I can talk about the tools and tech without concern about shipping schedules or the “what” yet.

The List - April 2025

One thing to note — my 99%-time project right now is building a web-based application. So, the list is definitely influenced by that. These are in no particular order:

  1. Rust. Sure, it’s popular, literally everyone is rewriting everything using Rust 😁, while all the vibe-coders are wishing their LLMs would do better Rust coding. I’m definitely not a vibe coder. I picked it for 2 reasons: cross-platform capabilities (Windows, MacOS, and Linux*). Further the crate ecosystem (packages) is robust and for my project, I need a robust web-server host. While it’s definitely not a favorite programming language from a syntax perspective, there are many things I do like about it. Further, with Axum, I can bundle the entire content of the web application into a single executable, so distribution is a snap (no, not Snap).
  2. Rust Axum - this is the web application framework I’m using with Rust. It’s fast and straightforward to use. I tried a few other options and many are “fine” as well, this one just was slightly better for my needs and is well documented (and used, so it’s easier to get help if I get stuck).
  3. TypeScript - I like types. Even inferred types. JavaScript is fine, but sprinkle on a few TypeScript type declarations and I am confident my code is more accurate and will have fewer bugs. I’ve tried JSDoc — and it’s more overhead for less benefit. One common issue with TypeScript is that it’s errors are not always clear, and a lot of libraries do gymnastics with types to attempt to provide an ultimate level experience. When it works — great! When it doesn’t, it can be very frustrating.
  4. Svelte - I’ve used a lot of web and UI frameworks in the past few decades, but Svelte is the one that I keep coming back to. It’s the closest to “bare-metal” web development that is available. It has a few bells in whistles (like Runes/signals) that kick it up a notch. Svelte 4 was good, but Svelte 5 is the one that helps me be consistently productive. The primary downside is the availability of pre-built UI widgets. There are a few options that I’ll discuss in a later post, but the community hasn’t created the same quantity as is available for React.
  5. Svelte Kit - I use Svelte Kit for static (MPA/SPA) site generation. I’m not using it for dynamic content generation or server rendering. From what I’ve read, this is not uncommon. You’ll get client side routing and static generation as desired.
  6. Visual Studio Code - Look. I’ve tried other editors, and the extensions available for VSCode are so numerous that it’s rare when something isn’t available for VS Code. Unlike other developers who seem to enjoy suffering through printf or console.log as a technique for debugging an application, I make heavy use of debuggers. Debugging Rust works like a charm (for what it is). I’ve tried many others, and I keep returning to VS Code.
  7. MacOS & Mini - I bought the M4 mini late last fall. It’s plenty fast. I routinely switch to using Windows so I frequently use the wrong keyboard combinations for copy/paste/cut. Ugh.
  8. Ubuntu Server - I do nearly all development in a VS Code remote dev container over SSH. Not only does it make my development environment accessible from anywhere, I’m assured of consistent development environment experiences every time. I’ve crafted a few Docker configurations that handle all of my needs. I have Ubuntu running exclusively on a centralized hardware in our house so that I don’t need to hear it’s fans during the day.

Productivity Boost

The wisest thing I’ve done regarding my productivity is buying the Mac.

Buying the Mac was not for the reason you might imagine. I’m not more productive with a Mac specifically.

I now have a computer (the Mac) dedicated to “work” and a PC dedicated to “everything else.”

It’s remarkable how much more focused I’ve been able to be with this configuration.

I couldn’t trust myself to not-hobby during my work hours (especially as I work in the same location as my hobbies are located). By buying the Mac, most of the “hobby” software isn’t available either as I’ve historically bought software for Windows. Even having no easy access to personal email address is a big productivity boost. I could have bought a second PC, but buying the Mac made better sense since I eventually plan to have the app I’m building work on MacOS as well.

Maybe Soon

  1. Elixir - Depending on how other things go … my wife is working on a training course and needs a web app/site for it. I’ve learned Elixir (and Phoenix) and it’s a serious contender. I could use SvelteKit, but there’s a lot of “noise” it adds to just building a web site (plus features like auth, and payments).
  2. Zig - I like Zig. I’ve been very productive building things in Zig. It’s refreshing simple when compared to other languages. Biggest downside really is the lack of a complete package system. I’ve even explored using Rust and Zig together so that I could get the best of both.

🤓 - Did you know that I had a quote on the TypeScript web site for a year or more?