golang-pro

Implements Go 1.21+ services with concurrency patterns, profiling, and production deployment guidance.

Updated Apr 5, 2026
One-click install
npx skills add https://github.com/RobinMillford/GopherNotebook --skill golang-pro-robinmillford
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: golang-pro
Source: https://github.com/RobinMillford/GopherNotebook/tree/main/.claude/skills/golang-pro
Command: npx skills add https://github.com/RobinMillford/GopherNotebook --skill golang-pro-robinmillford

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Building scalable, high-performance Go applications requires deep knowledge of concurrency, profiling, and modern tooling that many developers lack, leading to race conditions, memory leaks, and fragile microservices. ## Core Features & Use Cases - Concurrency Design: Implements goroutine lifecycle management, worker pools, fan-in/fan-out pipelines, and graceful shutdown with context cancellation. - Performance Optimization: Profiles CPU and memory with pprof and go tool trace, tunes garbage collection, and applies benchmark-driven optimization. - Production Architecture: Designs gRPC and REST services with observability (OpenTelemetry, Prometheus, slog), Docker multi-stage builds, and Kubernetes deployment patterns. - Use Case: Ask it to design a high-throughput worker pool with backpressure handling and graceful shutdown, and receive idiomatic Go code with table-driven tests and race-condition-safe synchronization. ## Quick Start Ask the assistant to design a concurrent Go microservice with proper error handling, tests, and observability for your use case.

Frequently Asked Questions about golang-pro

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I design a worker pool in Go with graceful shutdown?

Use a fixed set of goroutines reading jobs from a channel, combined with context cancellation to signal shutdown and sync.WaitGroup to wait for in-flight work. Close the job channel after cancellation and drain results before exiting.

How to find and fix race conditions in Go code?

Run tests and binaries with the -race flag to enable the race detector, which reports conflicting memory accesses. Fix them using mutexes, channels, or atomic operations, and verify with repeated test runs under load.

What is the best way to profile Go application performance?

Use the built-in pprof package to capture CPU and memory profiles, then analyze them with go tool pprof. For execution tracing of goroutines and blocking, use go tool trace alongside benchmark tests.

Should I use gRPC or REST for Go microservices?

gRPC with protocol buffers suits high-throughput internal service communication with strong typing and streaming. REST with net/http, gin, or fiber is simpler for public APIs and browser clients.

When should I not use goroutines in Go?

Avoid goroutines for trivially sequential tasks or when unbounded concurrency would exhaust memory and connections. Use worker pools or semaphores to bound concurrency, and prefer synchronous code when ordering and simplicity matter.