This is a curated collection of Articles and Videos about Golang internals. It is intended for advanced/intermediate programmers who are new to Golang and want to understand what happens under the hood. Feel free to add to it!
Understanding Nil Talk by Francesc Campoy
Go Slices: usage and internals from The Go Blog
String internals: The Go Blog: Strings, bytes, runes and characters in Go
Constants internals: The Go Blog: Constants
Reflection insight: The Go Blog: The Laws of Reflection
The empty struct by Dave Chevney
Macro View of Map Internals In Go by William Kennedy
Inside the Map Implementation Talk by Keith Randall
How the Go runtime implements maps efficiently (without generics) by Dave Cheney
Golang map internal implementation
how does it search the map for a key?; also related: Go's maps under the hood
Structure Member Alignment, Padding, and Data Packing for C but useful
Go Data Structures: Interfaces by Russ Cox
Golang concepts from an OOP point of view by Lucio Tato
Understanding Go Interfaces Talk by Francesc Campoy
Hacking Go's type system by Tiago Katcipis
Go 1.18 Implementation of Generics via Dictionaries and Gcshape Stenciling
How Goroutines Work by Krishna Sundarram
Channels in Golang by @TapirLiu How are go Channels implemented in Golang Channels on steroids
Deep Understanding of Golang Mutex
"go test -race" Under the Hood Talk by Kavya Joshi
Scalable Go Scheduler Design Doc by Dmitry Vyukov from the Go 1.1 Design Docs
Go Preemptive Scheduler Design Doc by Dmitry Vyukov from the Go 1.3 Design Docs
How does the golang scheduler work? by Ian Lance Taylor
Go's work-stealing scheduler by Jaana B. Dogan
How Do They Do It: Timers in Go by Alexander Morozov
The Go Memory Model from the Go Documentation
Contiguous stacks in Go by Agis Anastasopoulos
Contiguous Stacks from the GO 1.3 Design Docs
Golang’s Real-time GC in Theory and Practice by Will Sewell
Request Oriented Collector (ROC) Algorithm by Rick Hudson and Austin Clements and discussion at golang-dev
A Quick Guide to Go's Assembler from the Go Documentation
The Design of the Go Assembler talk by Rob Pike
Dropping Down Go Functions in Assembly (slides) talk by Michael Munday
Golang Internals Series of Blog Posts by Siarhei Matsiukevich
Go compiler internals: adding a new statement to Go two-part series of posts by Eli Bendersky
SSA Backend for the Go Compiler by Keith Randall
SSA optimization rules description language by Iskander Sharipov
Algorithms used by SSA compiler
Simple and Efficient Construction of Static Single Assignment Form by Braun, Buchwald, Hack, Leißa, Mallon, and Zwinkau
A Linear Time Algorithm for Placing Φ-Nodes by Sreedhar & Gao
A lot of other information can be gathered from the Go Design Documents and from the (now defunct) Unofficial Go Internals wiki