A course grounded in your services

gRPC, from newcomer to interview-ready

Every concept anchored to real gRPC code in conversationmgmt, notification & spike.

You write gRPC handlers in this monorepo, but the plumbing is scaffolded for you — so the model underneath (streaming, interceptors, status, deadlines, metadata) isn't a reflex yet. This course builds that model the way an interview tests it, from the proto contract to the wire, pinning each idea to code you already own. Six parts, 24 lessons, built one at a time. Lessons are short — one win each. Read them in order.

How to use this Do one lesson, take its quiz from memory (no peeking), then skim the matching row of the cheat sheet. Come back a day later and re-take it — spacing beats cramming. This is your third course; you know the drill. Stuck? Ask me — I'm your teacher, not just the author.

Part 1 — Foundations: gRPC & Protobuf available now

The contract-first model: define a service in a .proto, generate code, call it like a local method.

1 · What gRPC is & why

RPC over HTTP/2 with Protobuf — and why that beats hand-rolled REST here.

ready

2 · Protobuf: messages & fields

The IDL — messages, scalar types, and why field numbers matter.

ready

3 · Services & codegen

Defining service { rpc ... } and generating Go stubs with protoc (buf lints).

ready

4 · A unary call, end-to-end

The four RPC types, then one request/response traced through your SendEmail.

ready

Part 2 — Streaming RPCs available now

The other three RPC types — anchored to real streaming code in tom & bob (your 3 services are unary).

5 · Server streaming

One request → a stream of responses; how tom's live chat Subscribe works.

ready

6 · Client streaming

A stream of requests → one response; the upload shape (RecvSendAndClose).

ready

7 · Bidirectional & choosing

Both directions at once — and the one-line rule for picking any RPC type.

ready

Part 3 — Errors, deadlines & metadata available now

What wraps every call regardless of type — and where your Go course pays off.

8 · Status codes & error model

codes.*, the rich error model, and mapping at the boundary (builds on Go L12).

ready

9 · Deadlines & cancellation

Deadline vs timeout; the client sets the clock, context propagates it (builds on Go L17).

ready

10 · Metadata: headers in & out

How the auth token & trace ride the call — the synchronous cousin of Kafka headers.

ready

Part 4 — Interceptors, middleware & auth available now

The middleware that reads the metadata, enforces the deadlines, and shapes the statuses of Part 3.

11 · Interceptors: unary & stream

What a gRPC interceptor is, the signatures, and the enrich-ctx-then-handler pattern.

ready

12 · The middleware chain

How interceptors chain and in what order — your real golibs stack.

ready

13 · Auth & RBAC

Authn from the JWT + authz via rbacDecider; the fake-JWT internal path.

ready

Part 5 — Architecture & production available now

Zoom out: when to use gRPC, how to balance & operate it, and how it reaches the outside world.

14 · gRPC vs REST

The full trade-off table and the decision rule (the interview classic).

ready

15 · Load balancing & discovery

Why HTTP/2 connection reuse breaks naive LB — and the two fixes.

ready

16 · Health, reflection & shutdown

Operating the server: health probes, why we skip reflection, graceful stop.

ready

17 · The gateway

HTTP/JSON transcoding — one proto serving both gRPC and REST (fronts gandalf).

ready

Part 6 — Senior gRPC backend engineering new

The senior stretch — compatibility, retries, streaming trade-offs, observability, and interview-grade answers.

18 · Proto evolution & compatibility

How to change a protobuf contract safely across clients, servers, and rollout windows.

new

19 · Retries, idempotency & safe RPC design

Why resilience features can create correctness bugs unless the RPC semantics are retry-safe.

new

20 · Streaming trade-offs & backpressure

When streaming is worth it — and what gets harder once a call stays open.

new

21 · Observability & debugging

The evidence-first workflow for explaining a slow or failing gRPC call.

new

22 · Gateway boundaries & public API design

Why internal gRPC and external REST can coexist cleanly in one system.

new

23 · Senior gRPC interview questions

High-signal production and design questions with the best answer shape for each.

new

24 · Mock senior gRPC interview pack

A retrieval-first mock round with scoring and strong answer points for every question.

new

Reference shelf

Cheat sheet

Dense revision sheet + interview one-liners.

Glossary

The canonical vocabulary, opinionated.

Repo gRPC map

Ground truth: our protos, server, interceptors, file:line.

Resources

grpc.io, protobuf.dev, buf, grpc-go, retries, compatibility, and gateway design.

Senior backend playbook

The compressed version of the new senior part: compatibility, retries, observability, and boundary design.

The course now has a senior extension — the original 17 lessons still build the foundation, and Part 6 now pushes into compatibility, retries, streaming trade-offs, observability, gateway boundaries, and interview-grade answers. If a lesson still feels dense, ask me and I can teach it with even smaller examples.