The GOal of this article is praiseworthy, but it makes some very wrong assumptions, since, as you mentioned, you’re not familiar with Go.
First, regarding threads. Go uses same concept as thread pool as Kotlin. It just doesn’t provide you with an ability to create your own pool.
In Go deferred can be represented as an out channel you return from your function. It’s very awkward, but works.