Over the past few years, I've had the displeasure of dealing with various cases of data loss (sometimes accidental, sometimes intentional) that was no big deal because I had backups in place. On the Mac, I've been using Time Machine for years, but on Windows my backup system has been a little shaky.

That's what I've been figuring out the past few weeks, and in this post I'd like to discuss my backup strategies.

As far as I'm concerned, there's three levels of backups. I've also included a so-called level zero, where you have no backup. Let's take you through these scenarios in case your primary storage drive starts failing. (This is a level system of my own making.)

The idea here is that your machine works, except for your hard drive or SSD, which won't work any longer. Let's say it doesn't even get detected any more. This is a common scenario.

Earlier this year, I wrote about my impressions of the original Surface Go, which is a low-spec device compared to most computers: its CPU only has two cores and lacks Turbo Boost. As such, the Surface Go is an excellent device to test certain normal workflows with a slower device.

I set up my Surface Go with a variety of tools, and the first thing I noticed is that the lack of Turbo Boost is noticeable: everything takes quite a while. Because the CPU can’t boost to e.g. 3 GHz (like the MacBook Air can, for example) it is consistently slow.

It’s also consistently cool. On any given machine, Turbo Boost comes at a price — it significantly affects the thermal budget of the Intel CPU inside.

Every now and then, I have a specific need and I write a little script to get something done on my server. Recently, I was looking into writing a new script but instead opted to write a more comprehensive program.

I recently saw that the folks at Spatie were working on a comprehensive backup solution, and I figured I should build something similar and simpler for my own use case. (This means that this package won't really receive any updates or such.)

So, Aegis was born. It is a very simple console app: you specify jobs in a YAML file, and the app will run those jobs and create an archive of a specific directory and send it to a destination of choice. All that you have to do is run Aegis periodically with a cronjob.

In my last post, I wrote about my Surface Go. It’s a PC that runs Windows 10. In this post, I’d like to share how I manage the size of my Windows installation and save a ton of storage space by removing some of the built-in apps.

This might be beneficial if you have a physical device with limited storage capacity, or you’re running a virtual machine. (I think more people who develop on Macs should be using virtual machines to look at their sites on Windows, to be honest.)

As you can see, on my virtual machine for work, I only have a few browsers and a limited selection of apps installed. This virtual machine takes up roughly 9.5 GB of storage on my Mac. The Windows folder inside the VM itself takes up 8.3 GB (according to Windows Explorer), down from ~12 GB.

Between the Surface Go and my desktop computer, I use Windows on a daily basis: just like I use macOS daily for my job. I don’t really care about Mac vs. PC — it’s never sat right with me, really. Just use the platform that is right for you. For me, that means programming work gets done on the Mac, and all the other stuff happens on my PC. They both have their upsides.