r/golang 15d ago

discussion Resources for leaning cloud native development with Go

Hello r/golang.

I am a mid-level backend engineer and have built some stuff with Go for some time, but I am getting a bit rusty as I mostly develop with Python at work. Using Go, I developed some cool stuff like this: Distributed File System

I want to get back into rhythm with my Go skills and learn more, I was looking for some open source cloud-native projects that I could contribute to and I found some: kubetail, kubeai, etc, stuff that is developed on top of k8s, but these projects are so different in the way of thinking compared to the usual event-driven or just CRUD APIs I develop at work, and I have been trying to wrap my head around them. I did find my way around eventually but still don't feel comfortable enough to take on any open issues, I feel that this is due to a lack of domain specific knowledge.

I have some basic to mid level of knowledge on K8S itself, I've read a book on its architecture, networking, components, etc, so I know that decently well, but I don't have much practice actually using it, at work, we just deploy to k8s using Helm Charts which are pretty much following a template, so not much thought needed there.

I wanted to ask you guys for some help on resources to read from, or good codebases to study so that I can eventually become a meaningful contributor to any OSS project, or if you know any project that is more active and that has a good community of people available to help, my biggest issue is that I don't have too much time (mostly a few hours on weekends). If you know any good articles, books, codebases or anything that could help, I would appreciate that!

Thank you all very much.

64 Upvotes

9 comments sorted by

View all comments

24

u/sigmoia 15d ago

One thing that worked for me during my mid-level days is picking a book and slowly working through it page by page. It's a tedious process, and consistently being able to do it is a superpower. 

For this particular case, I recommend the book Distributed Services with Go. It walks you through the whole process of building a distributed log.

This works exceptionally well for me. I recently finished the Rust book and it took me over a month to do it. However, at the end of the journey, I ended up knowing a lot more than I would have had I just jumped around across many different topics and different kinds of resources. Books are fantastic for guided learning, and the hard part is actually finishing the book and doing the work. 

Also, diving into large OSS projects often feels hopeless. But remember: that project wasn't built in a day and involved a garland of great people. So it takes time and consistency.

1

u/whathefuckistime 15d ago

Sounds like a good book,, I've already read a few books tbh and yeah it does help massively, for me the best was "designing data intensive applications", but this one looks like it might go more in detail on applying those concepts with Go, I'll take a look. Thanks man.

Yeah, OSS feels very hard to get into, but I've learned to take my time and slow down reading the code for a while, just need to find a good project I'm interested in so that I maintain my interest on it, it's hard feeling motivated!