Common Tools for Software Development
List of tools that I’ve used throughout my development career that you might find useful too. I use this list when setting up a new VM or workstation.
Browser
- Google Chrome
- It’s most people’s default browser although Edge has a better performance in Windows.
- Brave Browser
- I use this personally for browsing.
- It has a lot of default privacy features.
- Can be used to test if a website will continue to function if all the security and privacy features are enabled.
Package Manager
- Homebrew
- Homebrew initially started as a MacOS package manager but is now available for Linux distros. It’s a good package manager if you want to always have the latest version of the software you need. Otherwise, it’s hard to keep older versions as the philosophy of Homebrew is to only maintain the latest versions.
Editor
- Basically an editor on steroids.
- Can function as an IDE through extensions.
- List of extensions
- Vim by vscodevim
- C/C++ Extension Pack by Microsoft
- CMake by twxs
- Python by Microsoft
- C# by Microsoft
- Extension Pack for Java by Microsoft
- Intellicode by Microsoft
- GitLense by GitKraken
- Git History by Don Jayamanne
- Remote - SSH and Remote - WSL by Microsoft
- Handy windows notepad editor.
IDE
- Intellij
- Probably the best IDE for Java development.
- Eclipse
- Not the best IDE but I’m keeping it here since there are limitations in the community edition of Intellij.
File Explorer
- Multi Commander
- Far Manager alternative.
- Useful when opening a lot of directories simultaneously.
Process Manager and Monitoring
- Process Explorer
- A superuser alternative to Task Manager.
- Process Hacker
- A much more modern alternative to Process Explorer.
- Note: This tool has been flagged recently as malware by antivirus softwares because malicious actors have used it in some attacks.
- htop
- A great process manager for Linux.
- A modern alternative to top.
Terminal and Terminal Emulator
- PuTTY
- Remote connection to *nix and IBM i machines.
- WSL can basically replace this tool but I’m keeping it here just in case.
- WinSCP
- File explorer to a remote machine.
- tmux
- Tmux is a terminal multiplexer that helps you to manage multiple terminal sessions.
Remote Desktop
- mRemoteNG
- Remote desktop connection manager where you can connect to multiple remote desktops and the connections are arranged via tabs.
- VcXsrv
- X11 Window server
- More actively developed than Xming.
Virtualization
- VirtualBox
- For hosting virtual machines
Containerization
- Docker
- Modern day containerization.
Version Control
- Git
- Need I say more? Even this website version controlled with Git.
- Follow this guide for setting up in WSL especially for credential management.
API Platform
- Postman
- Postman is described in its website as “an API platform for building and using APIs”. It is something I often use for testing REST API endpoints. Currently, it can also support websockets.
LDAP Browser
- JXplorer
- Free LDAP Browser
Database
- SQL Developer
- No longer bundled with Oracle database starting from version 19.
- IBM Data Studio
- DB2 development studio
IBM
- IBM i Access - Client Solutions
- 5250 terminal (green screen) emulator is handy when connecting to IBM i machines.
Meeting Tools
Developing software requires a lot of collaboration so minimizing noise coming into your microphone is also essential.
- Real-time Noise Suppression Plugin
- This is a noise suppression plugin that filters out non-voice sound from your microphone. I currently use it as a plugin for Equalizer APO which is an equalizer application for Windows.