Skip to content
Go

The language and its concurrency: types and zero values, slices and maps, interfaces and errors, generics and iterators, goroutines and channels, context and synchronization, the scheduler, leaks and races, graceful shutdown

Open "Go Fundamentals"

Go Fundamentals

How Go differs from Python and Java, zero values and iota, slices and maps, strings and runes, methods and receivers, interfaces and the nil trap, errors and wrapping, defer and panic, generics, escape analysis, embedding, packages, iterators, comparability

15 questions
Open "Concurrency"

Concurrency

Goroutines and channels, select and context, mutexes and WaitGroup, errgroup, goroutine leaks and data races, the memory model and atomics, worker pools and pipelines, sync.Once and sync.Pool, concurrency limits, the scheduler, graceful shutdown, testing with synctest

15 questions
Open "Toolchain & Modules"

Toolchain & Modules

Module anatomy and go.sum, minimal version selection, go get and go install, the major version suffix, checksums and supply chain, proxy and caches, replace and vendoring, workspaces, upgrading Go, multi-module repositories, dependency graph analysis, API compatibility, dependency updates, private module setups

15 questions
Open "Build & Deploy"

Build & Deploy

go build and go install, cross-compilation, build tags, linker flags, CGO and static linking, minimal images, the build cache, reproducibility, go:embed, build info inside the binary, profile-guided optimization, vulnerability scanning, package initialization order

15 questions
Open "Testing, Profiling, Linters"

Testing, Profiling, Linters

Test anatomy and table tests, helpers and cleanup, test doubles, golden files, coverage, httptest, fuzzing, benchmarks and benchstat, CPU and memory profiling, go vet and golangci-lint, integration tests, tests in CI

15 questions
Open "Runtime & Operations"

Runtime & Operations

Process memory and RSS, the garbage collector and its tuning, container limits and OOMKilled, runtime metrics, slog, panic analysis and post-mortem debugging, continuous profiling, request tracing, the database connection pool, go tool trace, latency diagnosis, upgrading Go, behaviour under saturation

15 questions
Go | JScriptiser