Notes on Go & systems

Go, explained the way it actually works.

I’m Phuong Le — a software engineer who writes about Go, backend engineering, and the systems underneath. Clear explanations of how things actually work, with code you can run.

01

Go Runtime Metrics: CPU, GC, Memory, Scheduler

Go exposes many runtime metrics through runtime/metrics, and many metrics clients (Prometheus, VictoriaMetrics) use it to export Go runtime stats from …

17 min read GoRuntime
Go Runtime Metrics: CPU, GC, Memory, Scheduler
02

SIGHUP Signal for Configuration Reloads

Many applications, including Go applications by default, respond to three signals for termination: SIGTERM, SIGINT, and SIGHUP. Among these, SIGHUP …

7 min read GoBackend
SIGHUP Signal for Configuration Reloads
03

Goroutine Scheduler Revealed: Never See Goroutines the Same Way Again

Don’t worry about understanding the image above right now, as we’re going to begin with the very basics. Goroutines are distributed into …

8 min read GoConcurrency
Goroutine Scheduler Revealed: Never See Goroutines the Same Way Again
04

Go Channels Explained: More than Just a Beginner’s Guide.

After discussing Goroutines, diving into Goroutines vs OS Threads, examining MAXPROCS in the previous post, Goroutines: Think You Know Go Basics? …

11 min read GoConcurrency
Go Channels Explained: More than Just a Beginner’s Guide.
05

Select & For Range Channel in Go: Breaking Down

In our previous discussion, we covered five specific channel types in Go: buffered, unbuffered, directional, nil and closed channels. If you missed …

9 min read GoConcurrency
Select & For Range Channel in Go: Breaking Down