In the projects, in which I work, it comes up that I am asked what I recommend for xyz. So that I don't forget half of the information, I'll started to collect it thematically and in a more or less structured way and publish it here. Here my hopefully helpful resources for the Go language.
- research!rsc Thoughts and links about programming, by Russ Cox
- Bitfield Consulting friendly, professional go mentoring
- Boldly Go
- Eli Bendersky's website / Golang tools
- Three Dots Labs
- Go 101 Blog
- The Go Blog
- Redowan's Reflections
- Over-Engineered
- Practical Go A collection of real world advice for writing maintainable Go programs.
- willem.dev
- Sameer Ajmani
- Noam Yadgar
- Go Weekly: https://golangweekly.com/issues/
- Golang Weekly @Medium: https://golang.thisweekin.io/
- Golang Nugget: https://golangnugget.com/
- The applied Go weekly newsletter: https://newsletter.appliedgo.net/archive
- my recommend books on golang can be found here
- The Zen of Go
- Go Proverbs
- Coroutines for Go
- A Guide to the Go Garbage Collector
- Getting to Go: The Journey of Go's Garbage Collector
- Writing and Optimizing Go code
- Implementing WebSocket Protocol in Go
- Common pitfalls in Go benchmarking
- Avelinos awesome-go: A curated list of awesome Go frameworks, libraries and software
- Rob Muhlesteins awesome-go
- Quick tip: A time-saving Makefile for your Go projects
- 🌶️ Picnic-TUI - Where Go and Groceries Create a Command-Line Feast
- Use Abstraction to Improve Function Readability
- Disagreeing with "best practices"
- Linear code is more readable ➡️ There is always the danger that with time compact functions become real "monsters" that are hard to read or understand. one of my last experiences was a function where the indented code was only visible, without scrolling, on the last 20% of the monitor (49" Samsung CRG 9) on the right side. Not my code, should help to debug, will we need a 49" monitor for debugging or two of them side by side in future? A healthy balance would suit us all.
- Go Code Review Comments This page collects common comments made during reviews of Go code, so that a single detailed explanation can be referred to by shorthands. This is a laundry list of common style issues, not a comprehensive style guide.
- A curated list of awesome Machine Learning frameworks, libraries and software.: https://github.com/josephmisiti/awesome-machine-learning?tab=readme-ov-file#go
- Go Forum: https://forum.golangbridge.org/
Go Forum: https://godev.com/2025-03-18: no longer accessible- r/golang: https://www.reddit.com/r/golang/
- golang-nuts: https://groups.google.com/g/golang-nuts
- golang-dev: https://groups.google.com/g/golang-dev
- Go vs. Python: an introduction to Go for senior (Python) developers
- Learning Go as a Python Developer: The Good and The Bad
- Go for Python Programmers
- Go Style
- golang-standards
- Tools for Go projects
- How to start a Go project in 2023
- Go gotchas, surprises, puzzles
- Do you make these Go coding mistakes?
- golangci-lint, fast linters Runner for Go
- 🌶️ JSON-to-Go, convert JSON to Go struct
- When is it OK to panic in Go?: https://www.alexedwards.net/blog/when-is-it-ok-to-panic-in-go
- On the uses and misuses of panics in Go: https://eli.thegreenplace.net/2018/on-the-uses-and-misuses-of-panics-in-go/
- Hands on exercises with real-life examples to study and practice Go concurrency patterns. Test-cases are provided to verify your answers.
- Google I/O 2013 - Advanced Go Concurrency Patterns
- Mastering Concurrency: Unveiling the Magic of Go's Scheduler
- A powerful little TUI framework
- 🌶️ Charm libs Everything you need to build great stuff for the terminal.
- Terminal UI library with rich, interactive widgets — written in Golang
- Struct-based argument parsing in Go
- A simple, fast, and fun package for building command line apps in Go
- A Commander for modern Go CLI interactions
- 🌶️ Kong is a command-line parser for Go
- Simple, extremely lightweight, extensible, configuration management library for Go Support for JSON, TOML, YAML, env, command line, file, S3 etc. Alternative to viper.
- The simplest config loader for Go that reads/watches from file, env, flag and clouds (AWS, Azure, GCP)
- Config file validator: Cross Platform tool to validate configuration files:
https://github.com/Boeing/config-file-validator - go-flags: go command line option parser
https://github.com/jessevdk/go-flags - go-arg: Struct-based argument parsing in Go
https://github.com/alexflint/go-arg
- Cup o' Go Stay up to date with the Go community in just 15 minutes per week.
- Ardan Labs Podcast This podcast features intimate conversations with engineers who are in the forefront of building or teaching technology.
- go podcast()
- Go Time
- Build desktop applications using Go & Web Technologies.
- bubbletea, A powerful little TUI framework
- gocui - Minimalist Go package aimed at creating Console User Interfaces.
- React-like desktop GUI toolkit for Go: https://github.com/roblillack/spot/
- Cogent Core - A free and open source framework for building powerful, fast, elegant 2D and 3D apps that run on macOS, Windows, Linux, iOS, Android, and the web with a single Go codebase, allowing you to Code Once, Run Everywhere.: https://github.com/cogentcore/core
- nucular: https://github.com/aarzilli/nucular
- Trending Go Projects
- grank.dev tries to help to choose the right dependencies for your next golang project.
- Go packages
- A curated list of awesome Go frameworks, libraries and software
- Awesome-go list with stars. Automatically updated.
- Top Go Libraries 2025: https://libs.tech/go
- goreleaser - Deliver Go binaries as fast and easily as possible: https://github.com/goreleaser/goreleaser
- The ultimate justfile for any golang project: https://github.com/crazywolf132/ultimate-gojust
- What do you use as build system?: https://www.reddit.com/r/golang/comments/196cowu/what_do_you_use_as_build_system/
- task/taskfile - task runner/simpler Make alternative written in Go: https://github.com/go-task/task
- just - a command runner: https://github.com/casey/just
Based on a question from my team mate who is used to Pythons line_profiler (%lprun) and memory_profiler (%mprun).
- The Busy Developer's Guide to Go Profiling, Tracing and Observability
- Debugging Go Code: Using pprof and trace to Diagnose and Fix Performance Issues
- Profiling Go Programs
- Profiling Go programs with pprof
- How I investigated memory leaks in Go using pprof on a large codebase
- Go pprof – How to Understand Where There is Memory Retention
- 🌶️ felixge's notes on the various go profiling methods that are available.
- Package collectors provides implementations of prometheus.Collector to conveniently collect process and Go-related metrics.
- Parca is a continuous profiling project.
- Grafana Phlare lets you aggregate continuous profiling data with high availability, multi-tenancy, and durable storage.
- Package trace contains facilities for programs to generate traces for the Go execution tracer.
- 🌶️ Go by Example: Testing and Benchmarking
- Profiling and Optimising Go Code
- Tips to debug hanging Go programs: https://michael.stapelberg.ch/posts/2025-02-27-debug-hanging-go-programs/
- Unlocking Hidden Performance Bottlenecks in Golang using GoFr: The Underrated Power of pprof: https://dev.to/aryanmehrotra/unlocking-hidden-performance-bottlenecks-in-golang-using-gofr-the-underrated-power-of-pprof-2dc7
- Patterns and Techniques for Writing High-Performance Applications with Go: https://goperf.dev/
-
my recommend books on golang can be found here
-
Practice Go: a collection of Go programming challenges: https://github.com/plutov/practice-go
-
GoLab is a collection of simple Go projects designed to help learn and explore the Go programming language.: https://github.com/MuhammadSaim/go-lab
-
Five Go Projects: https://github.com/dreamsofcode-io/goprojects Not only five ideas to start with also includes code!
-
Go go-to guide: https://yourbasic.org/golang/ by Stefan Nilsson
-
Golang tutorial series: https://golangbot.com/learn-golang-series/ by Naveen Ramanathan
-
Practical Go: Real world advice for writing maintainable Go programs:
https://dave.cheney.net/practical-go/presentations/gophercon-singapore-2019.html -
Concurrency vs. Parallelism:
https://www.thecoder.cafe/p/concurrency-is-not-parallelism -
🌶️ Algorithms and Data Structures implemented in Go for beginners, following best practices.
-
govulncheck Govulncheck reports known vulnerabilities that affect Go code.
-
Structured, pluggable logging for Go. ➡️ Go 1.21 will offer the new slog package
-
On Udemy I can recommend the golang courses from Trevor Sawler
-
📺 Golang UK Conference 2017 | Achilleas Anagnostopoulos - Can you write an OS Kernel in Go?
-
go_assessment, a port of Rebecca Murphey's js-assessment for Go. This is a tool for assessing or practicing beginner level programming in Golang.
-
Visualize Go slices and arrays Explore the connection between slices and arrays by generating diagrams from Go code.
-
📝 go-form Render forms in go based on struct layout
-
Official Golang Frequently Asked Questions (FAQ): https://go.dev/doc/faq
-
r/golang FAQ: https://www.reddit.com/r/golang/wiki/r_golang_faqs/
-
Code to Read When Learning Go
https://www.somethingsimilar.com/2013/12/26/code-to-read-when-learning-go/
- An overview of Go syntax and features.
- cheat sheet GO PDF
- Go Programming (Golang) Cheat Sheet
- Go cheatsheet
- ♨️ Stream: Go 10 Week Backend Eng Onboarding
- Companies using Go
- Roadmap: Go Developer
- Roadmap: Backend Developer
- Roadmap: DevOps Roadmap
- Roadmap: System Design
- Find your remote work here ➡️ it's backend on github Collection of remote job opportunities from around the world.
- Remote Jobs
- Remote Software Engineering Jobs
- echojobs
- German tech jobs
- Go / Golang Jobs & developers
- Golang Jobs - OnSite and Remote Golang Jobs: https://golangjob.xyz/
- A curated list of awesome remote jobs and resources. Inspired by: https://github.com/lukasz-madon/awesome-remote-job
- Working Nomads: https://www.workingnomads.com/jobs?tag=golang
- Remote OK: https://remoteok.com/remote-golang-jobs
- We Work Remotely: https://weworkremotely.com/remote-jobs/search?term=golang
- foundit.in (mostly India): https://www.foundit.in/srp/results?query=golang
- gojobs: https://gojobs.run/
- Jobs for developers: https://jobsfordevelopers.com/golang-jobs
Starting projects to learn from source and to get ideas what to build to learn and improve your skills.
- ♨️ Generate invoices from the command line
- ♨️ Simple command-line snippet manager, written in Go.
- ♨️ A small ecomerce site for buying books
- Browsers Extensions Finder (BEXfinder) is a portable and cross-platform (Windows, Linux and MacOS) command-line tool to find out all web browsers (Google Chrome, Microsoft Edge, Brave Browser, Mozilla FireFox, Opera, etc.) extensions installed on system.
- Command line tool written in Go. It allows developers to scan their local Git repositories and generate a visual contributions graph.
- CLI for interacting with the recreation.gov API
- Repositories in Golang by Mitchell Hashimoto
- Storing IP addresses for quick CLI access
- A practical event-driven microservices demo built with Golang. Nomad, Consul Connect, Vault, and Terraform for deployment
- What are your favourite, opensource golang projects from a code quality perspective
- Live collaboration tool built with Go backend and Next.js, Typescript, & Tailwind frontend
- htmx-hackernews Hackernews made with htmx and Go
- gotes-mx This is a teeny tiny template repo for my own personal use. This setup meant for a fullstack Go project with templating support with HTMX.
- cli generator for .ignore files
- Go-based web crawler for data extraction
- Simple CLI tool for working with Gitlab issues
- Telegram bot
- Language Server (LSP) für die Deutsche Programmiersprache
- YouTube description and information downloader.
- A TUI app for finding anime scenes by image.
- clipboard for golang
- Making it easy to write shell-like scripts in Go
- Self-hosted file converter server
- A CLI tool for displaying data related to the English Premier League.
- Airbnb scraper made in Go
- Amazon crawler made in Go
- A commands bookmark for terminal
- Bookmarking CLI tool with automatic sync
- minesweeper cli
- Terminal dictionary for English Learners
- Go programs for interacting with Mastodon
- A reddit multimedia downloader
- Reddit Top Posts Scraper
- A CLI based daily timer
- HTTP status codes on speed dial
- graft is a tool to find and transfer files written in go
- This command-line application generates random words based on user preferences and allows you to save them to a file.
- ♨️ A highly customisable CLI tool for writing conventional commits
- Spotify TUI player, written in Go
- Create GIFs on the fly with ffmpeg
- A CLI tool for importing and utilizing exported social media data from popular services on Hugo websites.
- A distributed, fault-tolerant task queue: https://github.com/hatchet-dev/hatchet
- ClickUp is a Go-based CLI tool that fetches and organizes tasks from ClickUp using their API: https://github.com/halabito8/clickup-tasks/tree/master
- boring: The
boring
SSH tunnel manager: https://github.com/alebeck/boring - An persistent relational database built in Go.: https://github.com/Sahilb315/AtomixDB
- A modern command-line interface for TickTick task management: https://github.com/sho0pi/tickli
- Visualize your local Git contributions with Go: https://flaviocopes.com/go-git-contributions/
- Build a Command Line app with Go: lolcat: https://flaviocopes.com/go-tutorial-lolcat/
- Building a CLI command with Go: cowsay: https://flaviocopes.com/go-tutorial-cowsay/
- Go CLI tutorial: fortune clone: https://flaviocopes.com/go-tutorial-fortune/
- Use Go to get a list of repositories from GitHub: https://flaviocopes.com/go-github-api/
- Command line weather app written in Go: https://github.com/josephburgess/gust
- cz is a command-line tool for creating consistent, semantic commit messages with an interactive and user-friendly interface.: https://github.com/rockingrohit9639/cz
- A CLI tool written in Go that allows you to view data about Pokémon from the terminal.: https://github.com/digitalghost-dev/poke-cli
- A no-frills time tracking toolkit for command line nerds: https://github.com/dhth/hours
- GoTOTP is a Simple Time-Based One-Time Password (TOTP) Library: https://github.com/MrTuNNe/GoTOTP
- Cemetery Escape is a game that you can play in your terminal: https://github.com/tom-on-the-internet/cemetery-escape
- Clone of the MicroProse game, Master of Magic: https://github.com/kazzmir/master-of-magic
- A simple shooting game using ebitengine and golang: https://github.com/yohamta/godanmaku
- top down panzer game written in golang and ebiten: https://github.com/brotherhood-of-recursive-descent/tankism
- Roguelite game made with Go and Raylib - Demo & Game is available on Steam: https://github.com/unklnik/mr_snuggles_dungeon_adventure
- To find open source projects to contribute to check good first issue
- Explore open source projects and jump in!
- Community-Powered, Connecting you with Open-Source
- Go Class by Matt KØDVB
- Go Programming – Golang Course with Bonus Projects by Freecodecamp
- Learn Go Programming - Golang Tutorial for Beginners by Freecodecamp
- Learn Go Programming by Building 11 Projects – Full Course by Freecodecamp
- GPN18 - Go für Programmierer
- Advanced Golang
- Golang By Example For Beginners
- 10x Golang Engineer
- Go (Golang): Eine Einführung in 130 Minuten // deutsch: https://www.youtube.com/watch?v=eqSjKOPt7dg
- Golang Tutorial for Beginners | Full Go Course: https://www.youtube.com/watch?v=yyUHQIec83I
- Learn GO Fast: Full Tutorial: https://www.youtube.com/watch?v=8uiZC0l4Ajw
- Full Golang Tutorial - Learn Go by Building a TodoList App: https://www.youtube.com/watch?v=XCZWyN9ZbEQ
- Go for Absolute Beginners – Tutorial: https://www.youtube.com/watch?v=akosxcqJorU
- Go Programming Tutorial – 3 Beginner Projects: https://www.youtube.com/watch?v=k_V5VvYSlS4
Some resources to find recorded talks from GopherCon Conferences:
- https://www.youtube.com/@NicJackson/videos
- https://www.youtube.com/@MarioCarrion
- https://www.youtube.com/@nicolasparada
- https://www.youtube.com/@ChamiViews
- https://www.youtube.com/@anthonygg_
https://www.youtube.com/@NerdCademyDev/featuredno longer active- https://www.youtube.com/@bmdavis419
- https://www.youtube.com/@ThomasLanghorst
- https://www.youtube.com/@MelkeyDev
- https://www.youtube.com/@codeheim
- https://www.youtube.com/@TiagoTaquelim/
- https://www.youtube.com/@joshrosso/ (seems inactive, but anyways interesting)
- https://www.youtube.com/@programmingpercy/
- https://www.youtube.com/@AkhilSharmaTech/
- https://www.youtube.com/@DonaldFeury/ (dated, but interesting)
- https://www.youtube.com/@samxsmith9102/
- https://www.youtube.com/@samvcodes
- https://www.youtube.com/@rwxrob/
- https://www.youtube.com/@JustForFunc/ (dated, but still interesting)
- https://www.youtube.com/@TsodingDaily/search?query=golang
- https://www.youtube.com/@mr_mux408/search?query=golang
- https://www.youtube.com/@FloWoelki/search?query=golang
- https://www.youtube.com/@kantancoding/videos (not about golang, but interesting for coding in general)
- https://www.youtube.com/@softwarechats9307/videos (short videos with ideas to think about)
- https://www.youtube.com/@NetNinja/search?query=golang
- https://www.youtube.com/@BekBrace/
- https://www.youtube.com/@bastisprogrammingcorner/
- https://www.youtube.com/@codingwithsphere/
- https://www.youtube.com/@packagemain/
- bluemonday: a fast golang HTML sanitizer (inspired by the OWASP Java HTML Sanitizer) to scrub user generated content of XSS
- How I write HTTP services after eight years.
- go-app: A package to build progressive web apps with Go programming language and WebAssembly.
- chi - lightweight, idiomatic and composable router for building Go HTTP services
Drop by and learn!
- https://github.com/Jeffail
- https://github.com/TotallyGamerJet
- https://github.com/aarzilli
- https://github.com/alecthomas/
- https://github.com/benbjohnson
- https://github.com/bradfitz
- https://github.com/chewxy
- https://github.com/fogleman
- https://github.com/jackc
- https://github.com/kelseyhightower
- https://github.com/klauspost
- https://github.com/lesismal
- https://github.com/mattn
- https://github.com/mr-karan
- https://github.com/nalgeon
- https://github.com/robpike
- https://github.com/rs
- https://github.com/rsc
-
📝 age: A simple, modern and secure encryption tool (and Go library) with small explicit keys, no config options, and UNIX-style composability.
https://github.com/FiloSottile/age -
mage: a Make/rake-like dev tool using Go
https://github.com/magefile/mage -
📝 go-winres: Command line tool for adding Windows resources to executable files
https://github.com/tc-hib/go-winres -
go-sqlite-bench: Benchmarks for Golang SQLite Drivers
https://github.com/cvilsmeier/go-sqlite-bench -
go-fswatch: Go bindings for libfswatch
https://github.com/dunglas/go-fswatch -
Copier: for golang, copy value from struct to struct and more
https://github.com/jinzhu/copier -
lo: Iterate over slices, maps, channels...
https://github.com/samber/lo?tab=readme-ov-file -
dblab: The database client every command line junkie deserves.
https://github.com/danvergara/dblab -
anyquery: Query anything (JSON, CSV, GitHub, Notion, Airtable, etc.) with SQL
https://github.com/julien040/anyquery -
formulosity: Self-hosted Surveys as Code platform.
https://github.com/plutov/formulosity -
📝 gocron: Easy and fluent Go cron scheduling.
https://github.com/go-co-op/gocron -
prs: Stay updated on PRs from your terminal
https://github.com/dhth/prs -
📝 sqlc: Generate type-safe code from SQL
https://github.com/sqlc-dev/sqlc -
conc: Better structured concurrency for go
https://github.com/sourcegraph/conc -
testify: A toolkit with common assertions and mocks that plays nicely with the standard library
https://github.com/stretchr/testify -
color: Color package for Go (golang)
https://github.com/fatih/color -
tb.go: Tasks, boards & notes for the command-line habitat
https://github.com/araaha/tb.go -
gofumpt: A stricter gofmt
https://github.com/mvdan/gofumpt -
modfmt: Tidy up your go.mod files by merging the require blocks
https://github.com/abhijit-hota/modfmt -
koanf: Simple, extremely lightweight, extensible, configuration management library for Go. Support for JSON, TOML, YAML, env, command line, file, S3 etc. Alternative to viper.
https://github.com/knadh/koanf -
📝 Kong is a command-line parser for Go
https://github.com/alecthomas/kong -
env: A simple, zero-dependencies library to parse environment variables into structs
https://github.com/caarlos0/env -
cleanenv: Clean and minimalistic environment configuration reader for Golang
https://github.com/ilyakaznacheev/cleanenv -
konf: The simplest config loader for Go that reads/watches from file, env, flag and clouds (AWS, Azure, GCP).
https://github.com/nil-go/konf -
📝 bubbletea: A powerful little TUI framework
https://github.com/charmbracelet/bubbletea -
📝 rod: A Chrome DevTools Protocol driver for web automation and scraping.
https://github.com/go-rod/rod -
📝 goawk: A POSIX-compliant AWK interpreter written in Go, with CSV support
https://github.com/benhoyt/goawk -
📝 miller: is like awk, sed, cut, join, and sort for name-indexed data such as CSV, TSV, and tabular JSON
https://github.com/johnkerl/miller
-
pulse: Like a fitness tracker for your coding sessions
https://github.com/creativecreature/pulse -
revive: ~6x faster, stricter, configurable, extensible, and beautiful drop-in replacement for golint
https://github.com/mgechev/revive -
pipet: Swiss-army tool for scraping and extracting data from online assets, made for hackers
https://github.com/bjesus/pipet
If you find this notes helpful and want to support me, you can do so by Buy me a coffee! ☕ it will keep my motivation high and I will be really thankful.