Projects as Learning

12/24/2024

I’m a strong believer that the best way to learn is always by just doing the thing you want to learn. Nothing teaches better than experience.

I’m particularly interested in distributed systems, but it’s hard to get experience outside of a job - as you obviously need some reason to have a bunch of computers working together.

At the time I first started becoming interested, my Discord bot was starting to scale up quite quickly and I was re-writing it from scratch in Rust. I figured this was a brilliant opportunity, and decided I would run it all under Kubernetes.

My cluster only has a single node in it, so I don’t really get many benefits from doing it like this, except that I have to add a new shard for every 1000 Discord servers it joins, and Kubernetes lets me do this easily and automatically using its API.

However, I have learned so much from running like this and developing everything with scalability in mind. Because of doing it like this I’ve written a few microservices when otherwise I probably would’ve found some other way to achieve what I need.

By doing this I’ve learned far more than I ever would by following some guide and spinning up Hotrod or similar.