Skip to content

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 != nil and errors.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.Context for 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/tls if 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 build for 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 (testing package, table-driven tests)

  • Benchmarking (go test -bench)