a73x
high effort, low rewardHome
About Me
I'm a backend software engineer. I primarily work in Kubernetes, writing microservices in Go.
Tidbits
Arbitrary bits of information I found useful
Go
- layout packages by what they do, not by their abstract type
- use channels sparingly: write synchronous methods and allow the caller to make it async
appendmodifies the underlying slice, you'll only make this mistake once- define interfaces where you use them
make([]int, 5)has a length and capacity of 5.([]int, 0,5)has a length of 0 and capacity of 5.
append()will only do what you want with the latter- don't use
init() - TFBO (test, fix, benchmark, optimise)
- more CPU != more performance
more CPU == more contention
git
git reflogwill save you when you mess up- Keep your git history clean
git commit --fixup=<COMMITISH>git rebase origin/main --autosquash
Reading
proc.go- Go documentation is great, this describes the scheduler- proposal: runtime/metrics: define a recommended set of metrics