hi long time no see! well windows has been my go-to since i first got into software dev. it’s familiar, easy to set up, and plays nice with most tools out of the box. but as time went on, i started realizing something — while windows is simple and intuitive on the surface, it’s not always the best experience for developers who constantly experiment with new languages, frameworks, and environments.
let’s be honest — installing dependencies or switching between different versions of the same language on windows can be… well, a nightmare. you install python 3.11, and suddenly python 3.9 forgets it ever existed. or node just decides to break npm because it felt like it. dependency hell, my old enemy.
so one day, someone tells me, “you should try linux — it’s way smoother for programming.”, linux? streamlined? that’s like saying “rust installs instantly.” but hey, i was curious. and i already had a humble debian homeserver sitting in a corner running QEMU/KVM VMs, so i thought: why not make a dedicated dev VM?
the experiment begins
so i spun up a clean debian 13 KVM on my homeserver. nothing fancy — just a couple gigs (4G) of RAM, a few cores, and bridged networking so it could sit on my local network like any other device.
then came the setup part. i ran the usual apt update && apt upgrade
, installed VS Code Server on the VM, and got it up and running. now, from my windows machine, i opened VS Code, grabbed the Remote SSH extension, and entered my VM’s IP, username, and password.
and just like that, voila! — i was inside my linux dev environment from the comfort of my windows desktop.
living the hybrid life
once connected, i could do everything right from VS Code — open terminals, install dependencies, clone repos, manage packages, all inside the editor. and it just worked.
i needed python 3.12 for a project but still wanted to keep 3.10 around without any issues? easy. pyenv install 3.12 && pyenv global 3.12
— no drama, no weird path errors, no fighting the system registry.
node? same story. nvm install 20
and move on with your day lol.
what blew my mind was how natural the whole workflow felt. even though everything was running remotely on linux, VS Code made it feel completely native. i could use the integrated bash terminal directly in my editor, with all the linux tools i love.
the perks i didn’t expect
Zero clutter: my windows machine stays clean — no conflicting SDKs or global installs. everything lives on the VM.
Consistency: no matter what i break (and i will break things), i can just snapshot or rebuild the VM in minutes.
Performance: since it’s running on my homeserver, i don’t have to worry about slowing down my main system while running builds or containers.
Accessibility: i can ssh into the same environment from any computer, anywhere. same setup, same tools, same configs.
some small tweaks
to make things smoother, i added a static IP to the VM so i don’t have to guess it every time, and set up SSH keys so i can connect password-free. i also installed zsh and oh-my-zsh (because why not make it look cool?) and configured version managers like pyenv, nvm, and asdf for different languages.
basically, i ended up with a self-contained, zero-hassle dev machine that feels like an extension of my workflow rather than a constant battle.
final thoughts
with this setup, i get the stability and power of linux while still keeping my familiar windows desktop for everything else. it’s the best of both worlds.
so if you’ve been struggling with dependency chaos or just want a clean, reproducible coding environment, seriously — give this a try. set up a debian VM, connect it with VS Code’s Remote SSH, and watch how your workflow transforms or even better write up some terraform workflows for aws and watch them scale beautifully idk.
turns out, linux can be streamlined pretty well i should add, bye.
Top comments (0)