A hiring manager's question bank for Go developers — goroutines and channels, interfaces, idiomatic error handling, and the concurrency model that makes Go what it is. Built to separate people who write Go like it is Java from people who write it like Go.
Go is a small language on purpose, so interviewing for it is less about how much a candidate has memorized and more about whether they think the Go way. The heart of the language is concurrency: goroutines are cheap, channels coordinate them, and the community mantra is "do not communicate by sharing memory; share memory by communicating." A strong Go developer can explain when to use a channel versus a mutex, how to avoid a goroutine leak by respecting context cancellation, why an unbuffered channel blocks until both sides are ready, and how the select statement multiplexes concurrent work. Beyond concurrency, Go has a distinct idiom: errors are values you check explicitly, not exceptions you throw; interfaces are satisfied implicitly and should be small; and simplicity is a feature, so clever abstractions are usually the wrong instinct. The candidates worth hiring reach for the standard library first, handle errors deliberately rather than ignoring them, and understand subtle traps like a nil interface that is not equal to nil, slices sharing an underlying array, or a loop variable captured in a goroutine. You also want awareness of the runtime — the garbage collector, how the scheduler maps goroutines onto OS threads, and how to profile with pprof when something is slow. The questions below run from language fundamentals through concurrency and error handling into the runtime and real-world judgement. Pair a couple of fundamentals questions with one concurrency scenario and one "this Go service leaks goroutines" discussion, and you will quickly learn whether someone writes idiomatic, production-ready Go.
Choose six to eight questions across two or three categories instead of the whole list. Start with a fundamentals question, then spend real time on a Concurrency scenario — goroutines, channels, and cancellation are the core of the language — and one error-handling or runtime topic. Follow every clean answer with "channel or mutex here, and why?" or "how do you stop that goroutine?" to see real depth.
JuggleHire goes beyond simple job posting. Leverage custom forms, powerful screening filters, and automated social media previews to find the perfect fit for your team.