Blake's Essential Windows Software

This is my list of software that I find essential on a Windows machine. These are the programs that I either immediately install when I setup a computer, or I end up installing as I need them. In most instances I've tried a number of solutions before settling on the best one for my use case. I maintain this list for my own convenience so I can quickly remind myself of (and find) all of the software that I liked the best the last time I evaluated a category.

All of these programs are free, and most are open-source as well. In some cases I have listed alternatives, honorable mentions, or close seconds. Having said that, I try not to have redundant programs unless they bring something to the party.

I would love to get feedback at if I'm missing a really great program that would enhance my quality of life and make me wonder how I ever lived without it.


Photo Manager/Viewer/Editor

  • Photoscape X: Great program for photo viewing and casual touch-up. It makes it easy to do common tasks like cropping to standard sizes and removing red-eye. There is a Pro version with extra features, but the free version boasts a truly impressive feature set that is more than enough for most people. If you buy the Pro version it's because you like it so much, not because you felt forced into it because the free version was so crippled.

      • My runner-up is FastStone Image Viewer. It has a lot of power, including robust batch processing, but the interface is just awkward and unintuitive to me.

Photo/Image Editor

  • GIMP: Robust image editor similar to Photoshop. It might not be appropriate for a casual user who just wants to crop some photos, but it's not really suited for DTP pros either since it's missing native CMYK support. Having said that, if you're doing non-print stuff, it will almost certainly get the job done if you have the patience to learn the tool. Bonus: the scripting allows for complex plugins and automation.

      • Paint.NET is a fantastic alternative to GIMP for those weary of the learning curve (or the name). It is less powerful than GIMP, but it's easy to use and really polished. It's the Paint program Microsoft should have shipped with Windows.

Photography Raw Workflow

  • darktable: If you work with RAW photo files or want to get the most out of your photos, you need a non-destructive post-production software like darktable. This isn't about "photoshopping" a picture; instead it's all about histograms, levels, curves, sharpening, colors, lens correction, noise, etc.

Vector Image Editor

  • Inkscape: Really nice vector image editor for creating professional quality, scalable diagrams, logos, you-name-it.

Artistic Image Editor

  • Krita: Great digital painting software. It actually could replace Gimp for many use cases, and it supports CMYK.


  • Blender: 3D modeling and animation. Has more power than I have skill, but other people do really cool things with it. It's fun to play with though and is worth the download.

  • Synfig Studio: Nice 2D animation package. I dabble with projects, and when I do, this works for me.

Media Players

  • VLC: Video player for nearly any format imaginable. Especially useful for when you need to do uncommon things like adjust audio/Bluetooth sync or load custom subtitles.

  • MusicBee: A great way to organize and play your local music library. Includes handy features like gapless playback and auto-tagging. An app like this is becoming nearly obsolete as I move to online services like Amazon Prime Music, Spotify, Pandora, etc.


  • Greenshot: You don't know how useful a good screenshot tool is until you start using it. It's really handy to automatically save screenshots (or portions of screens) to a predetermined folder and keep it on the clipboard as well.

      • Recent versions of Windows 10 now come with a tool called "Snip & Sketch" that does something similar (use SHIFT+WINDOW+S key combo to access it), although it doesn't automatically save the image to a file.

Audio Editor

  • Audacity: Legit multi-track audio editor.

Audio/Video Conversion Tools

  • HandBrake: Convert video from nearly any format. If you want to convert your DVD library, you'll need to put the libdvdcss library in the Handbrake directory.

      • If Handbrake is too confusing and all you want to do is rip a DVD, MakeMKV rips and decodes DVDs (even with copy protection). It just isn't as versatile as Handbrake.

  • fre:ac: free audio converter and CD ripper for various formats and encoders including MP3, MP4/M4A, AAC, and more.

Video Editing

  • Shotcut is a capable multi-track editor with a nice interface. If I don't need anything special, this is the first place I reach.

  • kdenlive: If you do need something special like key-framing, it's great to have kdenlive in the toolbox. Shotcut has it beat in a few areas, so I still prefer it in general, but kdenlive has some features that make it worth having around.

      • Also check out:

        • DaVinci Resolve: This is a professional package, but they have a free version that's very impressive. It outshines the above editors in features, but I'm reluctant to learn a free tool that could be retracted at a whim, so in general the opensource tools above get my vote.

        • Openshot: I'm listing this to remind myself to keep an eye on its development. Feature-wise, it seems like it falls right between Shotcut and kdevlive, but it feels pretty buggy yet. Having said that, it might scratch your itch, and it's worth checking out along with the others.

Media Server

  • Plex: The best personal media server for steaming your media to your Roku, Fire Stick, smart TV, etc. Just tell Plex where you store your movies, TV shows, and music and it will do the rest, including downloading cover art and show descriptions. I actually run my Plex server on a Linux SBC now, so I don't technically need this on Windows anymore, but I'm keeping it on my list for posterity because it's really fantastic software.

Network and Internet

Web Browser

  • Google Chrome: My default browser since the day it was released.

      • I left Firefox for Chrome, but I like to keep Firefox around for the odd task, and it is arguably more pro-consumer with its stance on ad-blockers.

      • And because you can never have too many browsers, Brave is another nice option if privacy and security are a high priority. It is essentially just Chrome with extra privacy features, but it also includes a Tor browser, which is handy. It is also very fast.

Remote Shell Access

  • PuTTY: Awesome ssh/telnet/rlogin client. It's been the premier free terminal client for many years because it's simple and works while not skimping on features.

File Transfer

  • WinSCP: Great ftp/sftp/scp client with lots of advanced features like bandwidth limiting and shutting down the program or computer after file transfers are done.

  • qBittorrent: Lightweight, yet powerful, BitTorrent client. This is basically uTorrent without the tedious ads. For server use, I prefer Transmission.


  • Discord: The apparent successor to Skype and Teamspeak in certain circles, especially the gaming world. I have no particular affinity to the app itself, but it works fine on both desktop and mobile, and there are some cool communities that made their home on Discord.

  • HexChat: A solid IRC client. While IRC isn't as popular as it was back in the day, it is still used quite often in dev communities, and it's a great place to ask questions when Stack Overflow isn't fast enough. If you don't know where to start, you will find a ton of active channels on

      • Note: The Windows 7 installer is free from the website, and it works great on Windows 10 as well. If you click on the Windows 10 app version, it takes you to the Microsoft store where it costs $9.99.

Remote Desktop Control

  • TigerVNC: If you need remote desktop control, this lightweight VNC client/server forked from TightVNC does the job. I just don't find myself using VNC as much as I used to as I move more functions to the cloud and rely less on my own desktops.


Local File Search

  • Everything: This is the search tool that should have come with Windows. It supports wildcards, boolean operations, exact cases/phrases, and regular expressions. Just type a filename, and you'll get immediate results from all your drives instantly. If you want to search network drives, you will need to go to Options and add them to your search folders under Indexing. You can also search file contents, although that will take much longer.


  • 7-Zip: Archiver with great compression, useful from command line, nice GUI and Explorer integration, and it is fast.

      • PeaZip: If 7-zip doesn't work for you because you've encountered some obscure format, PeaZip is the place to look. It supports basically every format that you would conceivably (or inconceivably) run into. You also might like its interface better than 7-zip.

Disk Imaging/Formatting/Repair

  • balena Etcher: A nice clean, easy to use program to write disk images to a flash devices (USB drives, microSD cards, etc.). This is great for putting Linux distros on bootable USB drives or setting up a microSD card for a Raspberry Pi.

      • Runner up goes to Rufus. It gives you more options than Etcher at the cost of some added complexity. I have also run across some images where Rufus works where Etcher fails, so it's handy to have Rufus around even if I use Etcher 99% of the time.

  • Macrium Reflect Free: Great for making disk images or transitioning a computer from a traditional harddrive to an SSD. The Free edition has all the essentials, and the last SSD transition I did was seamless. I highly recommend.

  • EaseUS Partition Master: The Windows 10 disk management tools are limited in functionality, and sooner or later you may need a tool like this to fix/partition/format a drive. My most common use case is recovering all the space on a USB drive that has a Linux image on it, perhaps with multiple partitions, one of which is the EFI boot partition. The Windows Disk Management tools might let you delete some (but not all) partitions, while the free version of Partition Master will have you back in business in seconds. It also resizes partitions and clones disks, but the free version won't create an image of a live OS like Macrium Reflect Free, hence I still have both listed here.

      • SD Memory Card Formatter may be a simpler solution if all you need is to fix an SD card. Some devices can be finicky about the format of SD/microSD cards, and this official application from the SD Association has fixed some obscure issues I've had in the past. This is especially true of SDHC/SDXC cards since Windows 10 seems to like formatting higher capacity cards as NTFS instead of FAT32.

  • TestDisk: If you need this, you've probably done something really bad like accidentally deleting a partition table. TestDisk can help you recover lost partitions, make a disk bootable again, or even recover files from deleted partitions (among other things).

File Recovery

  • Between these programs you should be able to recover any file that is physically possible to recover without special hardware. I'm listing them all because sometimes one can get the job done where another can't.

      • PhotoRec: Comes in two flavors: command line and a simple graphical interface. This is the first thing I try when I need to "undelete" pictures I accidentally deleted from an SD card. Comes with TestDisk (see above).

      • Recuva: Very polished interface, and the free version has enough features for most people.

      • Zero Assumption Recovery: The free version has some limitations, but the digital image recovery mode has no functional limitations.

      • DiskDigger: Lightweight, single exe so no install necessary. While it is free for personal use, it will nag you before recovering each and every file, so if you have a lot of files to recover, it is worth just buying it.

Disk Performance

  • CrystalDiskMark: If you want to check the read/write speed of any storage device, you can't do much better than this free MIT-licensed app. A tool like this really helps weed out the trash if you like to buy cheap SD cards or flash drives. Some are worth buying again while others aren't, and CrystalDiskMark gives you the data to make that decision.

File Deletion

  • Eraser: Secure deletion with a nice GUI and Explorer integration. Useful if you don't like the idea of having remnants of tax returns and whatnot on drives. The advent of modern SSD drives has thrown a monkey wrench in secure deletion, so do some research before trusting that your file is really gone. (Hint: it's probably not.)


  • Revo Uninstaller Free: Uninstalling programs using the usual methods often leaves a lot of junk around. Revo does a better job at really removing a program.

System Cleaner

  • BleachBit: Cleans up your system and deletes stuff you don't need hanging around like logs and temporary files.

Two-Factor Authentication

  • Authy: Really handy way to add 2FA to all your accounts and across all devices. There are Authy mobile apps as well, so once you add Authy to a service (Gmail, Facebook, Amazon, etc.), you are good to go whether you're on your desktop, laptop, phone, or tablet.

Disk Encryption

  • VeraCrypt: On-the-fly disk and file encryption. Works absolutely seamlessly with the OS so you wouldn't even know you are using an encrypted disk. This is a continuation of the old TrueCrypt program.

File Management

  • WildRename: Wonderfully robust file renaming utility that supports regular expressions.

  • WildReplace: Search for files and replace text in the files.

  • WizTree: The best way to see which files are eating up your diskspace. It is INSANELY fast because it uses the master file table instead of querying each file.

Console/Command Line

  • ConEmu: The console emulator that I always dreamed of on Windows, but never had. It is a must if you use the command line in Windows. It is basically just a wrapper for cmd.exe, Powershell, Python, whatever, but it is very configurable.

      • Also worth considering is Microsoft's newly minted Windows Terminal which works very well as of version 1.0, but it lacks the feature set of ConEmu.

  • Swiss File Knife: This is the essential command line tool set for Windows. It does a little of everything, and you need to just read the list of commands on the website to believe it. It's a single executable, so it's portable as well.


  • FreeFileSync: Local backup and synchronization program to do things like make nightly backups from one hard drive to another.

      • For something more involved than simple "folder sync", Duplicati might be what you need. It does incremental backups and data deduplication, and it works nicely over a network, making remote admin a breeze.

  • Google Backup and Sync: For cloud backup, this is an easy solution if you're invested into the Google ecosystem, which I am. Backs up photos and anything else I tell it.

      • Maybe you don't trust Google or you want more control of your data. If you'd rather host your own cloud, it's hard to beat Syncthing.

Linux Environment

  • Windows Subsystem for Linux (WSL): Run Linux tools directly in Windows without a virtual machine. Bash, Zsh, compilers, interpreters, grep, awk, and all the rest of the command line tools you need right under Windows. You actually can download this from the Microsoft Store now (for free), so there's no direct download link. You even have your pick of various supported distros.

  • VcXsrv Windows X Server: If you're running WSL, you may want an X server to run GUI programs, and VcXsrv works great. Choose the "multiple windows" option to seamlessly integrate X programs into the Windows desktop. A couple quick tips:

      • Add these lines to your .bashrc file:

export DISPLAY=:0.0


      • If you don't want seamless windows and you want to run an X desktop window, you probably want to install something like Xfce4:

sudo apt-get install xfce4-terminal xfce4

#if you want a bunch of default Linux desktop apps:

sudo apt-get install ubuntu-desktop

#after starting VcXsrv, you need to start Xfce4 each session:



  • Virtualbox is the best free solution for running virtual machines. It is an easy and robust way of running Linux (and other OSes) under Windows, which is often handy for some toolchains or just testing out a script or something in a Linux environment.

Document and Text

PDF Viewing

  • Acrobat Reader DC: The original and still probably the best PDF viewer. Due to poor performance, I used to prefer alternatives like Foxit Reader, but Foxit started catching up in the bloat category and either Acrobat got better or my computers got faster.

eBook Utilities

  • Calibre: All-in-one ebook manager. Whatever you need to do to/with an ebook, this will do it. It organizes, converts, downloads covers, etc.. Absolutely indispensable if you have a non-DRM ebook collection. With plug-ins you can even strip DRM to backup your purchases. (Pro tip: search for "calibre DeDRM")

  • Freda: A nice standalone e-reader that handles the popular formats like mobi and ePub. The main advantage it has over Calibre's built-in reader is the extensive customization options and font rendering.

      • The honorable mention goes to Sumatra PDF because it is a convenient all-in-one reader for PDF, EPUB, MOBI, CBR, CBZ, CHM, and XPS. While Sumatra might not be the best solution for ebooks or comics, it's handy to have around, and some books even look better in Sumatra (usually because of font rendering).

Comic Reader

  • YACReader: Comic reader organizes as well as displays comics. Reads every popular format: cbr, cbz, cb7, pdf, etc.

Markup & TeX/LaTeX Tools

  • Pandoc: Convert markup formats to other other formats. Handles Markdown, html, EPUB, LaTeX, etc.

  • MiKTeX: A port of the LaTeX document publishing system. Output can be PDF, HTML, etc.

      • This isn't a software link, but a really useful site about LaTeX fonts is here. And while I'm breaking the rules and posting web links, here's a really good website for LaTeX info.

  • TeXstudio: Lightweight portable LaTeX IDE, including editor, spell checker, and symbol toolbars. For those keeping track, this was forked from TeXMaker back in 2009, and it's clearly outpaced it.


  • LibreOffice: Provides all the usual "office" suspects, like a word processor, spreadsheet, and presentation applications. While still lacking the polish of MS Office, for most use cases this is a passable replacement. The key functionality is there, and the major gaps of the early releases (e.g. Goal Seek and Pivot Tables) have long since been filled. Worth noting: LibreOffice Draw works well for flowcharts (similar to Visio).

      • Full disclosure, I don't find LibreOffice essential in the sense that I use it often. I like LibreOffice as a convenience so I can easily open an MS Office file or perform the odd task, but I actually far prefer working in the cloud with Google Docs and Sheets. (Sheets is even better than Excel or LibreOffice Calc in some ways, for instance, try out the split() function.)

Text Editing

This is a busy category, but text editors are like knives: you wouldn't use a Bowie knife when you need a scalpel or a steak knife when you need a machete, so I use multiple editors depending on the task.

  • Neovim: vi was a legendary, powerful keyboard-based text editor with a steep learning curve, Vim is its most successful derivative, and Neovim aims at pushing Vim into the 21st century with a clean code base and features like Lua extensibility and asynchronous plugins which allow for things like async linters. Some people think it's silly to use a vi clone more than four decades after it was introduced, but there are some tasks that are orders of magnitude faster in a vi clone than modern mouse-oriented text editors.

  • Geany: A versatile cross-platform programmer's text editor that you can configure to be anything from a simple Notepad.exe replacement to an ultra-lightweight IDE. This is what I use for quick edits and reading text files, as well as light coding. There are lots of great features hidden in the official plugin package, so be sure to grab it as well.

  • WriteMonkey: For writing prose, it's hard to beat this distraction-free text editor. It has Markdown support and other handy features that push it to the front of the pack for its genre. Check out version 3 for the newest cross-platform codebase.

  • Honorable Mentions:

      • For probably a decade I previously used Notepad++ for light coding and general text editing, but the antiquated syntax coloring system and somewhat clunky interface was enough to make me look elsewhere, eventually replacing it with Geany. It still is a fast editor and it shines when opening a 1 GB log file... as long as it doesn't need to be syntax colored as well.

      • Sublime Text is such a clean, good looking editor, and it gets points for popularizing (if not actually inventing) the command palette and document map (and maybe even multiple cursors?), but I want to like it more than I actually do. It is excellent software, but it isn't worth the $80 price tag when it doesn't really offer anything substantially different than most modern editors.

      • Atom is described as a "hackable text editor", and it really is. I have written Atom plugins for specific tasks, and it was fairly easy, which is why there are pretty good plugins for a myriad of languages, tasks, and customization options. It is a bit slow at start up (and slow in general), so it isn't the best choice for a quick edit, but the plugins make it the right tool for some of my niche use cases.



  • SpeedCrunch: Calculator with FAST start-up and plenty of functionality. This is the first app I reach for when I need to do some simple math on the desktop.


The Python libraries Matplotlib and Seaborn (see below) make standalone graphing software somewhat redundant for me, but the feature sets and easier-to-use interfaces make these still worth checking out.

  • gnuplot: While it has a steeper learning curve than a GUI driven program, gnuplot's spartan interface helps you plot and tweak quickly without having to know the commands. This venerable GNU program has been around since the 1980s quietly excelling in its domain. If something can be plotted at all, it can probably be plotted by gnuplot. You might want to start with the demo gallery to see what it can do.

  • Veusz is a great plotting package that has a robust graphical interface and an impressive array of supported plot types. From 2D to 3D, from box plots to polar plots, Veusz has you covered. The main selling point for me is that you have total control of everything you see on the graph: colors, lines, fonts, you name it. There are some downsides, most notably: strange handling of error bars, poor histogram functionality, and the data manipulation could be better.

    • If Veusz isn't doing it for you, these two programs handle some things better than Veusz, and they're worth having in the toolbox for some tasks:

      • LabPlot: Fantastic software if you only need XY plots (although it does adequate histograms as well). It is very customizable, but be aware it takes some exploration to really figure out everything it can do. You can definitely produce something that doesn't look like just another Excel plot.

      • SciDAVis: Like LabPlot, it has a limited selection of plots, the histograms (and box plots) are mediocre, but it does XY line/scatter plots pretty well.


  • Jamovi: This is a great package for quickly analyzing some data and making decent-looking stats plots with very little effort. If I want simple descriptive statistics, a histogram, or a quick t-test, Jamovi makes it easy (although honestly, if I need much more than that I'm probably in Jupyter using Python with libraries like Pandas to help slice and dice the data.) Jamovi looks very polished, and the core functionality is there, but I wish there were more customization options for the graphs and more data manipulation tools. Also, it's worth noting that Jamovi is one of the many front-ends for R, the 800-pound-gorilla of stats packages, so there are a number of modules available to add functionality.

      • JASP looks very similar to Jamovi, and in fact, at first glance the interfaces appear to be near clones. While I find Jamovi just plain better in a number of ways, I'm keeping my eye JASP because both of these packages appear to be under very active development, and JASP supports some analyses that Jamovi doesn't while still offering an easy-to-use interface.

      • On paper, BlueSky Statistics should be the easy winner in this category. It has many, many more features than Jamovi. However, I don't find the interface as intuitive for casual analysis, and by default the plots look fairly bad. The plots can certainly be tweaked through the R language, but it isn't transparent to the casual user. Besides the impressive collection of analysis methods, the real reason I might reach for BlueSky instead of Jamovi is the robust set of data manipulation tools.

      • PAST is the only non-"R front-end" in this category. If you look past the deceptively plain interface, this is a super powerful stats program chock-full of functionality. There's no safety net or hand-holding to help you interpret the results, but it has an amazing manual describing the equations used and even includes extensive citations, so this is no black box. It has a very robust set of statistical plotting tools, and the histograms are actually pretty good with a fair amount of customization (including overlaying a normal distribution).

Symbolic Computation

  • Maxima: Symbolic computer algebra system with robust plotting. Comes with wxMaxima, which is an easy-to-use graphical interface.

      • Runner-up is SymPy, which technically isn't a program, but rather a Python library.

Numeric Computation

  • GNU Octave: A numerical computation program that started off as a MATLAB clone, so porting programs is fairly trivial. The use cases of a program like this (for me) are pretty narrow these days given the accessibility and capabilities of programming languages like Julia and Python (along with libraries like SciPy and NumPy). Octave is still immensely powerful though, and a great environment for mathematical exploration, so I'm leaving it on my list.

      • The obvious runner-up here is Scilab, which has a long history as a capable numerical analysis package and has always had significant overlap in functionality with Octave (and MATLAB for that matter). You may like Scilab better for some reason, so if you're serious about math you should check it out, but the Octave community is more active and there are more libraries available for Octave, so I'd still start there.

2D/3D CAD Modeling

  • Autodesk Fusion 360: I hate to rely on proprietary software that might be pulled behind a paywall tomorrow, but Fusion 360 is a professional-grade 3D modeler that can't be passed up when they're giving it away for free. Professionally, I've used everything from Pro/E to Catia to I-DEAS to NX to Inventor and a half dozen more CAD packages, and Fusion 360 is as good as any of them for creating 3D models. The interface is incredibly intuitive if you've used any real CAD package before. If you sign up as a hobbyist (i.e. not for commercial use) you can get a free license.

    • Two open source, free alternative CAD projects worth mentioning if you don't want to use Fusion 360:

      • FreeCAD : Fairly full-featured 2D/3D parametric CAD modeler. This is the only free CAD program that looks even remotely like a real, commercial CAD program, and it's capabilities are pretty amazing for what it is, but it's still painful for me to use compared to any good commercial product. The interface is clunky and seems to work against me at every step, and for some tasks I just can't figure out an efficient workflow (or can't figure out how to accomplish at all).

      • Solvespace is such a tiny, fast, quirky, unique, and capable program, I had to mention it. Don't let the retro look fool you. This is a powerful 2D/3D parametric modeler with a legit constraint solver. Besides FreeCAD, that is a very rare find in free CAD software. This interface is nothing like a standard CAD package, but if you are into making 3D objects for 3D printing, this program is great. For normal use, I think the glaring omission in its feature set is a tool for adding fillets/rounds. That's a deal breaker for me.

Electronics Schematics

  • ExpressSCH: This is a really simple program for making quick schematics. Download Classic ExpressPCB and you'll get ExpressSCH too.

      • KiCad is WAY more powerful, but it's usually overkill for my simple needs.

GPX Viewer

  • GPXSee is a nice and simple GPX viewer with basic conveniences like speed/elevation graphs and several map source options (including topo maps). It's the perfect track viewer for hikers and other outdoor sports where you might record a path with a GPS or one of the many mobile apps that does offline mapping.

Geographical Mapping Software

  • JOSM is fairly niche software, but if you want to edit a GPX file (or even OpenStreetMap data), this is probably your best bet. It is shocking how many terrible GPX editors are out there, and JOSM stands out as a truly capable package in comparison, even if it can be unintuitive at times. If you need to edit a GPS track to clean it up before uploading to a website or archiving, JOSM is your best bet.

  • QGIS is where you go when you want to work with GIS data to make custom maps, combine map data from various sources, etc. There is overlap between QGIS and JOSM for sure, but they really do different things, so it's worth having both in your toolbox if you are into maps. My favorite function in QGIS is the Georeferencer tool which lets you map a raster image map onto actual coordinates. This is handy for doing things like superimposing a scanned trail map onto a topo map.


Version Control

  • Git: A distributed version control system that quickly took over the open source world, and with good reason. A big bonus is you get all the Unix command line tools along with the install.

Programming IDE

Note: Some of the editors in the general Text Editor section above are also great for programming (or even specifically designed for programming), and they could have easily been listed here instead.

  • Visual Studio Code: I think Microsoft shocked a lot of people when they knocked VS Code out of the park. I didn't see it coming, but it is a legitimately great IDE for just about any language. From linter to debugging, everything you need can be integrated into a seamless workflow.

Text Comparison

  • Meld: My favorite graphical file comparison (AKA "diff") program. There is 2 and 3-way file diff and merge, as well as directory comparison.

Compiled Language

  • Go: Even though I don't do a ton of programming in compiled languages on Windows, when I do, I am usually making command line programs like file utilities, text manipulators, number crunching programs, etc, and Go fits the bill nicely.

Scripting Language - General Purpose

  • Python: My favorite general purpose programming language. It's perfect for getting the job done quickly without a lot of boilerplate and heavy lifting. I'm a pragmatic engineer, so I just want to solve a problem as efficiently and elegantly as possible, and I'll leave the arguing about static typing and whatnot to the real developers and CS engineers.

    • All the essential Python libraries are on PyPi, so here is a pip command line (for easy cutting and pasting) useful for STEM programming and then a description of a couple of useful packages to get you started:

        • pip install jupyterlab seaborn PyQt5 pillow markdown sympy statsmodels (This a short list, but it pulls the more important dependencies like scipy, pandas, and numpy.)

        • SciPy is a scientific package useful for everything from statistics to linear algebra. Also vital are pandas and NumPy which handle data structures, numeric arrays, and math functions. These three packages really work hand-in-hand.

        • PyQt: Probably the best looking, best featured, cross-platform GUI toolkit.

          • Also worth checking out are wxPython, which is a really nice toolkit that I've used on a number of projects, and Kivy, which accommodates mobile platforms with features like multi-touch support.

        • Matplotlib is a robust plotting library, and Seaborn is a higher level package that can really improve your productivity.

        • Jupyter is an interactive notebook where you can embed Python code and plots and easily share the sessions with others or save them for later. Jupyterlab is the next-gen interface, and you should use it if you haven't used Jupyter before.

Scripting Language - Math/Science

  • Julia: Just an incredible tool for mathematical or scientific computing of any kind. The lightweight syntax is a delight even by Python standards, and its speed usually matches or beats compiled languages due to its JIT compiler and language design. Julia is made for speed (both in writing and execution), and (in my opinion) combines the best of Python, Fortran, MATLAB, and R. I use it more as a math tool than a general purpose scripting language, hence this separate category.

      • If you like Julia, you might like the JuliaMono font. I can't justify listing this with the other fonts below because it's so specific to Julia, but this is an interesting font intended to leverage Julia's excellent Unicode support for actual math operations. Check out the website for examples.

Hex Editor

  • HxD: Has everything I need in a hex editor. Simple and lightweight.

Programming Fonts

Below are a few truly excellent fonts suitable for programming, consoles, terminal windows, PuTTY, etc. While just one font should be sufficient, I typically have all of these installed as one font may look better in a certain terminal or editor, at a particular size or scaling, or on a particular monitor.

  • Dina: Great bitmap font in 6, 8, 9, and 10 points with normal, bold, italic, and bold/italic faces. I like the 8 and 10 especially well. Dina is so clear and crisp that it is actually pleasurable to read.

  • Source Code Pro: This font from Adobe looks very clean on high resolution monitors. The family of fonts includes Extra Light, Light, Medium, and Black variations. This is just a simple, no frills font that's easy to throw on a random computer to get a decent font quickly. Perfect for when the two fonts below can be overkill.

  • Input: Incredibly flexible font system that lets you customize letters (a/g/i/l/0) and symbols (asterisk/braces) to your liking, as well as choose from 7 weights and 4 widths, and sans, serif, and mono variants. There are 168 styles in all, so you will find one that works for any given situation.

  • Iosevka: Similar to the Input font, Iosevka raises the bar by adding ligatures, a couple more weights, 188 variants, and incredible character coverage with thousands and thousands of supported glyphs. While you can't customize individual characters like Input, there are variants with different character and symbol styles, so you should be able to find one that has the look you want. There are so many choices it can be confusing, but if want a general purpose font that works everywhere (but doesn't have ligatures), start with the "Iosevka Fixed" font.

Music Creation

Digital Audio Workstation

  • Cakewalk: This used to be a commercial DAW that is now free as of 2018. It’s a rebranded version of SONAR Platinum, and it's incredibly powerful. This is a great place to start if you want to make some music.

Step Sequencer

  • LMMS: Its website says it's a "sound generation system, synthesizer, beat/baseline editor and MIDI control system which can power an entire home studio". I'd call it a nice step sequencer with VST and SoundFont support for creating music. I wouldn't call it a DAW because it doesn't record multitrack audio, but combined with Audacity, you can make some cool stuff. Honestly, I wouldn't even list LMMS now that Cakewalk is free, except LMMS is opensource, and Cakewalk may go away sometime in the future.

Synth Plugins

  • A couple great synths plugins worth trying with LMMS and Cakewalk are dexed and Helm.

Sheet Music Generators

  • MuseScore: Easy to use interface for creating sheet music.

      • If you want to make sheet music and have complete control over every aspect of the output, LilyPond is where it's at. There's no GUI, it's super niche software, so it's not for everyone.


I'm not going to list actual games here, but rather just some gaming related software which facilitates me playing games.

Games Launchers

  • Steam: Must-have for PC gaming. Regardless of the two options below, I prefer Steam every time I have a choice.

  • Epic Games: I'm just here for the free games.

  • Amazon Games: Prime members get free games, otherwise I wouldn't bother.

Console Emulation

  • RetroArch has you covered if you're looking to play some old school games from retro systems like the Atari 2600, NES, SNES, and many more.

Game... um... Enhancement

  • Cheat Engine: Okay, look, I don't hate fun, but I have limited time for gaming, so sometimes when I'm enjoying the story of a single-player game but it's kind of grindy, I'll use Cheat Engine to give myself resources or something. It's not trivial to figure out, but it can do amazing things.

Interactive Fiction (IF)

    • Windows Frotz: My favorite Z-machine interpreter. If you play interactive fiction games or know what Infocom games are, you probably already know what this is. This supports all the various Infocom formats: zip, dat, z5, z8, etc., including z6.

        • Frotz8 is a native Windows app based on the frotz interpreter that supports touch screens, and it has handy integration with the IF Archive. It appears to be stagnant since 2013, so I'm not expecting anything new.

    • Lectrote: This is my current choice for a multi-format interpreter that handles more than just Z machine files, and while it's the new kid on the block, it has novel features like autosave. It looks really nice to me (great fonts and themes), but it uses ZVM as the Z interpreter, so it only supports Z3, Z4, Z5, & Z8. Other format support includes Glulx, Hugo, TADS, and Ink. This seems to be under active development, so we'll see where it goes.

        • Gargoyle deserves a mention because it supports every format I've ever run across because it is basically just a wrapper for a number of interpreters. The default (and excellent) Bocfel Z machine interpreter has partial support for z6 files too. Its other claim to fame is its focus on good typesetting, which is a really interesting niche. But be warned, it essentially has no user interface, so you need to edit a text file to change fonts and whatnot.

        • Filfre: This is easier to use than Gargoyle for sure, so I'm mentioning it here, but it has minimal customization options. You might want to choose this if you need Glulx support and want an interface similar to Windows Frotz. It's probably not the best choice for Z-Machine files because it only supports versions 3, 4, 5, and 8 story files. The project has been stagnant since 2013, so what you see is what you get.

    • Trizbort: If you play IF games, you know mapping is essential, and Trizbort helps you do that. There is even an automap function that works pretty well.

    • Just for easy reference, here are some websites to find and download some great IF stories to use with the interpreters: