skip to content
Sandip's Blog
Table of Contents

Level 1: Consolidation

  1. CLI todo app: file storage (JSON), subcommands, tests
  2. Word frequency counter: concurrent file reading
  3. URL shortener: HTTP + in-memory map, then add a DB

Level 2: Intermediate

  1. Concurrent web crawler: worker pool, context, depth and rate limit
  2. REST API with Postgres: users, auth (JWT), CRUD, sqlc, migrations, tests
  3. Chat server: WebSockets, rooms, broadcast with goroutines/channels
  4. Rate limiter library: token bucket and sliding window, generic, benchmarked

Level 3: Advanced

  1. In-memory key-value store (mini Redis): TCP server, RESP protocol, TTLs, persistence
  2. Job queue / task scheduler: workers, retries, backoff, persistence
  3. Load balancer / reverse proxy: round-robin, health checks, httputil.ReverseProxy
  4. Distributed key-value store: Raft (see Hashicorp raft or MIT 6.5840 labs)

Level 4: Mastery

  1. Write your own interpreter: Writing an Interpreter in Go by Thorsten Ball
  2. Contribute to open source: start with good first issue in Go projects (Hugo, Cobra, Caddy, Gitea, Prometheus, etc.)
  3. Publish a library with docs, tests, semver tags, and CI

Visual: progression

flowchart LR
  L1["Level 1<br/>CLI, counter, shortener"] --> L2["Level 2<br/>crawler, REST API, chat"]
  L2 --> L3["Level 3<br/>mini Redis, queue, proxy"]
  L3 --> L4["Level 4<br/>interpreter, open source"]

Portfolio rules

  • Every project: README, tests, CI, go vet clean, -race clean
  • Write at least one benchmark and one fuzz test
  • Document design decisions

Previous: Go Mastery 6: Backend and Production Go
Next: Go Mastery 8: Resources and Final Checklist

Back to the roadmap