I talk about how I learned to optimize Go code, at an algorithmic and code level, through the iterations on Capital One's format-preserving encryption project, and why I did so.
In particular, I go through my use of pprof and benchmarking, and most importantly, learning not to a) prematurely optimize (correctness is more important!) and b) where to draw the line as you dive into profiling. I touch on the Go toolchain's awesome utilities that are available, and then I'll go into how I actually used them to systematically find hotspots in my code. Further, I'll explain some of the common algorithmic and memory-usage optimizations I added.
And of course, all the lessons along the way!