Back to courses

Go for Backend and CLI Development

Learn Go by building a real command-line tool and a production-ready API, step by step.

Offered by Tarkev
7 Modules26 Lessons16 weeks
Go for Backend and CLI Development

Course overview

Most Go courses teach the language first and leave the real work for later. This course does the opposite. From the first week, you build working software, and you learn each part of Go when your project needs it.

You build one project through the whole course: Tasker, a task manager.

Part 1: Go through a command-line tool (Weeks 1–6) You start with a small program and grow it into a complete command-line tool. You learn types, structs, slices, maps, errors, pointers, interfaces, and packages by using them. You save data to JSON files, build commands and flags with Cobra, add structured logging with zap, and write tests. You finish this part by using goroutines and channels, then you release your tool as a binary that others can download.

Part 2: Backend API (Weeks 7–14) You turn Tasker into a web service. You start with Go's standard net/http package to understand the basics, then build the API with Fiber. You organize the service into clear layers, store data in Postgres, manage the database schema with migrations, and generate type-safe queries with sqlc. You validate input, return consistent errors, and add authentication with JWT. You test the service with real databases using testcontainers. Then you add the patterns that production systems need: pagination, timeouts, background workers, rate limiting, metrics, and tracing.

Part 3: Ship it (Weeks 15–16) You package the full system with Docker and Docker Compose and set up continuous integration with GitHub Actions. In the final project, your command-line tool becomes a client of your own API.

Who this course is for

  • Beginners who want their first programming language to be practical and in demand
  • Developers who know another language, such as Python, Java, JavaScript, or PHP, and want to build backend services and tools in Go

If you already program, you can move quickly through the first weeks. If you are new to programming, every lesson explains each step in plain language.

What you will be able to do

  • Write clear, idiomatic Go code
  • Build and release command-line tools with Cobra
  • Design and build REST APIs with Fiber and Postgres
  • Write unit and integration tests, including tests that use real databases
  • Use concurrency safely with goroutines, channels, and context
  • Add logging, metrics, and tracing to a service
  • Package and deploy services with Docker and CI pipelines

Tools and libraries you will use Go, Cobra, Viper, zap, Fiber, Postgres, pgx, sqlc, goose, testify, testcontainers-go, Docker, GoReleaser, golangci-lint, Prometheus, OpenTelemetry, and GitHub Actions. These are stable tools that many companies use in production today.

How the course works The course is self-paced and takes about 16 weeks, with 3 to 4 lessons each week. Each lesson has a clear goal, a step-by-step build, an explanation of the Go concepts behind it, exercises, and a checkpoint. When you finish, you have a complete, tested, deployable project that you can show to employers.

Course content

Course curriculum

Explore the modules and lessons included in this course.

7Modules26Lessons