Senior Go Backend Interview — Question Bank¶
A complete, interview-ready question bank for a Senior Golang Backend Engineer role (≈ 5+ years of experience). Targets the exact stack hiring teams probe today: Go runtime & concurrency, PostgreSQL, MongoDB, Kafka/RabbitMQ, distributed systems, gRPC/REST, security, Docker/Kubernetes, AWS, and observability — plus algorithms and behavioral rounds.
Each section is a graded list of questions, ordered from warm-up to deep / staff-level. The goal is not trivia recall — at this level interviewers want why, trade-offs, and what breaks in production. For every question, be ready to answer in three layers: definition → mechanism → real-world trade-off.
How to use this: cover the answer, say it out loud as if to an interviewer, then check yourself. If you can't explain the failure mode of a thing, you don't know it well enough yet.
Table of Contents¶
- Golang Language & Runtime
- Concurrency
- Algorithms & Data Structures
- Databases (PostgreSQL & SQL)
- NoSQL (MongoDB)
- Messaging (Kafka / RabbitMQ / NATS)
- Distributed Systems
- System Design
- API Design (REST / gRPC / WebSocket)
- Security
- Testing (TDD / BDD / DDD)
- DevOps (Docker / Kubernetes / CI-CD)
- Observability
- Cloud (AWS / GCP)
- Behavioral & Leadership
1. Golang Language & Runtime¶
Goroutines, Scheduler & the GMP Model¶
- Explain the GMP model (G, M, P). What does each component do and why does P exist between G and M?
- What is
GOMAXPROCSand how does changing it affect scheduling? What's a sane production value? - How does Go's work-stealing scheduler balance load across Ps? What is the global run queue vs. local run queue?
- What is a goroutine's initial stack size, and how does it grow? What's stack copying and when does it happen?
- How does the scheduler handle a goroutine making a blocking syscall? (hand-off of P, creation of a new M)
- What is goroutine preemption? Difference between cooperative and asynchronous (signal-based) preemption introduced in Go 1.14?
- A goroutine runs a tight
for {}loop with no function calls — what happened before 1.14 and what happens now? - How is a goroutine cheaper than an OS thread? Quantify it (stack size, scheduling cost).
- How do you detect and debug a goroutine leak? What tools and signals point to one?
Channels & select¶
- What's the difference between buffered and unbuffered channels in terms of synchronization guarantees?
- What happens on send/receive to a
nilchannel? A closed channel? Why is this useful inselect? - How do you implement a timeout on a channel operation? (
time.After,context) - Explain the "send on closed channel panics" rule. Who should own closing a channel and why?
- How does
selectchoose among multiple ready cases? What doesdefaultdo? - Implement a fan-out/fan-in pipeline. How do you propagate cancellation and avoid leaking the producers?
Synchronization primitives¶
- When do you reach for a channel vs. a
sync.Mutex? "Share memory by communicating" — when does that advice not apply? sync.Mutexvssync.RWMutex— when does RWMutex actually help, and when does it hurt?- What problem does
sync.Mapsolve, and what are its two optimized access patterns? When is a plain map + mutex better? - What does
sync.Onceguarantee, and how is it implemented (fast path with atomic load)? - What is
sync.Poolfor? What are its gotchas (GC clears it, no guarantees, per-P pools)? - When is
sync/atomicthe right tool? Compare-and-swap example and the ABA problem. - What is false sharing and how would you avoid it with padding?
Context & cancellation¶
- What problems does
context.Contextsolve? Why is it passed as the first argument by convention? - Difference between
WithCancel,WithTimeout,WithDeadline, andWithValue. When isWithValuean anti-pattern? - If a parent context is cancelled, what happens to children? How is the cancellation propagated?
- Why must you always call the
cancelfunction returned bycontext.WithCancel, even on the happy path? - How do you respect context cancellation inside a CPU-bound loop with no I/O?
Memory: stack vs heap, escape analysis, GC¶
- What is escape analysis? Give three cases that force a variable to escape to the heap.
- How do you inspect escape decisions? (
go build -gcflags='-m') - Walk through Go's GC: tri-color mark-and-sweep, write barriers, concurrent marking. Why is it low-latency rather than low-throughput?
- What is
GOGCand what does setting it to 50 vs 200 trade off? What isGOMEMLIMIT(1.19+) and when do you use it? - What is a "stop-the-world" pause in modern Go and roughly how long is it?
- How do you reduce allocations in a hot path? (reuse buffers,
sync.Pool, avoid interface boxing, preallocate slices)
Interfaces, types, generics¶
- How is an interface value represented internally? (type pointer + data pointer /
ifacevseface) - Why does a
nilpointer stored in an interface make the interface non-nil? (the classic typed-nil bug) - Explain type assertion vs type switch. What's the two-return-value form for?
- What changed with generics (Go 1.18)? What are type parameters, constraints, and
~(underlying type)? - When should you NOT use generics? What's the performance/readability trade-off vs interfaces?
- What is the empty interface
any, and what's the cost of using it everywhere?
Internals: slices, maps, strings¶
- Explain a slice header (ptr, len, cap). What happens to the underlying array on
appendwhen cap is exceeded? - The classic slice-aliasing bug: two slices sharing a backing array — how does it bite you and how do you avoid it (
copy, full slice expressiona[low:high:max])? - How is a Go map implemented (buckets, overflow buckets, load factor)? Why is map iteration order randomized?
- Why can't you take the address of a map element? Why are concurrent map writes a fatal error, not a recoverable panic?
- How are strings represented? Cost of
string([]byte)conversion and how to avoid copies.
Errors, reflection, profiling¶
- Idiomatic error handling: sentinel errors,
errors.Is/errors.As, wrapping with%w. When do you wrap vs. annotate? - When are panics acceptable? How does
recoverwork and why only inside a deferred function? - What is
reflectgood for, and what's the cost? Name a library that depends on it (encoding/json). - How do you profile a Go service? Walk through CPU, heap, block, mutex, and goroutine profiles via
pprof. - How do you read a flame graph? What does a wide vs. tall frame tell you?
- What is the race detector, how does it work (shadow memory / happens-before), and why can't it run in production?
2. Concurrency¶
Patterns¶
- Implement a worker pool with a bounded number of workers and a job channel. How do you signal completion and collect results?
- Implement fan-out / fan-in. How do you cancel the whole pipeline if one stage errors? (
errgroup) - Producer–consumer with backpressure — how does a bounded channel naturally apply backpressure?
- Implement a rate limiter: token bucket vs leaky bucket. How does
golang.org/x/time/ratework? - Implement a circuit breaker (closed → open → half-open). What metrics drive the transitions?
- Implement a semaphore with a buffered channel and with
golang.org/x/sync/semaphore. - Pipeline with cancellation: use
context+errgroupso the first error tears down the rest.
Hazards¶
- What is a data race vs a race condition? Are all data races also race conditions?
- What causes a deadlock? Walk through the four Coffman conditions and how Go's runtime detects "all goroutines are asleep".
- What is a livelock? Give a realistic example (two goroutines politely retrying).
- What is goroutine starvation, and how did Go's mutex "starvation mode" address it?
- What is backpressure and what are your options when a downstream consumer can't keep up? (drop, buffer, block, shed load)
- How do you bound concurrency so you don't spawn 100k goroutines hitting a database?
- Explain the Go memory model: what does "happens-before" mean, and what synchronization establishes it?
3. Algorithms & Data Structures¶
Senior loops still include a coding screen. Expect 1–2 medium/hard problems with a focus on clean Go, complexity analysis, and edge cases — plus follow-ups that turn the problem into a system-design discussion.
Core topics to drill¶
- Arrays & strings: two pointers, sliding window, prefix sums.
- Hash maps & sets: frequency counting, dedup, two-sum family, LRU cache (map + doubly linked list).
- Stacks & queues: monotonic stack (next greater element), min-stack, queue via two stacks.
- Linked lists: reverse, cycle detection (Floyd), merge k sorted lists (heap).
- Trees: BFS/DFS, level-order, lowest common ancestor, BST validation, serialize/deserialize.
- Heaps / priority queues: top-k, median of a stream,
container/heapusage in Go. - Graphs: BFS/DFS, topological sort, Dijkstra, union-find (cycle detection, connected components).
- Recursion & backtracking: permutations, combinations, subsets, N-queens, word search.
- Dynamic programming: knapsack, coin change, longest common subsequence, edit distance, LIS.
- Sorting & searching: quicksort/mergesort trade-offs, binary search on answer,
sort.Search.
Complexity & Go-specific¶
- State and justify the time/space complexity of your solution. What's the worst case vs amortized?
- Implement an LRU cache in O(1). Why a doubly linked list + map?
- Why is
container/heapan interface you implement rather than a generic container? Implement a min-heap. - How does Go's
sort.Slicework, and why is it slower thansort.Sortwith a typed slice (reflection / closures)? - Design a rate limiter / sliding-window counter — bridges algorithms into backend design.
4. Databases (PostgreSQL & SQL)¶
Internals & storage¶
- How does PostgreSQL store rows on disk? (heap files, pages, tuples, the visibility map)
- Explain MVCC. How are row versions kept, what is
xmin/xmax, and why do you needVACUUM? - What is table bloat and how does autovacuum fight it? What is the transaction-ID wraparound problem?
- What is the WAL (write-ahead log)? How does it give you durability and enable replication & PITR?
- What are TOAST tables and when do they kick in?
Indexes¶
- Compare B-Tree, Hash, GIN, GiST, BRIN. Give a use case for each.
- When does a GIN index help (jsonb, full-text, array containment)? What's the write-amplification cost?
- Composite index column order — why does
(a, b)not serve a query filtering only onb? (left-prefix rule) - What is a covering index / index-only scan? What is a partial index? A functional/expression index?
- When does the planner ignore an index and choose a seq scan? Is that always wrong?
Query optimization¶
- Read this
EXPLAIN ANALYZEoutput: distinguish estimated vs actual rows, seq scan vs index scan, nested loop vs hash join vs merge join. Where's the bottleneck? - What is the N+1 query problem and how do you fix it in a Go service?
- How do you diagnose a slow query in production? (
pg_stat_statements,auto_explain,EXPLAIN (ANALYZE, BUFFERS)) - When do CTEs hurt performance, and what changed about CTE inlining in PostgreSQL 12?
- Keyset (cursor) pagination vs
OFFSET/LIMIT— why does OFFSET degrade at scale?
Transactions, ACID, isolation, locks¶
- Define ACID precisely. Which letter does replication threaten?
- Walk through the four isolation levels and the anomalies each prevents (dirty read, non-repeatable read, phantom, serialization anomaly). What does PostgreSQL actually implement for "Read Committed"?
- What is Serializable Snapshot Isolation (SSI) and what's its cost?
- Explain row-level vs table-level locks. What's
SELECT ... FOR UPDATEvsFOR SHARE? - What is a deadlock in Postgres, how does the DB detect & resolve it, and how do you prevent them (consistent lock ordering)?
- Optimistic vs pessimistic locking — implement optimistic locking with a
versioncolumn. - What is
SKIP LOCKEDand how does it let you build a job queue in Postgres?
Scaling¶
- Table partitioning: range vs list vs hash. What problems does it solve and what does it complicate?
- Streaming replication: synchronous vs asynchronous. What is replication lag and how do you handle read-after-write consistency with read replicas?
- When do you shard, and what makes a good shard key? How do cross-shard joins and transactions become hard?
- Connection pooling: why is it essential for Postgres, and what does PgBouncer do (session vs transaction pooling)?
- How do you do a zero-downtime schema migration (expand-contract / online migration)? Why is adding a NOT NULL column with a default dangerous on old Postgres versions?
5. NoSQL (MongoDB)¶
- When do you choose MongoDB over PostgreSQL? When is choosing it a mistake?
- Embedding vs referencing — how do you decide? What are the document size limits (16 MB) and how do they shape modeling?
- How do MongoDB indexes work? Compound indexes, multikey indexes (on arrays), the ESR (Equality, Sort, Range) rule.
- What are the consistency guarantees? Explain read concern, write concern, and read preference.
- How does replication work (replica set, primary election via Raft-like protocol)? What happens during failover?
- How does sharding work (shard key, chunks, balancer, mongos)? What makes a bad shard key (monotonic keys → hot shard)?
- What does the aggregation pipeline do? Walk through
$match,$group,$lookup,$unwind. Why put$matchfirst? - Are multi-document transactions supported, and what's their cost vs a relational DB?
- How do you avoid the "massive array" / unbounded document growth anti-pattern?
- How do you diagnose a slow MongoDB query? (
explain(), covered queries,COLLSCANvsIXSCAN)
6. Messaging (Kafka / RabbitMQ / NATS)¶
Kafka fundamentals¶
- Explain Kafka's core concepts: topic, partition, offset, broker, producer, consumer, consumer group.
- How does partitioning give you parallelism and ordering? Why is ordering guaranteed only within a partition?
- How does a consumer group divide partitions among consumers? What triggers a rebalance and why is it disruptive?
- What determines which partition a message goes to (key hashing, round-robin)? How do you guarantee per-entity ordering?
- What is the replication factor and ISR (in-sync replicas)? What is
acks=0/1/alland the durability trade-off? - What are
min.insync.replicasand how does it interact withacks=allto prevent data loss?
Delivery semantics¶
- Explain at-most-once, at-least-once, and exactly-once. Which is the default and why is exactly-once "hard"?
- How does Kafka achieve exactly-once (idempotent producer + transactions)? What's the cost?
- If you have at-least-once delivery, how do you make your consumer idempotent? (dedup keys, upserts)
- When do you commit offsets — before or after processing? What bug does each choice cause (lost vs duplicate messages)?
- What is a Dead Letter Queue (DLQ) and what's your retry strategy (retry topic, backoff, max attempts)?
Operations & design¶
- What is consumer lag, how do you monitor it, and what does growing lag tell you?
- How do you scale consumers? Why can't you have more consumers than partitions in a group?
- How do you choose the number of partitions? What's painful about changing it later?
- Kafka vs RabbitMQ vs NATS — when do you pick each? (log/streaming vs smart broker/routing vs lightweight pub-sub)
- What is log compaction and when do you use it (changelog topics, CDC)?
- How does the Transactional Outbox pattern guarantee you publish an event iff the DB write committed?
7. Distributed Systems¶
- State the CAP theorem precisely. Why is "CA" not a real choice for a distributed system? Give an AP and a CP system.
- CAP vs PACELC — what does PACELC add (latency vs consistency when there's no partition)?
- Define the consistency spectrum: strong, linearizable, sequential, causal, eventual. Give an example of each.
- What is consensus? Explain Raft: leader election, log replication, terms, commit index. How does it differ from Paxos in practice?
- How does leader election work and what is split-brain? How does a quorum (majority) prevent it?
- What is idempotency and why is it the backbone of reliable distributed systems? How do you make a payment API idempotent (idempotency keys)?
- What is eventual consistency, and how do you give users read-your-writes despite it?
- Explain the Saga pattern for distributed transactions. Orchestration vs choreography — trade-offs. How do compensating transactions work?
- Explain the Outbox pattern and how it pairs with CDC (Debezium) to avoid dual-write problems.
- Explain CQRS — when is splitting read/write models worth the complexity?
- Explain Event Sourcing — what do you store, how do you rebuild state, what are snapshots, and what's the hardest part (schema evolution of events)?
- The two-generals / dual-write problem: why can't you atomically write to a DB and publish to Kafka? How do you solve it?
- How do you handle distributed time? Why are wall clocks unreliable; what are logical clocks, Lamport timestamps, and vector clocks?
- What is a distributed lock, when do you actually need one, and why is it dangerous? (fencing tokens, Redlock controversy)
- How do you design for failure: timeouts, retries with exponential backoff + jitter, circuit breakers, bulkheads, graceful degradation?
8. System Design¶
Expect a 45–60 min open-ended design. Drive it: clarify requirements → estimate scale (QPS, storage, bandwidth) → define APIs → high-level diagram → deep-dive on 1–2 components → discuss bottlenecks, failure modes, and trade-offs. Always state your assumptions.
Classic prompts¶
- URL shortener — key generation (counter+base62 vs hash), collision handling, read-heavy caching, redirect latency, analytics.
- Notification service — multi-channel (push/email/SMS), fan-out, rate limiting, user preferences, retries & idempotency, template rendering.
- Payment system — idempotency, double-spend prevention, the saga across payment/ledger/inventory, exactly-once charging, audit log, PCI concerns.
- Chat system — WebSocket fan-out, presence, message ordering & delivery receipts, online/offline, storage, group chat fan-out.
- Distributed cache — consistent hashing, replication, eviction (LRU/LFU), cache invalidation, hot keys, thundering herd / cache stampede.
- Message queue / broker — durability, ordering, at-least-once delivery, consumer groups, backpressure.
- API gateway — routing, auth, rate limiting, request aggregation, retries, observability.
- Rate limiter (distributed) — token bucket in Redis, sliding window, handling clock skew and races.
- Newsfeed / timeline — fan-out-on-write vs fan-out-on-read, the celebrity problem, ranking.
- File storage / S3-like — chunking, metadata service, replication, consistency.
Cross-cutting design questions¶
- How do you estimate capacity? Walk through QPS, storage/day, bandwidth, and memory for a cache.
- Where do you add caching and what are the invalidation strategies (write-through, write-back, write-around, TTL)?
- How do you achieve high availability (active-active vs active-passive, health checks, failover, multi-AZ)? What's the difference between 99.9% and 99.99% in real downtime?
- How do you keep a service stateless so it scales horizontally? Where does the state actually go?
- Load balancing: L4 vs L7, algorithms (round-robin, least-connections, consistent hashing), session affinity — when is each right?
9. API Design (REST / gRPC / WebSocket)¶
- REST maturity: resource naming, correct HTTP verbs & status codes, idempotency of PUT/DELETE vs POST.
- How do you design pagination? Offset vs cursor/keyset — pros, cons, and stability under inserts.
- API versioning strategies (URI, header, media-type). How do you ship a breaking change safely with deprecation?
- gRPC vs REST — when do you choose gRPC? What does HTTP/2 multiplexing buy you?
- Protocol Buffers: how does wire compatibility work? Rules for evolving a schema without breaking clients (never reuse field numbers, reserved fields).
- The four gRPC modes (unary, server-stream, client-stream, bidi). Give a use case for streaming.
- How do gRPC deadlines/cancellation propagate, and how does that map to Go's
context? - WebSocket vs SSE vs long-polling — when do you pick each?
- How do you handle partial failure and retries safely at the API layer? (idempotency keys,
Retry-After) - Rate limiting & throttling at the API edge — where do you enforce it and how do you communicate limits (429, headers)?
10. Security¶
- JWT: structure (header.payload.signature), signing (HS256 vs RS256), and the common pitfalls (
alg: none, no expiry, storing sensitive data in the payload). - How do you revoke a JWT before it expires? (short TTL + refresh tokens, denylist, token versioning)
- Access token vs refresh token — storage (httpOnly cookie vs localStorage), rotation, and theft detection.
- OAuth2 grant types — authorization code + PKCE, client credentials. When is each used?
- OIDC vs OAuth2 — what does OIDC add (authentication, the ID token)? Where does Keycloak fit?
- What is HMAC and where do you use it (webhook signature verification)?
- TLS handshake at a high level — what does it establish, and what's mutual TLS (mTLS) for service-to-service?
- Prevent SQL injection — parameterized queries / prepared statements; why string concatenation is never safe even with escaping.
- Prevent XSS (output encoding, CSP) and CSRF (SameSite cookies, anti-CSRF tokens) — and why CSRF mostly doesn't apply to token-in-header APIs.
- How do you store passwords? (bcrypt/argon2, salt, never MD5/SHA-1). How do you manage secrets (Vault, KMS) and rotate them?
11. Testing (TDD / BDD / DDD)¶
- Walk through the TDD cycle (red-green-refactor). Where does it pay off and where does it slow you down?
- Table-driven tests in Go — show the idiom. How do you use subtests (
t.Run) andt.Parallel? - Unit vs integration vs end-to-end — the test pyramid. What's the "ice cream cone" anti-pattern?
- How do you test code that depends on a DB or Kafka? (testcontainers, fakes, the trade-off vs mocks)
- Mocks vs stubs vs fakes vs spies — when do you use each, and what does over-mocking cost you?
- How do you make Go interfaces testable without a mocking framework? (accept interfaces, return structs; hand-written fakes)
- What is BDD and Gherkin (Given/When/Then)? How does it change who writes the spec?
- What is DDD? Define entity, value object, aggregate, aggregate root, bounded context, ubiquitous language.
- How do bounded contexts map to microservices, and how do they communicate (context mapping, anti-corruption layer)?
- What is property-based testing and when does it beat example-based tests? How do you measure & interpret code coverage without gaming it?
12. DevOps (Docker / Kubernetes / CI-CD)¶
- Write a production-grade Go Dockerfile: multi-stage build, static binary, distroless/scratch base, non-root user. Why is the image so small?
- What's the difference between
CMDandENTRYPOINT?COPYvsADD? How does build-cache layering affect rebuild speed? - Kubernetes objects: Pod, ReplicaSet, Deployment, Service, Ingress, ConfigMap, Secret — what does each do?
- Liveness vs readiness vs startup probes — what breaks if you confuse liveness and readiness?
- Requests vs limits (CPU & memory). What is an OOMKill, and what happens when a container exceeds its CPU limit (throttling, not killing)?
- How does a rolling update work, and how do you do blue-green or canary deploys?
- How does service discovery and load balancing work inside Kubernetes (kube-proxy, ClusterIP, DNS)?
- What goes in a CI/CD pipeline for a Go service (lint, test, race, build, scan, push, deploy)? How do you keep it fast?
- How do you handle graceful shutdown in Go on
SIGTERMso Kubernetes can drain you cleanly? - What is the role of nginx / a reverse proxy in front of your service, and what do you tune?
13. Observability¶
- The three pillars: metrics, logs, traces. What question does each answer, and why do you need all three?
- Instrument a Go service with Prometheus — what are the four metric types (counter, gauge, histogram, summary) and when do you use each?
- What are the RED and USE methods for choosing what to measure?
- Why are histograms better than averages for latency? What's the danger of averaging percentiles across instances?
- What is distributed tracing? How does a trace/span/context propagate across services (W3C trace-context, OpenTelemetry)?
- How do you correlate a log line with a trace and a metric spike? (trace IDs in structured logs)
- Structured logging in Go (
slog) — why structured over printf, and what do you put in vs leave out (no secrets/PII)? - How do you design alerts that page humans without causing alert fatigue? What is an SLO, SLI, and error budget?
- How do you debug high p99 latency that doesn't show up in p50? (tail latency, GC pauses, lock contention, noisy neighbor)
- What is sampling and why do you need it for traces and high-cardinality metrics at scale?
14. Cloud (AWS / GCP)¶
- Core AWS building blocks you've used: EC2, S3, RDS/Aurora, ECS/EKS, Lambda, SQS/SNS, ElastiCache. What's the use case for each?
- S3 consistency model, storage classes, and how you'd design uploads/downloads (presigned URLs, multipart upload).
- How does an Application Load Balancer work, and how does it integrate with auto-scaling and health checks?
- What is auto-scaling (target tracking vs step scaling)? What metric do you scale a Go API on?
- Managed database (RDS/Aurora) vs self-hosted Postgres — what do you give up and gain? How do read replicas and Multi-AZ work?
- How do you manage secrets & config in the cloud (Secrets Manager, Parameter Store, IAM roles vs static keys)?
- IAM basics: roles vs users vs policies, least privilege, and why you never bake credentials into an image.
- How would you architect a highly available, multi-AZ Go microservice on AWS end to end?
- SQS vs Kafka (MSK) vs SNS — when do you choose each?
- How do you control cloud cost (right-sizing, spot instances, S3 lifecycle policies, egress awareness)?
15. Behavioral & Leadership¶
Use STAR (Situation, Task, Action, Result). Be specific, quantify impact, and own both wins and mistakes. Seniors are judged as much on judgment and communication as on code.
- Tell me about the hardest technical problem you've solved. What made it hard and how did you approach it?
- Describe a production outage you handled. How did you detect, mitigate, find root cause, and prevent recurrence? What did the postmortem look like?
- Tell me about a time you refactored legacy code. How did you de-risk it (tests first, strangler fig, incremental)?
- Describe a time you disagreed with a teammate or manager on a technical decision. How did you resolve it?
- How do you approach code review — as an author and as a reviewer? How do you give feedback that lands?
- Tell me about a time you mentored a junior engineer. What changed for them?
- Describe a project where you owned the architecture end to end. What trade-offs did you make and what would you do differently?
- Tell me about a time you shipped something under a tight deadline. What did you cut, and how did you manage the debt?
- How do you make a decision when you have incomplete information and the team is split?
- Tell me about a technical mistake you made. How did you handle it and what did you learn?
- How do you keep learning and stay current? What did you go deep on recently?
- Why do you want to work on event-driven systems / this product, and what do you want to grow into?
Final-mile checklist before the interview¶
- Can you explain Go's scheduler, GC, and memory model from memory, including failure modes?
- Can you read an
EXPLAIN ANALYZEand approfflame graph cold? - Can you reason about delivery semantics and idempotency for Kafka end to end?
- Can you take any system-design prompt from requirements → estimates → diagram → deep-dive → trade-offs?
- Do you have 6–8 polished STAR stories covering outages, conflict, mentorship, ownership, and failure?
- Can you say all of the above clearly in English (C1) under time pressure?