I Learned Go in 3 Weeks. Yesterday, My Code Merged into k9s.

From zero Go experience to a merged PR in the most popular Kubernetes terminal UI — how I misread HTTP/1.1 upgrades, broke my own test suite, and learned that create and get are not the same verb when Kubernetes 1.31 changes the rules underneath you.

The Setup

It started with a single function I didn't write.

I'd been contributing to k9s for a week, trying to understand how a 58,000-star project structured its Go code. I was deep in internal/dao/port_forwarder.go, staring at a block of code that checked whether a user was authorized to open a port-forward on a pod. The check was simple: does this service account have create permission on pods/portforward?