This is a nice article. I would encourage the author to use the term "goroutine" instead of "thread" when referring to Go's goroutines, because they aren't threads. The pros and cons of threads do not apply to goroutines. What's cool (for me) about this article is that the author knows this fact (and states so at the outset), but he re-discovers it and internalizes it over the course of his implementation.