How do I configure my Windows dev workstation?
My key productivity grunt at home is Windows machine; a beast that has more memory than my MacBook Pro has disk space, configured to do everything just the way I like it. I tinker with OS settings so much, which leads to too frequent wiping and re-installation of my base Windows 10 image. I can get new build up and running in under 2 hours, alongside with all custom apps that I use for my work. Yes, under two hours. Here is how.
Windows doesn’t come with an app packager built-in, so I need to help poor Microsoft and inject one myself. Chocolatey is a super-dee-duper app packager that is built on top of Microsoft’s NuGet. Injecting Chocolatey into Windows is easy — just paste the magic line of code below in the Administrative CMD prompt and off you go! (This code is published and explained on Chocolatey documentation pages if you are suspicious)
@"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command " [System.Net.ServicePointManager]::SecurityProtocol = 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))" && SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin"
Before I start installing apps, here are few Chocolatey housekeeping tweaks so Choco stays auto-updated and is not pestering me with unnecessary confirmation requests during installs:
choco feature enable -n allowGlobalConfirmation
choco feature disable -n stopOnFirstPackageFailure
choco install -f chocolatey
choco install choco-upgrade-all-at-startup
Let’s start with a list of base utilities that extend the OS with stuff that we all use every day. Simple things like a better compression handler, torrent manager, Sysinternals tools, cloud storage clients, PDF and MOBI reader/creator.
choco install 7zip winrar totalcommander
choco install qbittorrent sysinternals
choco install dropbox googledrive onedrive
choco install adobereader cutepdf
choco install kindle calibre
I am always customizing my Windows experience with three Stardock tools: Start10 is bringing back the clean professional Start button, Fences are helping with clutter on my desktop, Groupy allows me to group multiple apps into tabs. (rant: these apps are not free. If Microsoft would listen to developers as much as they listen to n00b users, none of these tools should be required!)
choco install start10
choco install stardock-fences
choco install groupy
Time to install some browsers, because Windows still comes without a (solid) web browser pre-installed. Browsers below are listed from my most preferred down to my least trusted one — I typically install just the top one or two. Top three are built on Chromium yet they value privacy way more than the offender at the bottom of the list…
choco install vivaldi
choco install brave
choco install microsoft-edge
choco install firefox
choco install chrome
Browsers need extensions. I use chromium-based browsers (all of the above except Firefox), so here are all my chromium extensions:
choco install https-everywhere-chrome
choco install ublockorigin-chrome
choco install lastpass-chrome
choco install https-everywhere-chrome
Now let us add all some productivity and collaboration stacks that allow me to interact with my team, my clients and my family.
choco install office365proplus
choco install microsoft-teams
choco install slack
choco install zoom
choco install whatsapp
choco install viber
Every development-focused workstation needs git source control, documentation docsets and core language packages. These three things (plus a code editor) will upgrade a generic PC workstation to a dev machine.
choco install git github sourcetree
choco install zeal
choco install nodejs golang python
Time to install a code editor. Everyone has their own preference, I listed the most popular choices that I tied and liked. Listed in the order of my preference.
choco install vscode
choco install atom
choco install sublimetext3
choco install vim
Just like for code editors, the same goes for markdown editors — everyone has their own preference. I played with them all and occasionally rotate from one to the other to keep up-to-date with their features. (This article was crafted in Typora, btw)
choco install typora
choco install markdownmonster
choco install markdown-edit
choco install markdownpad2
choco install markpad
This list wouldn’t be complete without debugging and monitoring/profiling tools that help to fix crappy code.
choco install fiddler
choco install charles4
choco install wireshark netfoxdetective
choco install regextester jregexanalyser
Time to get some more serious stuff installed; things that separate the men from the boys. Things that demonstrate how you are clearly a nerd with a complete lack of social skills. 😉
Terminals first; things that make me love the local command line over a mouse, and enjoy ssh and mosh sessions to play with local and remote servers.
choco install mobaxterm
choco install termius
choco install putty
choco install consolez
choco install microsoft-windows-terminal
Pretty terminals need pretty fonts. Lots of pretty fonts. Fonts that will make you feel like a super-cool hacker from a movie.
choco install fira hackfont droidfonts ubuntu.font robotofonts cascadiacode
Now we are finally ready to install GNU/Linux look and feel on Windows and laugh in the face of CMD and PowerShell n00bs!
choco install babun
choco install cygwin
choco install clink
What I need at the end of my installation cycle are containers and the cloudy stuff. After all, my job is to put the codey stuff on the cloudy stuff, right?
choco install awscli cloudberryexplorer.amazons3
choco install azure-cli microsoftazurestorageexplorer
choco install gcloudsdk cloudberryexplorer.googlestorage
choco install docker-for-windows kubernetes-cli
Did I miss anything significant? Let me know!