Golang path
Go Fundamentals (don’t skip — these form your mental model)¶
-
Basic syntax & types (
string,int,struct,map,slice) -
Pointers (important for working with structs and APIs)
-
Error handling (Go-style
if err != nilanderrors.New) -
Packages & modules (
go mod init,go get,go install) -
Structs & methods (you’ll use them constantly for API clients)
2. Concurrency & Parallelism (core skill for backups/cloud)¶
-
Goroutines (
go func() {}) -
Channels (unbuffered vs buffered)
-
Select statements (multiplexing I/O or signals)
-
sync.WaitGroup (coordinating multiple goroutines)
-
Context (
context.Contextfor timeouts/cancellation — critical for APIs & backups) -
Worker pools (spawning fixed goroutines to process tasks in parallel)
3. File & Data Handling (for backups and logs)¶
-
os package (
ReadFile,WriteFile,Open,Stat) -
bufio for efficient reading/writing
-
path/filepath for cross-platform paths
-
io.Reader / io.Writer interfaces (you’ll see them everywhere)
-
Streaming large files without loading into memory
4. Networking & APIs (where Go shines for cloud work)¶
-
net/http for GET/POST requests
-
Encoding & decoding JSON (
encoding/json) -
Handling API authentication (tokens, headers)
-
Third-party clients (e.g., AWS SDK for Go, Comet Backup SDK)
-
Rate limiting & retries (important for cloud APIs)
-
TLS & HTTPS basics (
crypto/tlsif you need custom cert handling)
5. Automation & CLI Tools (infra engineer must-have)¶
-
flag package for command-line arguments
-
cobra or urfave/cli for richer CLI apps
-
log and logrus for logging
-
Building config-driven tools (JSON, YAML, TOML configs)
-
Packaging into a single binary (
go buildfor multiple OS/arch)
6. Cloud & Infra Integration (specific to your field)¶
-
Interacting with REST APIs (e.g., Comet Backup API, AWS S3, Azure Blob)
-
Uploading/Downloading files in chunks (multipart)
-
Handling streaming responses
-
Working with message queues (SQS, RabbitMQ, Kafka — optional but useful)
-
Deploying Go binaries in Docker (multi-stage builds for tiny images)
7. Production-Ready Skills¶
-
Graceful shutdowns (catch SIGINT, close goroutines properly)
-
Configurable timeouts for all network calls
-
Health checks for long-running services
-
Logging with context (request IDs, timestamps)
-
Unit tests (
testingpackage, table-driven tests) -
Benchmarking (
go test -bench)