Surface Pro Reloaded What Software I'm Using for Programming

by Michael Szul on

No ads, no tracking, and no data collection. Enjoy this article? Buy us a ☕.

I have a Surface Pro 3, which I preordered shortly after it was announce by Microsoft several years ago. The i7 flies, and despite only having 8GB of RAM, it has been a highly effective development machine. In fact, 8GB when the device premiered was considered pretty solid. My work machine is 32GB right now, and I actually can't tell that much of a difference--mostly because when I work on my Surface, I have less windows open, and tend to work in a more streamlined fashion off the smaller screen (in comparison to the 32 inch curved monitor at work).

One thing that's been getting eaten up lately though has been the hard disk space. The version of the Surface I have is 256GB of SSD. Over the years, this has slowly been used up by Windows installs, additional software, fragmented files, and Visual Studio 2013, 2015, and 2017. It's nearly impossible to simply clean the drive, and remove some programs to free up significant space. Trying to uninstall old Visual Studio components is a losing battle.

Ultimately, I decided to clean the machine completely with a reset. All of my files are on OneDrive or in GitHub anyway, and my software dependencies I can script out with Boxstarter. Resetting a machine, reinstalling software, and getting your files back on isn't the ordeal it used to be.

It took me roughly half a day to get everything set up completely. Running the Windows Updates was a beast, and I had a hanging cumulative update that I ended up having to download and install manually. Ultimately, I made some software trade-offs too, trying to see how minimal I could go. I wanted to share that list of software.

Web Browsing/Internet Searching

  • Firefox - my primary web browser
  • Tor - Secure browsing
  • uTorrent

Programming Frameworks

  • Node.JS
  • .NET Core (in addition to the .NET Framework installed by default)
  • Anaconda (Python)

I was doing some minimal work with Erlang, Elixir, and Clojure, but I decided not to install them again until I get back to them.

Programming Tools/Utilities

  • Hyper
  • Visual Studio Code
  • Ionide (VSCode extension that deserves special mention)
  • Azure Storage Explorer
  • SQL Operations Studio
  • Bot Framework Emulator
  • Git
  • GitHub Desktop
  • Docker for Windows
  • MSBuild (Visual Studio Build Tools)

Notice no Visual Studio. I have Visual Studio on my work machine. I wanted to make a significant effort to see if I could program only in Visual Studio Code, including non-Core .NET/C# projects. Meanwhile, VSCode with Ionide, Paket, and Fake is a fully-functional F# IDE.

I installed the Visual Studio Build Tools only so that I could use MSBuild from the command line.

For Python, VSCode has an extension, and Anaconda includes Jupyter Notebooks.

Also notice that instead of SQL Server Management Studio, I've install SQL Operations Studio, which is lighter in weight.

Operating System Utilities

  • Linux Subsystem for Windows (Feature)
  • Chocolatey - Windows package management
  • Scoop - Package management for common command line tools

Communication Tools

  • Skype
  • Slack

Security

  • Software VPN
  • Keybase - Secure chats, teams, Git repositories, identity management
  • GPG4Win

Keybase is purely experimental at this point, but I've been trying to support the initiative. I find it interesting.

Productivity

  • Microsoft Office
  • GitBook

Music/Podcasting

  • Amazon Music - I have an Amazon Music subscription.
  • Audacity

That's it. This free up about 100 GB of SSD after the reload.