Go, for the backend job you actually want
Twenty lessons. Beginner path covers the language itself. Senior path goes deep on concurrency, the memory model, and the patterns interviewers love. Built for the senior backend interview.
Start here if the language is new, or you have been away a while.
- 01
Why Go, in one chapter
The case for Go, the people who reach for it, and your first program.
5 min read - 02
Variables, types, and the zero-value trick
Static typing without ceremony, plus the design decision that removes entire classes of bugs.
6 min read - 03
Pointers, deeply explained (no C scars)
What a pointer actually is, when to take one, and the typed-nil trap every interviewer asks about.
7 min read - 04
Constants and iota, the elegant Go enum
Why const is stricter than var, plus 5 iota patterns and the interview question that traps everyone.
7 min read - 05
Functions, multiple returns, and the err pattern
Why every Go function returns a value AND an error, and why that is good.
6 min read - 06
Slices and maps, the two collections you will live in
How a slice is actually three numbers, why nil maps panic, and the append trap.
7 min read - 07
Structs and methods, Go OOP without classes
No inheritance, no objects, just structs and methods on them. Cleaner than you think.
6 min read - 08
Interfaces the Go way (implicit, small, composed)
No "implements" keyword. The interface finds the type, not the other way around.
7 min read - 09
Errors as values, not exceptions
Why Go made errors boring on purpose, and how to handle them well.
6 min read - 10
Goroutines and channels, the basics
go func(), make(chan T), select. Cheap concurrency with one keyword.
8 min read
Deep dive for interview prep. Mental models, traps, execution flow.
- 11
The memory model, stack vs heap, and escape analysis
Why some allocations escape to the heap and how to read the compiler hints.
8 min read - 12
Goroutines and channels, the deep dive
Unbuffered vs buffered, the select statement, fan-in / fan-out, worker pools.
10 min read - 13
context.Context, cancellation, and deadlines
The single most-asked Go interview topic. How requests get cancelled cleanly.
8 min read - 14
sync.Mutex, RWMutex, WaitGroup, atomic, Once
When to reach for each, the trap of copying a Mutex, and the atomic vs Mutex question.
8 min read - 15
Interfaces deep, method sets, and composition over inheritance
Pointer receivers vs value receivers, the empty interface, and why Go has no class system.
8 min read - 16
Error wrapping, sentinel errors, errors.Is and errors.As
The post-Go 1.13 error model, custom error types, and what NOT to do.
7 min read - 17
Generics: when to use, when to skip
Type parameters, constraints, and the senior judgment of "is this worth a generic?"
8 min read - 18
Channel patterns: pipelines, fan-out/in, semaphore, rate limiter
The classic concurrency patterns every senior Go engineer has on tap.
9 min read - 19
pprof, benchmarks, and finding the real hotspot
How to profile, what allocations to chase, and the testing.B pattern.
8 min read - 20
net/http patterns: middleware, graceful shutdown, request scoping
Build a production-grade HTTP server without a framework.
9 min read - 21
Testing deep: table-driven, subtests, mocks, race detector
How Go teams actually test. Hint: not how you tested in Java.
8 min read - 22
Coding interview patterns in Go: rate limiter, worker pool, LRU, pub/sub
The five implementations every senior Go interview will ask you to write.
10 min read