THE NEXT LEVEL · PREPARE TO EXPLAIN
Know the answer.
Show the reasoning.
88 worked guides. 12 connected topics. From your first Go interview to systems and failure analysis.
Each guide includes a strong answer, a tempting wrong answer, a worked exercise and a follow-up. Eight algorithm labs let you step through 24 input scenarios. The map is a route through the subject, with every level open.
- Junior
- Middle
- Senior
- Staff / expert
No finite bank covers every possible interview. Use these guides to practice deriving an answer when the constraints change. Native 1.1.4 adds the same separate Interview area; web and app progress are independent.
88 guides match. Difficulty describes the reasoning expected, not a hiring guarantee.
Zero values and safe APIs
Is every zero value ready for every operation?
Prepare & explain →Slice copies share storage
Why did appending to one slice change another?
Prepare & explain →Bytes, runes and text
What does len(s) count, and when does range give the wrong index for a UI?
Prepare & explain →Typed nil and method sets
Why can err != nil even though its pointer is nil?
Prepare & explain →Errors are part of the API
Should every error be wrapped, logged and retried?
Prepare & explain →Generics, interfaces and typed code
When should a reusable function be generic?
Prepare & explain →Defer arguments and return values
When are deferred function arguments evaluated?
Prepare & explain →Panic, recover and failure boundaries
Can a parent goroutine recover a child goroutine's panic?
Prepare & explain →Map order, nil maps and concurrency
Can you rely on iteration order or read a map during a concurrent write?
Prepare & explain →Everything is passed by value
If Go passes by value, why can a function modify a caller's slice elements?
Prepare & explain →Loop variables and toolchain semantics
Do all goroutines in a range loop still capture the same iteration variable?
Prepare & explain →Comparability and map keys
Why can using any as a map key panic?
Prepare & explain →io.Reader: data and an error together
Should a read loop discard bytes when Read returns an error?
Prepare & explain →Integer width, overflow and representation
Does int always have64 bits, and do integer operations panic on overflow?
Prepare & explain →Stack, heap and escape analysis
Does returning a pointer always allocate on the heap?
Prepare & explain →GC budgets under load
Why can a service with little live data still spend substantial CPU in GC?
Prepare & explain →Retention, pools and ownership
Can a tiny slice retain a very large allocation?
Prepare & explain →Goroutines, threads and CPU quotas
Why does adding goroutines fail to speed up CPU work?
Prepare & explain →Memory layout and false sharing
Two independent counters slow down when updated concurrently. Why?
Prepare & explain →When unsafe and cgo change the contract
Can you keep a C pointer to Go memory after a cgo call?
Prepare & explain →Channel closure is a protocol
Who closes a channel used by several workers?
Prepare & explain →Cancellation is not joining
Does calling cancel guarantee a goroutine has stopped?
Prepare & explain →Data races versus business races
Why is a check-then-insert still wrong with a mutex around each operation?
Prepare & explain →Happens-before, not wishful timing
Can another goroutine safely read a value after sleeping?
Prepare & explain →Bounded workers and overload
How do you keep one million jobs from becoming one million goroutines?
Prepare & explain →Select, timers and fairness
Does select always prefer cancellation over a ready result?
Prepare & explain →Concurrent cache and stampedes
How do you avoid 1,000 identical cache misses triggering 1,000 database reads?
Prepare & explain →Deadlock and lock ordering
How do you debug a service that is alive but no longer processes requests?
Prepare & explain →Binary search as a boundary invariant
Find the first index whose value is at least a target.
Prepare & explain →Two sum and index ownership
Find two distinct indexes whose values sum to a target.
Prepare & explain →Sliding window without repeated scans
Find the longest byte substring with no repeated byte.
Prepare & explain →BFS and shortest unweighted paths
How do you find the fewest edges between two nodes?
Prepare & explain →Dijkstra and stale heap entries
How do you find cheapest routes with nonnegative edge weights?
Prepare & explain →Top-K with a bounded min-heap
How can a stream keep its largest k values without sorting everything?
Prepare & explain →Merge sorted streams
How do you merge two sorted inputs without re-sorting them?
Prepare & explain →Dynamic programming: minimum coins
Why does choosing the largest coin first fail for arbitrary denominations?
Prepare & explain →Why Go for backend systems?
Why choose Go for a network service, and when would you choose something else?
Prepare & explain →Package boundaries and clean code
What makes a Go package a useful boundary rather than an extra folder?
Prepare & explain →Layered, hexagonal, vertical or services?
How would you choose an architecture for a growing Go product?
Prepare & explain →Patterns with a cost
Which design patterns translate naturally into Go?
Prepare & explain →Idempotency, outbox and retries
How do you keep an accepted order and its published event consistent?
Prepare & explain →Design a rate-limited job platform
How would you design a multi-tenant Go job service at 100,000 jobs per minute?
Prepare & explain →One request, one time budget
Which timeouts should a production Go HTTP service configure?
Prepare & explain →Authorization and hostile input
What must a Go API validate beyond successful JSON decoding?
Prepare & explain →Idempotent API operations
How should POST /payments behave when the caller retries?
Prepare & explain →Graceful shutdown and probes
What is the correct shutdown order for a Go service?
Prepare & explain →SQL pools, transactions and N+1
What does sql.DB own, and why can increasing its pool hurt?
Prepare & explain →Streaming, backpressure and ordering
How do you stream millions of records without retaining them all?
Prepare & explain →Tests that prove behavior
What makes a good table-driven test?
Prepare & explain →Parallel tests without shared state
Why does a test pass alone but fail with t.Parallel?
Prepare & explain →Fuzzing parsers with useful properties
What property would you fuzz for a custom codec?
Prepare & explain →Benchmark versus load test
Why can a faster microbenchmark still make production slower?
Prepare & explain →CPU, heap, block and trace
Which diagnostic would you collect first for a p99 incident?
Prepare & explain →Fault tests around unknown outcomes
How do you test a retry protocol instead of just a retry loop?
Prepare & explain →Package, module and repository
Why can a repository contain several packages but only one module path in one go.mod?
Prepare & explain →Version selection and checksums
Why did changing one dependency upgrade another?
Prepare & explain →go.work, replace and release consumers
Why can code work in a workspace but fail for users?
Prepare & explain →Private dependencies and supply chain
How do you keep private module names and credentials out of public services?
Prepare & explain →Build reproducibility and resource budgets
Why does go test ./... fail only under a small CI container?
Prepare & explain →API evolution and toolchain changes
How do you upgrade a Go service without silently changing its contract?
Prepare & explain →One MongoDB client, many operations
Do you create and disconnect a MongoDB client for every HTTP request?
Prepare & explain →Compound indexes and pagination
Which index supports tenant filtering and newest-first pagination?
Prepare & explain →Conditional updates and uniqueness
How do two Go replicas safely update the same document?
Prepare & explain →Transactions and external side effects
Can a MongoDB transaction callback send a payment or email?
Prepare & explain →Cursors, cancellation and partial results
Why can a cursor loop return no error but still lose records?
Prepare & explain →MongoDB under contention
Why does increasing maxPoolSize fail to fix p99?
Prepare & explain →Redis client lifetime and missing keys
How do you distinguish a missing Redis key from an outage in Go?
Prepare & explain →Cache invalidation and expiration
How do you prevent stale data from living forever?
Prepare & explain →Pipeline is not a transaction
What does Redis pipelining guarantee?
Prepare & explain →Leases, fencing and stale owners
Does SET key token NX PX make a perfect distributed lock?
Prepare & explain →Streams, pending entries and idempotency
When should a consumer acknowledge a Redis Stream message?
Prepare & explain →Hot keys, eviction and overload
Why does Redis latency rise even when Go CPU is low?
Prepare & explain →Build an image, not a development machine
What belongs in a production Go container image?
Prepare & explain →Go, MongoDB and Redis in Compose
Why can a container not reach MongoDB at localhost:27017?
Prepare & explain →Startup, readiness and liveness probes
Why are three Kubernetes probes different?
Prepare & explain →Requests, limits and Go runtime budgets
What happens when a Pod exceeds CPU or memory limits?
Prepare & explain →Rolling updates and compatibility
How do you deploy without dropping accepted work?
Prepare & explain →Autoscaling without melting storage
Why can adding Go replicas make the system slower?
Prepare & explain →Secrets, configuration and RBAC
What belongs in an image, a ConfigMap and a Secret?
Prepare & explain →Stateful databases are not ordinary Pods
Should MongoDB and Redis simply scale like a stateless Go Deployment?
Prepare & explain →Use an agent without outsourcing understanding
How would you use Claude Code, Codex or Cursor for a Go change?
Prepare & explain →Codex repository guidance for Go
What should a Go repository put in AGENTS.md for Codex?
Prepare & explain →Claude Code: context and verification
How do you make Claude Code useful on an unfamiliar Go service?
Prepare & explain →Cursor rules and scoped edits
How would you guide Cursor while preserving an existing Go API?
Prepare & explain →Verify generated Go APIs and dependencies
How do you catch a coding agent that invents a driver method?
Prepare & explain →Agent permissions and prompt injection
Why can repository text be unsafe input for a coding agent?
Prepare & explain →Review AI-written concurrent Go
What should you inspect first in generated goroutine code?
Prepare & explain →Demonstrate your own engineering judgment
How do you discuss AI-assisted Go work in an interview?
Prepare & explain →