System Setup With My Favourite Tools & Technologies

A guide to setup your machine to be similar to mine

Back

My Development Setup

This post details my current development environment, tools, and software that I use daily. 🛠️ I hope this might be useful for others setting up their development machines. ✨ Best part, I'm also going to add installation scripts & commands for Windows 🪟, Linux 🐧 & Mac 🍎. I'm on Linux though, so I have 100% confidence in the Linux commands. 💯

Hardware

  • 💻 Laptop:
    • 🏭 Manufacturer: Micro-Star International (MSI)
    • 📱 Model: Modern 14 C12MO
    • 🧠 Processor: 12 × 12th Gen Intel® Core™ i5-1235U
    • 🧮 RAM: 8GB DDR4
    • 💾 Disk: 1TB SSD
  • 🖱️ Mouse: IRIScan Scanner mouse
  • 🎧 Other peripherals:
    • 🎵 Volkano LEO 2.0 vk-1130 True Wireless Earphones.

These computer specs have been perfect for both my development work and school projects. ⚡ I really can't complain about the performance, I got the recommendation from some blog post I saw on dev.to. I just lost reference to the exact post though. Sorry. 🤷‍♂️

I prefer using the trackpad because it feels faster ⚡, but bought this mouse mainly because it doubles as a scanner. 🔍 That's how I scan all my handwritten assignments and exams - pretty cool feature. I can't live without my earphones since I'm on Spotify constantly. 🎵 Yes, I'm a Spotify user through and through! 🎧


Operating System (OS)

I used Windows for a while, which makes sense since it's usually the first operating system we encounter when we start using computers seriously. Now I use it as a backup option by running it in a virtual machine, along with macOS Sonoma. 🍎 I mainly use both systems to try out different things, and I specifically use Windows to test my C++ assignments before submitting them to make sure they work properly. ✅

Installation (Primary OS)

I won't get into detail with this because it's out the scope of this post. Have a look at VirtualBox 📦 or VMWare 🖥️ and how to get setup with Fedora on either. To be generous, I've linked to a YouTube video here for virtual machines (recommended) 💻✨ and here for bare metal 💽🔧.

Good Luck! ✅


Windows & Mac Setups For Package Management

To help everyone install software easily, no matter what operating system you're using, I'll show you how to set up both Windows and macOS with package managers like we have on Linux. This makes everything much simpler, you won't have to keep opening your browser and going to different download pages every time you need new software. 🚀

⚠️ Not all the software will be available through these package managers though.

Installation

💡 On Linux your don't need to install any package manager. We're using Fedora here so we have DNF5 setup and ready to use! 🐧

Windows

💡 There are other package managers you can use on windows, but I will be using Chocolatey 🍫 because that is what I have the most experience with. WinGet is also a good one.

‼️ For chocolatey to work as expected, you need to run these commands & every other installation command in PowerShell with admin privilages. 👨‍💻

Disable PowerShell's restricted execution policy

Set-ExecutionPolicy AllSigned

Install Chocolatey

  1. Temporarily bypass the execution policy for this process only
Set-ExecutionPolicy Bypass -Scope Process -Force
  1. Update the security protocol to use TLS 1.2 or greater
[System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072
  1. Download and run the Chocolatey installation script from the official source
$installScript = (New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1')
  1. Execute the downloaded installation script
Invoke-Expression $installScript

Confirm installation

choco --version

Chocolatey should respond with version information after you've run this command.

You're ready to install software using the Chocolatey package manager! 🚀🎉

MacOS

💡 We will use Homebrew 🍺 as the package manager on Mac. I honestly don't know of any other one that works with this system. Something for me to look out for. 🔍

‼️ Make sure your machine fits these requirements

Install Homebrew 🍺

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

Confirm installation

brew --version

Homebrew should respond with version information after you've run this command. ✅

You're ready to install software using Homebrew! 🚀🎉


From this point, I assume you've installed Fedora or either of the package managers. 📦 💻

💡 Before installing anything on Linux, it's always good practice to update your system first.

sudo dnf check-update && sudo dnf upgrade -y

Terminal Setup 🖥️

ZSH is only available on Mac and Linux. Sorry to the Windows folks - PowerShell it is for you! 😅 I use Tabby because it looks good and it's lightweight. ✨ It comes with a number of features that make my daily workflows easier (SSH client 🔑, Docker container connection 🐳).

Install ZSH (Mac & Linux only)

  1. Install zsh

On Linux:

sudo dnf install zsh -y

On Mac:

brew install zsh
  1. Set zsh as the default shell
chsh -s $(which zsh)
  1. Restart your termial and follow the prompt to set up your zsh. We'll make it look good in just a few.

Install Tabby

Linux & Mac

You can view the script before running it here

curl -s https://packagecloud.io/install/repositories/eugeny/tabby/script.rpm.sh | sudo bash

Windows

choco install tabby -y

Great, now we can start using Tabby as the terminal going forward! 🚀✨

Install Starship

💡 At this point I assume you are using ZSH as the default shell.

Linux

  1. Enable the starship repo
sudo dnf copr enable atim/starship
  1. Update the package cache
sudo dnf check-update
  1. Install starship
sudo dnf install starship
  1. Setup your shell to use Starship
echo 'eval "$(starship init zsh)"' >> ~/.zshrc
  1. Read zsh config to refresh prompt
source ~/.zshrc

Code Editor / IDE 🧰

VS Code is my main editor for everything because it's lightweight and easily supports all the different programming languages I use regularly. 💻 I switch to JetBrains IDEs when I'm working with languages that need heavy configuration, like C++. CLion is my most-used JetBrains IDE for that. 🔧 I also like changing things up sometimes, so I'll use WebStorm or PyCharm when I want a different coding environment. 🔄

VS Code

Linux

  1. Import Microsoft's GPG key to verify package signatures
sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc
  1. Create the VS Code repository configuration file
sudo tee /etc/yum.repos.d/vscode.repo > /dev/null << EOF
[code]
name=Visual Studio Code
baseurl=https://packages.microsoft.com/yumrepos/vscode
enabled=1
autorefresh=1
type=rpm-md
gpgcheck=1
gpgkey=https://packages.microsoft.com/keys/microsoft.asc
EOF
  1. Update the package cache
sudo dnf check-update
  1. Install VS Code
sudo dnf install code # or code-insiders
  1. Confirm installation
code --version

Mac

brew install --cask visual-studio-code

Confirm installation

code --version

Windows

choco install vscode -y

Confirm installation

code --version

JetBrains

To have an easy way to manage all the different IDEs from JetBrains, I use JetBrains Toolbox 🧰. On Fedora, we don't have an rpm for it so we need to download and run it manually. 🛠️

Linux

Follow along with these instructions to get the toolbox installed.

Mac

brew install --cask jetbrains-toolbox

Windows

choco install jetbrainstoolbox -y

You can now install which ever JetBrains IDE, you want to work with. In my case, CLion 🔧, WebStorm 🌐, & PyCharm 🐍.


Programming Languages & Tools 🧰

Install Node.js

Linux & Mac

  1. Install Node Version Manager

You can view the install script here

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash
  1. Install latest LTS version of Node
nvm install --lts
  1. Confirm installation
node --version

&

npm --version

Windows

  1. Install NVM
choco install nvm -y
  1. Install latest LTS version of Node
nvm install --lts
  1. Confirm installation
node --version

&

npm --version

[OPTIONAL] 📦

I usually use PNPM as my package manager in most projects. 🚀 I like how it approaches monorepo architectures and how it manages their dependencies. 🧩 ⚡

Windows, Mac & Linux

  1. Prepare PNPM
corepack prepare pnpm
  1. Install latest PNPM
corepack enable pnpm@latest

If this doesn't work, do this:

npm install --global pnpm@latest
  1. Confirm installation
pnpm --version

Node.js is ready for use!

Install Python

I'm still working on adopting the use of a version manager for python like I am with Node.js. Currently, I install the versions manually

Linux

Python is one of the tools installed by default on Fedora. Not much needs to be done here. What you can do, is install which ever version you are looking to use specifically.

Mac

  1. Install Python 3.13
brew install python@3.13
  1. Confirm installation
python3 --version

Windows

  1. Install Python
choco install python313 -y
  1. Confirm installation
python --version

Python is now installed!

Install compilers for C/C++

Linux

sudo dnf install gcc gcc-c++ clang clang++ cmake

Mac

  1. This provides clang and clang++.
xcode-select --install
  1. Install gcc & CMake
brew install gcc cmake

Windows

Option 1: Visual Studio (Recommended)

  • Download Visual Studio Community (free) from Microsoft
  • During installation, select "Desktop development with C++" workload

Option 2: MinGW-w64

  • Install via MSYS2: Download from msys2.org
pacman -S mingw-w64-x86_64-gcc mingw-w64-x86_64-clang mingw-w64-x86_64-cmake
  • Add MinGW bin directory to PATH

Option 3: Clang via LLVM

  • Download pre-built binaries from llvm.org
  • Add to PATH after installation

Development Tools 🛠️

  • Version Control: Git 📚
  • API testing: Postman 🚀
  • Database tools: DBeaver 🗃️
  • Containerization Tools: 📦

Install Git

Linux

On linux, git is usually preinstalled.

  1. Install Git
sudo dnf install git
  1. Confirm installation
git --version

Mac

  1. Install Git
brew install git
  1. Confirm installation
git --version

Windows

  1. Install git
choco install git -y
  1. Confirm installation
git --version

Install Postman

Linux

  1. Download this script to your downloads folder.

  2. Make the script executable.

cd ~/Downloads
chmod +x install_postman.sh
  1. Run the install script
./install_postman.sh
cd ~

Mac

brew install --cask postman

Windows

choco install postman -y

Install DBeaver

Linux

  1. Download the Linux RPM Package

  2. Run the installer

    Replace VERSION with the actual version number of the downloaded file.

sudo dnf ~/Downloads/dbeaver-ce-VERSION.rpm

Mac

brew install --cask dbeaver-community

Windows

choco install dbeaver -y

Install Podman

Linux

  1. Install Podman
sudo dnf install podman -y
  1. Confirm installation
podman --version

Mac

  1. Install Podman
brew install podman
  1. Confirm installation
podman --version

Windows

  1. Install podman
choco install podman-cli
  1. Confirm installation
podman --version

Browser Setup

Linux

Firefox is preinstalled on Fedora

Mac

brew install --cask firefox

Windows

choco install firefox -y

There you have it! 🎉 We have successfully setup our system. 🚀✨

Written by

Lebogang Phoshoko

On

Fri May 30 2025