DevOps Onboarding Guide

A foundational setup guide for newcomers to DevOps engineering, backend developers, and anyone establishing a fresh development workstation on Windows.

Estimated time: 45-60 minutes · Last updated: Mar 8, 2026

1 Hardware Requirements

ComponentMinimumRecommended
RAM16 GB32 GB
Storage500 GB SSD1 TB SSD
ProcessorIntel i5 / AMD Ryzen 5Intel i7 / AMD Ryzen 7
OSWindows 11Windows 11 (latest)
Note: SSD storage is required — Docker and WSL perform poorly on HDD. Make sure Windows is fully updated before proceeding — WSL 2 and Docker depend on recent Windows components.

2 WSL Installation

Open PowerShell as Administrator and run:
wsl –install
Install Ubuntu 24.04 LTS from the Microsoft Store, then update packages:
sudo apt update && sudo apt upgrade -y

3 Visual Studio Code

Install VS Code from code.visualstudio.com, then add recommended extensions:
WSL (Microsoft) GitLens Docker HashiCorp Terraform Python Pylance GitHub Copilot (optional) Claude Code (optional)
Connect to WSL from your terminal:
code .

4 Terminal Customization (Optional)

A good-looking terminal helps with productivity and makes it easier to see which directory, branch, or environment you’re working in. Oh My Posh adds a customizable prompt with Git status, Python/Node versions, and more.
# Install Oh My Posh curl -s https://ohmyposh.dev/install.sh | bash -s

5 Docker Desktop

Download from docker.com/products/docker-desktop. Enable WSL 2 integration during installation.
Verify:
docker –version docker run hello-world

6 Git Configuration

# Install Git sudo apt install git -y # Configure user git config –global user.name “Your Name” git config –global user.email “your@email.com” # Generate SSH key (Ed25519) ssh-keygen -t ed25519 -C “your@email.com” # Copy public key cat ~/.ssh/id_ed25519.pub
Add the public key to your GitHub or GitLab account under SSH Keys settings.
Test connection:
ssh -T git@github.com
Want to push without password prompts? See How to Configure Git Pushes Without Authentication Prompts. Need a newer Git version? See How to Upgrade Git on Ubuntu.

7 AWS CLI

curl “https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip” -o “awscliv2.zip” unzip awscliv2.zip sudo ./aws/install # Verify aws –version
Configure with access keys:
aws configure
You will need: AWS Access Key ID, Secret Access Key, default region (us-east-1), and output format (json).
Using AWS SSO? If your team uses AWS IAM Identity Center (SSO) instead of static access keys, follow How to Configure AWS SSO CLI Access for Linux Ubuntu instead.

8 Python via pyenv

Use pyenv to manage Python versions — it lets you switch versions per project without messing with the system Python.
# Install dependencies sudo apt install -y make build-essential libssl-dev zlib1g-dev \ libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm \ libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev \ libffi-dev liblzma-dev # Install pyenv curl https://pyenv.run | bash
Add to your ~/.bashrc or ~/.zshrc:
export PYENV_ROOT=“$HOME/.pyenv” export PATH=“$PYENV_ROOT/bin:$PATH” eval “$(pyenv init -)”
Then install Python:
pyenv install 3.13.2 pyenv global 3.13.2

9 Node.js via nvm

Use nvm (Node Version Manager) to install and switch between Node.js versions — similar to pyenv for Python.
# Install nvm curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash # Reload shell source ~/.bashrc # Install Node.js 22 LTS nvm install 22 nvm use 22 nvm alias default 22
Verify:
node -v npm -v
Need to switch versions later? See How to Switch Node.js Version in WSL Ubuntu.

10 OpenTofu

OpenTofu is an open-source fork of Terraform and a drop-in replacement. It works with existing Terraform files and is the recommended IaC tool for this setup.
# Install OpenTofu via the installer script curl –proto ‘=https’ –tlsv1.2 -fsSL https://get.opentofu.org/install-opentofu.sh -o install-opentofu.sh chmod +x install-opentofu.sh ./install-opentofu.sh –install-method deb rm install-opentofu.sh # Verify tofu –version
Optional: If your team uses Terraform (HashiCorp) instead, see How to Configure Terraform on WSL Ubuntu for AWS Provisioning.

11 Serverless Framework

npm install -g serverless # Python requirements plugin (per project) npm install –save-dev serverless-python-requirements

12 Pre-commit & Code Quality

Set up pre-commit to automatically run linters and formatters before each commit. Catches issues early.
pip install pre-commit # Verify pre-commit –version
Inside your project directory, create a .pre-commit-config.yaml and run:
pre-commit install

Verification Checklist

Click each item as you verify. All commands should return a version number:
  • wsl –version
  • git –version
  • docker –version
  • aws –version
  • python –version
  • node -v
  • npm -v
  • tofu –version
  • sls –version
  • pre-commit –version

Next Steps