All skill tracks
languages field guide
Go
Goroutines, channels, interfaces, and the Go toolchain for backend and systems interviews.
4 difficulty sections16 modules0 lessons4160 min
16
Modules
0/128
Lessons written
4160 min
Total read time
4
Difficulty sections
Cheat sheet: Go at a glance

128 of 0 lessons
- 1What is go build vs go run vs go install, and what problem does it solve?Basicconceptual30 minIn writing
- 2Walk me through how gopath vs go modules actually works under the hood.Basicconceptual35 minIn writing
- 3What's the practical difference that trips people up about go.mod and go.sum?Basicconceptual30 minIn writing
- 4How would you use cross-compilation with goos/goarch in a real implementation, and what would you watch out for?Intermediatepractical35 minIn writing
- 5What's the tradeoff with gofmt and vet as forced style, and when would you choose differently?Intermediatepractical35 minIn writing
- 6What's a subtle bug or edge case people hit with when go is the wrong choice?Intermediateconceptual30 minIn writing
- 7In production, an issue traces back to go build vs go run vs go install. How do you diagnose and fix it?Scenarioscenario45 minIn writing
- 8Quiz: check your grasp of why go and the toolchain.Basicconceptual20 minIn writing
- 9What is Zero values by type, and what problem does it solve?Basicconceptual30 minIn writing
- 10Walk me through how var vs := short declaration actually works under the hood.Basicconceptual35 minIn writing
- 11What's the practical difference that trips people up about type conversion vs assertion?Basicconceptual30 minIn writing
- 12How would you use constants and iota in a real implementation, and what would you watch out for?Intermediatepractical35 minIn writing
- 13What's the tradeoff with named types vs type aliases, and when would you choose differently?Intermediatepractical35 minIn writing
- 14What's a subtle bug or edge case people hit with integer overflow and sizing?Intermediateconceptual30 minIn writing
- 15In production, an issue traces back to zero values by type. How do you diagnose and fix it?Scenarioscenario45 minIn writing
- 16Quiz: check your grasp of types, variables, and zero values.Basicconceptual20 minIn writing
- 17What is Struct literals and embedding, and what problem does it solve?Basicconceptual30 minIn writing
- 18Walk me through how value receivers vs pointer receivers actually works under the hood.Basicconceptual35 minIn writing
- 19What's the practical difference that trips people up about method sets?Basicconceptual30 minIn writing
- 20How would you use composition over inheritance in a real implementation, and what would you watch out for?Intermediatepractical35 minIn writing
- 21What's the tradeoff with anonymous structs, and when would you choose differently?Intermediatepractical35 minIn writing
- 22What's a subtle bug or edge case people hit with struct tags and reflection basics?Intermediateconceptual30 minIn writing
- 23In production, an issue traces back to struct literals and embedding. How do you diagnose and fix it?Scenarioscenario45 minIn writing
- 24Quiz: check your grasp of structs, methods, and composition.Basicconceptual20 minIn writing
- 25What is Implicit interface satisfaction, and what problem does it solve?Basicconceptual30 minIn writing
- 26Walk me through how empty interface and any actually works under the hood.Basicconceptual35 minIn writing
- 27What's the practical difference that trips people up about type assertions vs type switches?Basicconceptual30 minIn writing
- 28How would you use interface segregation in go in a real implementation, and what would you watch out for?Intermediatepractical35 minIn writing
- 29What's the tradeoff with nil interfaces vs nil concrete values, and when would you choose differently?Intermediatepractical35 minIn writing
- 30What's a subtle bug or edge case people hit with accept interfaces, return structs?Intermediateconceptual30 minIn writing
- 31In production, an issue traces back to implicit interface satisfaction. How do you diagnose and fix it?Scenarioscenario45 minIn writing
- 32Quiz: check your grasp of interfaces and type assertions.Basicconceptual20 minIn writing
- 33What is Value semantics vs pointer semantics, and what problem does it solve?Basicconceptual30 minIn writing
- 34Walk me through how when to use a pointer receiver actually works under the hood.Basicconceptual35 minIn writing
- 35What's the practical difference that trips people up about escape analysis basics?Basicconceptual30 minIn writing
- 36How would you use passing large structs efficiently in a real implementation, and what would you watch out for?Intermediatepractical35 minIn writing
- 37What's the tradeoff with pointer arithmetic's absence, and when would you choose differently?Intermediatepractical35 minIn writing
- 38What's a subtle bug or edge case people hit with new() vs make()?Intermediateconceptual30 minIn writing
- 39In production, an issue traces back to value semantics vs pointer semantics. How do you diagnose and fix it?Scenarioscenario45 minIn writing
- 40Quiz: check your grasp of pointers and value vs reference semantics.Basicconceptual20 minIn writing
- 41What is Arrays vs slices, and what problem does it solve?Basicconceptual30 minIn writing
- 42Walk me through how slice header: pointer, length, capacity actually works under the hood.Basicconceptual35 minIn writing
- 43What's the practical difference that trips people up about append() and reallocation?Basicconceptual30 minIn writing
- 44How would you use slicing shares memory in a real implementation, and what would you watch out for?Intermediatepractical35 minIn writing
- 45What's the tradeoff with map iteration order and zero values, and when would you choose differently?Intermediatepractical35 minIn writing
- 46What's a subtle bug or edge case people hit with nil maps vs empty maps?Intermediateconceptual30 minIn writing
- 47In production, an issue traces back to arrays vs slices. How do you diagnose and fix it?Scenarioscenario45 minIn writing
- 48Quiz: check your grasp of slices, arrays, and maps.Basicconceptual20 minIn writing
- 49What is error as a return value, and what problem does it solve?Basicconceptual30 minIn writing
- 50Walk me through how sentinel errors vs errors.is/as actually works under the hood.Basicconceptual35 minIn writing
- 51What's the practical difference that trips people up about wrapping errors with %w?Basicconceptual30 minIn writing
- 52How would you use custom error types in a real implementation, and what would you watch out for?Intermediatepractical35 minIn writing
- 53What's the tradeoff with when not to ignore an error, and when would you choose differently?Intermediatepractical35 minIn writing
- 54What's a subtle bug or edge case people hit with errors vs panics?Intermediateconceptual30 minIn writing
- 55In production, an issue traces back to error as a return value. How do you diagnose and fix it?Scenarioscenario45 minIn writing
- 56Quiz: check your grasp of error handling idioms.Basicconceptual20 minIn writing
- 57What is defer execution order (LIFO), and what problem does it solve?Basicconceptual30 minIn writing
- 58Walk me through how panic and stack unwinding actually works under the hood.Basicconceptual35 minIn writing
- 59What's the practical difference that trips people up about recover inside a deferred function?Basicconceptual30 minIn writing
- 60How would you use cleanup patterns with defer in a real implementation, and what would you watch out for?Intermediatepractical35 minIn writing
- 61What's the tradeoff with when panic is appropriate, and when would you choose differently?Intermediatepractical35 minIn writing
- 62What's a subtle bug or edge case people hit with re-panicking after logging?Intermediateconceptual30 minIn writing
- 63In production, an issue traces back to defer execution order (lifo). How do you diagnose and fix it?Scenarioscenario45 minIn writing
- 64Quiz: check your grasp of panic, recover, and defer.Basicconceptual20 minIn writing
- 65What is Goroutines vs OS threads, and what problem does it solve?Basicconceptual30 minIn writing
- 66Walk me through how gomaxprocs and the m:n scheduler actually works under the hood.Basicconceptual35 minIn writing
- 67What's the practical difference that trips people up about goroutine leaks?Basicconceptual30 minIn writing
- 68How would you use starting and stopping goroutines cleanly in a real implementation, and what would you watch out for?Intermediatepractical35 minIn writing
- 69What's the tradeoff with stack growth for goroutines, and when would you choose differently?Intermediatepractical35 minIn writing
- 70What's a subtle bug or edge case people hit with cooperative scheduling points?Intermediateconceptual30 minIn writing
- 71In production, an issue traces back to goroutines vs os threads. How do you diagnose and fix it?Scenarioscenario45 minIn writing
- 72Quiz: check your grasp of goroutines and the go scheduler.Basicconceptual20 minIn writing
- 73What is Buffered vs unbuffered channels, and what problem does it solve?Basicconceptual30 minIn writing
- 74Walk me through how closing channels and the ok idiom actually works under the hood.Basicconceptual35 minIn writing
- 75What's the practical difference that trips people up about select with multiple cases?Basicconceptual30 minIn writing
- 76How would you use nil channel behavior in a real implementation, and what would you watch out for?Intermediatepractical35 minIn writing
- 77What's the tradeoff with fan-in / fan-out patterns, and when would you choose differently?Intermediatepractical35 minIn writing
- 78What's a subtle bug or edge case people hit with deadlocks from unbuffered sends?Intermediateconceptual30 minIn writing
- 79In production, an issue traces back to buffered vs unbuffered channels. How do you diagnose and fix it?Scenarioscenario45 minIn writing
- 80Quiz: check your grasp of channels and select.Basicconceptual20 minIn writing
- 81What is sync.Mutex vs sync.RWMutex, and what problem does it solve?Basicconceptual30 minIn writing
- 82Walk me through how sync.waitgroup for fan-out completion actually works under the hood.Basicconceptual35 minIn writing
- 83What's the practical difference that trips people up about sync/atomic operations?Basicconceptual30 minIn writing
- 84How would you use sync.once for lazy init in a real implementation, and what would you watch out for?Intermediatepractical35 minIn writing
- 85What's the tradeoff with when to prefer a mutex over a channel, and when would you choose differently?Intermediatepractical35 minIn writing
- 86What's a subtle bug or edge case people hit with copying a mutex by value?Intermediateconceptual30 minIn writing
- 87In production, an issue traces back to sync.mutex vs sync.rwmutex. How do you diagnose and fix it?Scenarioscenario45 minIn writing
- 88Quiz: check your grasp of sync primitives (mutex, waitgroup, atomic).Basicconceptual20 minIn writing
- 89What is Data races vs logical races, and what problem does it solve?Basicconceptual30 minIn writing
- 90Walk me through how go run -race and the race detector actually works under the hood.Basicconceptual35 minIn writing
- 91What's the practical difference that trips people up about worker pool pattern?Basicconceptual30 minIn writing
- 92How would you use pipeline pattern with channels in a real implementation, and what would you watch out for?Intermediatepractical35 minIn writing
- 93What's the tradeoff with context-based cancellation across goroutines, and when would you choose differently?Intermediatepractical35 minIn writing
- 94What's a subtle bug or edge case people hit with common goroutine leak sources?Intermediateconceptual30 minIn writing
- 95In production, an issue traces back to data races vs logical races. How do you diagnose and fix it?Scenarioscenario45 minIn writing
- 96Quiz: check your grasp of concurrency patterns and race conditions.Basicconceptual20 minIn writing
- 97What is context.Context propagation, and what problem does it solve?Basicconceptual30 minIn writing
- 98Walk me through how withcancel, withtimeout, withdeadline actually works under the hood.Basicconceptual35 minIn writing
- 99What's the practical difference that trips people up about context.value and its limits?Basicconceptual30 minIn writing
- 100How would you use cancellation vs error handling in a real implementation, and what would you watch out for?Intermediatepractical35 minIn writing
- 101What's the tradeoff with respecting ctx.done() in long loops, and when would you choose differently?Intermediatepractical35 minIn writing
- 102What's a subtle bug or edge case people hit with context leaks from missing cancel()?Intermediateconceptual30 minIn writing
- 103In production, an issue traces back to context.context propagation. How do you diagnose and fix it?Scenarioscenario45 minIn writing
- 104Quiz: check your grasp of context package and cancellation.Basicconceptual20 minIn writing
- 105What is Package visibility (exported vs unexported), and what problem does it solve?Basicconceptual30 minIn writing
- 106Walk me through how module versioning and semantic import paths actually works under the hood.Basicconceptual35 minIn writing
- 107What's the practical difference that trips people up about go mod tidy and vendor?Basicconceptual30 minIn writing
- 108How would you use internal packages in a real implementation, and what would you watch out for?Intermediatepractical35 minIn writing
- 109What's the tradeoff with avoiding import cycles, and when would you choose differently?Intermediatepractical35 minIn writing
- 110What's a subtle bug or edge case people hit with replacing a dependency locally?Intermediateconceptual30 minIn writing
- 111In production, an issue traces back to package visibility (exported vs unexported). How do you diagnose and fix it?Scenarioscenario45 minIn writing
- 112Quiz: check your grasp of packages, modules, and dependency management.Basicconceptual20 minIn writing
- 113What is table-driven tests, and what problem does it solve?Basicconceptual30 minIn writing
- 114Walk me through how testing.b benchmarks actually works under the hood.Basicconceptual35 minIn writing
- 115What's the practical difference that trips people up about pprof for cpu and memory profiles?Basicconceptual30 minIn writing
- 116How would you use test doubles via interfaces in a real implementation, and what would you watch out for?Intermediatepractical35 minIn writing
- 117What's the tradeoff with go test -cover, and when would you choose differently?Intermediatepractical35 minIn writing
- 118What's a subtle bug or edge case people hit with fuzzing with go test -fuzz?Intermediateconceptual30 minIn writing
- 119In production, an issue traces back to table-driven tests. How do you diagnose and fix it?Scenarioscenario45 minIn writing
- 120Quiz: check your grasp of testing, benchmarking, and profiling.Basicconceptual20 minIn writing
- 121What is Stack vs heap allocation, and what problem does it solve?Basicconceptual30 minIn writing
- 122Walk me through how escape analysis and go build -gcflags actually works under the hood.Basicconceptual35 minIn writing
- 123What's the practical difference that trips people up about gc pacing and gogc?Basicconceptual30 minIn writing
- 124How would you use reducing allocations in hot paths in a real implementation, and what would you watch out for?Intermediatepractical35 minIn writing
- 125What's the tradeoff with sync.pool for reuse, and when would you choose differently?Intermediatepractical35 minIn writing
- 126What's a subtle bug or edge case people hit with memory profiling a leak?Intermediateconceptual30 minIn writing
- 127In production, an issue traces back to stack vs heap allocation. How do you diagnose and fix it?Scenarioscenario45 minIn writing
- 128Quiz: check your grasp of memory management and garbage collection.Basicconceptual20 minIn writing