I started a new job in April and since then I reinstalled Windows over 10 times because I had various issues with the equipment(drivers, bad SSD, etc) and with Windows(frequent BSOD, apps crashing randomly, etc). I remember that in my childhood I used Windows XP and it took a few hours to get the system back and running with all the software and games that I had, but now I can do it in less than an hour, and I'm going to show how in this article.
1. Backup
I use Dropbox for backing up my files, and they have a nice feature that lets you backup important folders like "Desktop", "Downloads", "Documents", etc. Before using this feature I used to go through all these folders and see what I want to keep from them (documents, pictures, etc.) and erase everything else. Now I just keep them as they are because once I reinstall Windows the folders will have the same content. I also backup my .ssh folder and some settings for apps that can't sync online (Windows Terminal has a json with settings for example). This means that the entire backup process takes 1-2 minutes. Regarding my work files, I usually keep all the repositories on a different partition so when I reinstall Windows I only format C:
2. Reinstall Windows
This will depend on the speed of your machine, for me it takes around 10-15 minutes since I start booting from USB to the moment I am able to log in with my user.
3. Customize it
Now I usually install drivers, change settings like resolution, theme, etc.
4. Restore backup
This means installing Dropbox and starting the sync which will bring back the content in my important folders.
5. Install apps
This step used to take a lot of time because I had to download/copy each installation kit for an app and then install it manually (Next -> Next -> Yes, I've read the license (not) -> Next -> Finish). Now, I use Chocolatey, which is like a package manager for Windows apps. I have my own script which I update each time I install a new app on my machine (that I want to keep), and I just have to let it do it's job for 15 minutes and all my apps are installed.
6. Customize apps
In this step I manually customize apps. For example, I restore my Visual Studio Code settings by logging in with my GitHub Account, or I restore the settings for the Windows Terminal. I also manually install Visual Studio because each time I pick different workloads so I don't see a point in automating this. I'm sure that there are some things in this step that could be automated ( here's an example ) but I haven't done it yet.
In the end, the process takes ~1 hour, it depends on how focused I am on this because some steps can be done in parallel (customizing Windows while installing apps for example).
How about you? Any thoughts or suggestions about improving this? Let me know in the comments!