Rust

I built a thing

We use NextDNS to reduce ads and try to establish some healthy social network habits especially in the evening when the doom scroll demons come to life. It was originally vibe-coded in Go to get a basic handle on the language, and provide a way to interact with an API from a service that I use at home. A few years back, I’d started learning Rust, but derailed for various reasons. I rewrote this project to get my feet back in the water and to prove to myself that I do still have the technical skill set to be a back-end engineer or an SRE after a couple of years out of the game.

What are you solving?

The basic problem I’m solving here is this: on a schedule toggle certain DNS settings while keeping some on all the time. Hosted on Google Cloud, the scheduled job triggers a cloud run service endpoint to get/post/put to the NextDNS API. End to end push to release infrastructure is in place with a managed approval for deployment of the Docker container. There is more detail on the README.md.

How’d it go?

Rust is a learning curve for sure. I like that it forces me to be more cognizant of what I’m doing and not just throw caution to the garbage collector. I did lean on Gemini a fair amount to understand the compiler errors, but I specifically asked it NOT to do the and be a senior pair programmer to help enable my learning. I like it. It feels heavier in some ways than C#, but lighter in other ways that I really appreciate. In C# there are A LOT of language constructs (i.e. sealed, abstract, virtual, etc.). While they all have their purpose, sometimes having less is more. Rust doesn’t proved much in this regard. You have other parts of the language to learn, but for most of the development work that I’ve done, it’s nice to have a struct or an enum as choices to carry data.