Setting Up a Powerful Windows Development Environment 💪

José D. Gutiérrez - Feb 13 - - Dev Community

Gone are the days when developers needed to dual-boot Linux or settle for a subpar development experience on Windows. With modern tools and the right setup, Windows can be transformed into a robust development platform that rivals any Unix-based system.

This guide will walk you through creating a professional-grade development environment on Windows, combining the best of both worlds: Windows' user-friendly interface and Linux's powerful development tools.

What You'll Learn

  • Setting up WSL2 for a native Linux experience
  • Installing and configuring development tools
  • Managing multiple programming language versions
  • Creating an efficient coding environment
  • Running containerized applications seamlessly

Prerequisites

  • Windows 10/11 (Pro)
  • At least 8GB RAM (16GB recommended)
  • 50GB free disk space
  • Administrator access

1. Windows Subsystem for Linux (WSL2)

WSL2 provides a full Linux kernel and seamless Windows-Linux integration. It's the foundation of our development environment.

Why WSL2?

  • Native Linux system calls
  • Full system call compatibility
  • Excellent filesystem performance
  • Seamless integration with Windows tools

Installation Steps

Just open a new PowerShell or Windows Command Prompt in administrator mode and enter the wsl install command.

# Install WSL 
wsl --install
Enter fullscreen mode Exit fullscreen mode

The --install command performs the following actions:

  • Enables the optional WSL and Virtual Machine Platform components
  • Downloads and installs the latest Linux kernel
  • Sets WSL2 as the default
  • Downloads and installs the Ubuntu Linux distribution (default)

Note: You will need to restart your machine during this installation process.

Once the process of installing your Linux distribution with WSL is complete, open the distribution using the Start menu.

You will be asked to create a Username and Password for your Linux distribution. This username and password is specific to each separate Linux distribution that you install and has no bearing on your Windows username.

Linux inside Windows

2. Terminal Setup

Now that we have Linux running inside Windows we can configure our distribution and terminal to our liking.

We can install Oh My Zsh, change the prompt, install plugins, etc.

Windows Terminal

For a detailed guide on terminal customization, check out my previous post: My Terminal Setup for 2025 🚀

3. Development Languages with ASDF

A development environment needs... development tools, right?

You'll probably want to install runtimes or compilers. For example, I want to install NodeJs.

ASDF provides a single tool for managing multiple language runtime versions.

Benefits of ASDF

  • Single tool for all languages
  • Project-specific runtime versions
  • Easy version switching
  • Plugin-based architecture

Setup Process

# Download asdf
git clone https://github.com/asdf-vm/asdf.git ~/.asdf --branch v0.15.0

# Add the following to ~/.zshrc
. "$HOME/.asdf/asdf.sh"

# Optional: Completions are configured by either a ZSH Framework asdf plugin
# or by adding the following to your .zshrc:
fpath=(${ASDF_DIR}/completions $fpath)
autoload -Uz compinit && compinit
Enter fullscreen mode Exit fullscreen mode

Installing NodeJS becomes straightforward:

# Add NodeJS plugin
asdf plugin add nodejs https://github.com/asdf-vm/asdf-nodejs.git

# Install desired version
asdf install nodejs latest

# Or specify version
asdf install nodejs 22.14.0
Enter fullscreen mode Exit fullscreen mode

My favorite part is that we can set the node version globally or locally. For example we could have latest globally but set specific projects to the LTS version.

# Set global version
asdf global nodejs latest

# Configure project-specific version
asdf local nodejs 22.14.0
Enter fullscreen mode Exit fullscreen mode

Unlike nvm, asdf extends beyond Node.js, supporting Elixir, Erlang, Ruby through official plugins, and Python, Java through community contributions.

4. Visual Studio Code

VScode

_Photo by Mohammad Rahmani in unsplash_

VSCode delivers exceptional development experience through WSL integration.

Key Features to Configure

  • Remote WSL Development
  • Essential Extensions
  • Settings Sync
  • Integrated Terminal

Installation and Setup

That's it! Projects in your Linux distribution open directly in VSCode:

# From project directory
vscode .
Enter fullscreen mode Exit fullscreen mode

Check out my previous post: My Favorite VSCode Extensions for Modern Development

5. Docker Desktop Integration

Docker Desktop with WSL2 backend offers native container performance.

Why Docker Desktop?

  • Native WSL2 integration
  • Kubernetes support
  • GUI for container management
  • Resource optimization

Setup Instructions

  1. Download and Install Docker Desktop for Windows from Official Site
  2. Enable WSL Integration during installation
  3. Restart your system
  4. Verify installation:
docker --version
Enter fullscreen mode Exit fullscreen mode

6. Extras

DeepSeek R1

DeepSeek's R1 model emerges as a powerful competitor to OpenAI's leading models. Let's integrate it using Ollama:

# Install Ollama
curl -fsSL https://ollama.com/install.sh | sh
# Verify installation
ollama -v
# Run R1 model
ollama run deepseek-r1
Enter fullscreen mode Exit fullscreen mode

R1 Example

Explore all R1 versions on Ollama Official Site

For a graphical interface, OpenWebUI integrates seamlessly through Docker:

docker run -d -p --network=host \
  -v open-webui:/app/backend/data \
  -e OLLAMA_BASE_URL=http://127.0.0.1:11434 \
  --name open-webui \
  --restart always \
  ghcr.io/open-webui/open-webui:main  
Enter fullscreen mode Exit fullscreen mode

If everything works well, we should be able to access the interface from http://localhost:8080

OpenWebUI Example

VSCode Integration

Continue.dev

We just search and install the Continue extension from the marketplace

As we already have Ollama installed, we just need to select it as Provider, choose DeepSeek as model and that's it

Continue Setup

Note: If the extension does not detect the selected DeepSeek model you can use Autodetect

You will now be able to interact with DeepSeek from the chat interface

Example

Why Local AI Tools?

Development in 2025 isn't just about coding - it's about leveraging AI effectively. Running models locally offers:

  • No API costs
  • Full privacy
  • Offline capability
  • Lower latency

Curious about DeepSeek's potential? Read my full analysis: DeepSeek R1 Will Change the World: Advanced AI Accessible to Everyone

Conclusion

With this setup, you'll have a development environment that combines Windows' compatibility with Linux's development power. The key is choosing the right tools and configuring them properly.

Remember: A well-configured development environment is an investment in your productivity. Take the time to customize it to your needs.

What's Next?

  • Fine-tune your terminal configuration
  • Set up language-specific tools
  • Configure cloud development environments
  • Explore advanced WSL features
. . . . . . .