finds.dev← search

// the find

techschool/simplebank

★ 6,491 · Go · MIT · updated Apr 2025

Backend master class: build a simple bank service in Go

A course companion repo that walks you through building a bank backend in Go — REST, gRPC, async workers, Kubernetes on AWS, the works. It's a teaching project first, a reference implementation second. If you're a Go developer who learns by doing a real app from scratch, this is unusually complete coverage of the full stack.

sqlc for type-safe SQL is a good choice that the course explains well, and the generated code in db/sqlc/ is clean to read. The token layer implements both JWT and PASETO side-by-side with a common interface, which makes the tradeoffs concrete rather than theoretical. The CI/CD pipeline (GitHub Actions → ECR → EKS) is end-to-end and actually deployed, not just yaml files that sound plausible. The course tracks real Go evolution — switching from lib/pq to pgx, upgrading JWT to v5, fixing the for-loop closure bug — so it doesn't go stale the way most tutorial repos do.

It's a course repo, not production code, so don't copy patterns wholesale: the transfer transaction deadlock handling (ordering by account ID) is correct but unexplained enough that you'll cargo-cult it. The frontend is a Vue stub — three components — enough to demo auth but nothing more, so the 'full-stack' claim is generous. Test coverage is thorough for the DB and gRPC layers but the async worker tests rely heavily on mocks, which is exactly the layer where real bugs hide. The AWS deployment section locks you into free-tier EKS which costs money the moment you forget to tear it down — lecture #73 exists because people got burned.

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →