This blog post describes the various tools that I use for both work and hobby projects, on my development PC.
Most people already have their own go-to tools installed on each computer they use for work, and here I list my own set of tools. I hope that users at all experience levels may find at least one or two new or interesting tools on this list.
I have been using these tools for years. I change them only when there is clearly a better way of doing certain things. However, I often curate the list and am on the lookout for new tools to make my work faster and more enjoyable.
A comprehensive list with the links to software is here
I've been using Edge as my primary browser for several years. The new Edge is based on the Chromium codebase. The ride was not without a few hiccups along the way, but overall, it felt zippier than Chrome, less resource-heavy, and is still accepting all Chrome extensions. A feature that I got to love in particular is Collections. In general, using Microsoft software as opposed to Google's software feels like dealing with an adult in the room vs. a finicky adolescent.
Bitwarden: One of the better password managers. I used to use LastPass but they started asking too much money.
uBlock Origin: An efficient adblocker.
Reddit Enhancement Suite: I am a big fan of Reddit so this is very useful.
Evernote: A web clipper used with an Evernote subscription, see below.
This is an excellent password manager well worth paying $10 per year for their personal tier. Besides providing a Chrome extension that takes care of auto-filling in passwords for sites you have registered, you can also install an Android app to access the vault from a mobile device.
This application has been my central depository and a trusted and reliable keeper of notes, ideas, to-do items, and clippings almost since their inception. Neatly categorized and groomed, it is what David Allen says in his Getting Things Done, my “trusted system”. If something is not there in one way or another, it is not on my radar.
Evernote is as powerful a tool as you care to make it, and the more stuff you put on it, the better it becomes. However, at the end of the day, it simply reflects your own organization of ideas without being in the way. Highly worth its yearly subscription price of $35.
In addition to the expected document store which is synchronized across various PCs, I also use it to store many small utilities and tools in a subfolder named “bin”. Whenever possible, I select a portable version of a tool that I place in there. That way it is automatically updated across PCs when I drop in a newer version.
Ditto for custom fonts, PDF reference manuals, etc.
Windows should ship this software instead of its built-in Notepad!
Sumatra PDF Reader
This lightweight and free PDF reader will do everything you need to do. You can either install it or run it as a small portable executable. In those rare instances when you need to fill in an editable PDF, Microsoft Edge will happily do that.
Basic System Software
Formerly known as TrueCrypt, this free disk encryption tool is the only one you will ever need to safeguard your backup data and laptop drives. Being open-source, there are (presumably) no back doors carved in by either a hacker group or various governments because there are many developers keeping a close watch on it. Although the software implements many interesting security features, for most of us who don’t have many shady businesses to hide, simple whole drive encryption suffices to prevent data from being readable if a disk is lost or stolen. Use a nice, long password, and rest assured nobody on earth can get to it without a password (and that includes you if you forget it).
This is again one of those tools that should have been built into the Windows 7 OS (Windows 10 does have support for mounting ISO images). PowerISO supports several image formats, including those with data being compressed and rearranged for the fastest read access. It integrates with the explorer and you can quickly mount drives or create disks from the content of any folder.
I always map a virtual disk to drive “O:” (a letter that visually resembles a disk).
Good for the occasional use; watch what it is cleaning since sometimes it does too good a job and wipes more than you'd like it to. However, this software has become somewhat of bloatware recently and you need to make sure to uncheck all the optional junk it wants to install, so I am using it less frequently and always delete it after brief use.
SoftPerfect RAM Disk
If you have a sufficient amount of RAM memory in your PC (16GB at a minimum; 32GB being the best) you can dramatically speed up a lot of what you are doing by setting aside some of that RAM to “pretend” it to be a physical drive.
I normally map RAM disk to drive “R:” (as in “RAM Disk”) and allocate 1/8th of the available RAM to it (so for a box with 16GB RAM I would have a 2GB RAM disk).
These are the kind of operations that I always use a RAM disk for:
- Default browser download location (except when downloading large files); ensures the most efficient unzipping of downloaded files into the same RAM disk
- Setting up quick projects for development: whether it be in Visual Studio or Qt, this is the ideal place to quickly test things
- Files that are being processed by some scripts or process
- Most temporary files
By using the RAM disk in such a way, and using it often, I do not burden my SSDs with such temporary and fleeting writes.
This software used to be free, but some time ago they put a price tag on it. I use an older, free version which still does everything I need it to do. Part of its functionality is to save and restore the RAM disk image across PC reboots, so what I put in that virtual disk stays there. I rarely, if ever, have my Windows PC crash and reboot on me – if that happens, the content of the RAM disk is permanently lost. Anyhow, I don’t place anything on it that is critical.
There are other RAM disk solutions but I’ve found this one to be the best one fundamentally doing the job right. It starts automatically with Windows and simply works as expected.
This little directory mapping tool is free and needs no installation. It lets you map any local folder to a virtual drive letter. It starts automatically with Windows and simply works as expected. This is not a RAM Drive but just a mapper: you will still see files and folders -- that you mapped to a drive letter -- at their original location.
In my workflow, I consistently store all my projects in drive “P:” (as in “Projects”).
This consistency helps me build them across various PCs as some tools and scripts can be simplified by having a known path. Note that it is a Very Bad Thing to have your builds depend on a location, but some 3rd party tools that I use in some projects annoyingly require hardcoded paths.
I just noticed this tool became a payware, so I am looking at an alternate solution.
This software is more than a simple dual-pane explorer replacement. For more than 10 years, it is my default folder navigation and file exploration tool. With its elegant options and functions for everything you’d ever want to do with folders and files, it is well worth the small price Nikos charges for a professional version. You can also get a free version as well, but I believe it is somewhat limited.
Although the technology behind Windows gadgets has been deprecated by Microsoft, many of the existing gadgets will still work on Windows 7. I’ve found a couple of them very useful on a PC desktop: Clock, Calendar, CPU usage, and Network Meter. There are plenty of gadgets to choose from at their site. Windows Live Calendar gadget can link to your Google calendar and display events from it.
Various Shell Extensions
This list comprises many small, system-level specific plugins and tweaks tools listed in the reference section below. Both NirSoft and SysInternals sites provide some of the best in the industry class system-level tools.
The following few apps are mainly eye candies but they are still necessary since we look at our desktops for countless hours each day.
John’s Background Switcher
Some people prefer static color desktop backgrounds or they put some image on it and leave it there. I love the beauty of professional photographs and that first moment of seeing one that makes you say, “Wow!”.
I had used Bing Desktop because of its feature to cycle random background images, but after I stumbled on to John’s Background Switcher, I haven’t looked back. John’s image switcher can pull random images from various sources and is very customizable. It is also free. Kudos to John!
USB Safely Remove
I purchased this small add-on because I liked its look and feel. It replaces a default Windows USB device removal widget. It’s one of those visual enhancement tools for which you pay a small fee once and then it lasts you a lifetime.
This is a relatively old program, but if it works, why change it? Stardock has been at the forefront of Windows desktop add-ons but most of their packages I’ve found to be visually over the top. This one is a little subtler. It lets you organize desktop icons in groups and nicely fade them out when not selected. It adds a nice, gentle touch to how the desktop looks and feels, and for a one-time fee, I’ve found it worth owning.
Yet another application launcher you can easily do without, but it’s easy to get used to it and start liking it due to its visual beauty and smooth animations.
This free desktop customization software is a very powerful toolkit that is actively updated. If you are into customization, you can spend hours trying various widgets and themes. After doing exactly that, I simply settled on a custom Trash and Volume knob: trash because of its pretty icon, and the volume knob because of its usefulness. Sometimes small things in life matter.
Imaging and Media Tools
This is a versatile screen capture tool. I use an older version since the new ones became bloatware. In addition to this one, Windows 7 and 10 come with a much simpler capture tool called "Snipping Tool" which is great when you just need to quickly capture something.
Free and open-source vector graphics editor program that you can use to design your application icons and artwork.
Between Gimp and InkScape, you should be able to create or edit any kind of graphics needed by your software.
When dealing with pictures taken with a camera, this rather simple shell extension also turns out to be the most frequently used one. It does only one thing but does it well and in a very convenient way: simply right-click on one or several images and select an option to resize them in place.
Run Linux on a Windows PC (or the other way around). However, Windows 10 now comes with WSL2 which largely solves that need natively.
This is a wonderful package of UNIX tools that include SSH clients, managed sessions, and an integrated X11 server. For example, you can SSH to a remote Linux machine (think RaspberryPi) and open xterm on your local desktop. It also has a built-in Cygwin shell. It is a well-done, comprehensive package that is free for home use.
Whether you work with SQLite databases or you only want to run a few queries on one, this open-source tool will take care of all those needs.
It’s hard to do any serious project development these days without using Python in some way.
Source Control Management
This is arguably one of the best, if not the best, file and directory compare tools around. It is not free, but the Standard version is worth buying: unless you do a 3-way comparison, you don’t need the Pro version (which costs twice as much).
I use this tool dozens of times each day to compare source changes before checking them in or to compare directories and sync folders and files during the backup etc.
It integrates into the explorer menu so it’s always available to select the “first” and “second” folders or two files to compare.
This is a visual front end to the git source control which I use every day for all of my projects and at work. I wrote GitForce to have a nicer UI for git and to not have to deal with the git command line, ever.
Editors / IDEs:
As you might have already guessed, I spend a lot of my time configuring the environment so that it “just feels right”. For someone writing code day in and day out, not only the editor needs to be right, but also the font it uses.
This is not software, but a website that provides a very elegant way to precisely configure (create) and then download your own fixed-pitch font; you can set various attributes and dimensions, preview it on real-world source code examples, and then download it once you are happy with its looks.
After downloading it, configure every editor to use it, and then enjoy a consistent and personalized feel.
MS Visual Studio 2019
Unless you have an MS Developer License, there is a lighter version of this seasoned IDE available as “Community Edition”.
Every few years Microsoft comes up with a new version and it's not always clear that you should upgrade right away: at times they appear to take a step backward but developers eventually accept each new version since there are improvements to be gained. Anyhow, nobody wants to be left using old tools for too long.
I prefer to have important tools like this one-version behind the latest and greatest. I update all my personal projects - even the old ones - to the same version of tools. That prevents code rotting and a need to keep more than one active toolchain around.
The IDE may take a very long time to start, especially after you have added a few add-ons. You can start it much faster in safe mode by creating this shortcut:
"C:\Program Files\Common7\IDE\devenv.exe" /SafeMode
Plugins for Visual Studio:
Use this plugin when working on C# applications. It makes Visual Studio even better; the C# code simply writes itself at this point!
Qt Visual Studio Tools (Add-on for VS)
Although you can use QtCreator for everything Qt-related, sometimes debugging a Qt application may be more effective when done within Visual Studio. This free add-on will import your Qt projects and completely switch your workflow over to Visual Studio IDE for writing, building, and debugging your app. Since the two projects are now independent of each other, you can still use QtCreator but if you add or remove any files, you will need to synchronize that between project configurations. This add-on only supports building desktop applications, though.
Sublime Text 4
This is a sophisticated and snippy source code text editor with tons of plugins available to speed up your work. I use it for every project for which I don’t explicitly need Visual Studio.
This is a great IDE when working with Python. It is also the best Python visual debugging tool you can find. It can help you with other languages as well (including write-only languages like Perl.) Note that newer Visual Studio versions can also debug Python, so this tool might eventually fade out.
I’ve been using Qt since 2010 and love the framework! Having written a couple of Android apps and a number of apps and tools at work (I worked on tools and managed several tools teams at NVIDIA), I feel this is the way to write cross-platform software. The API that it provides is extensive, well documented, and robust.
Qt comes with a nice IDE (QtCreator) although you will probably also want to install a Qt add-on to Visual Studio to get a better debug capability.
Although the official Android application development tool is Google’s Android Studio, I prefer using Qt mobile framework because it is cross-platform and I already know its framework quite well.
Simple IDE to hack small projects and test new peripherals and sensors.
If you own any PJRC’s Teensy board, you will also install their Arduino IDE add-on so you can compile and upload sketches to it. (https://www.pjrc.com/teensy)
Atmel MCU development
Many times the selection of a microcontroller for a project is based on the quality (and price) of the supporting tools. Atmel scored a touchdown with their development tools. This powerful IDE is based on a proven Microsoft IDE backbone and it adds everything you will need to develop, deploy and debug any project based on Atmel MCU.
There are not many choices when selecting tools for the FPGA development because those are proprietary to each vendor. Quartus/Modelsim and Xilinx ISE are IDEs for Altera and Xilinx products.
HW and Electronics
Saleae builds and sells some good, low-end, USB-connected logic analyzers targeted to students and hobbyists. The software they provide is also very intuitive and easy to use.
JTAG programmer and debugger for Atmel MCUs. It can be used with AtmelStudio.
Eagle PCB design
I used Eagle for many years but now avoid all newer versions published after Autodesk purchased the software from CadSoft. Recently, I started using JLCPCB for my boards and they have a tool called EasyEDA. I started using that tool since it is simpler, it works for everything you may need and it integrates with their PCB manufacturing flow.
If you know any other interesting or useful tools that should be added to this list, please share (either by post or by emailing me directly).