MedUnes/go-kata
MedUnes/go-kata has 2,362 GitHub stars and 188 forks. GitHot measured +1 stars in 24 hours. Last checked 2026-11-06 22:33 UTC. Last push 2026-07-09.
A collection of daily coding challenges designed to help you master idiomatic Go through deliberate, repetitive practice.
Measured star growth
- in 24h
- +1
- in 7 days
- Collecting history
- in 15 days
- Collecting history
- in 1 month
- Collecting history
Net star changes over overlapping periods, not daily totals. Missing measurements are left blank. Stars measure attention, not software quality.
README.md
Original🥋 Go Katas 🥋
"I fear not the man who has practiced 10,000 kicks once, but I fear the man who has practiced one kick 10,000 times."
(Bruce Lee)
What should it be?
Go is simple to learn, but nuanced to master. The difference between "working code" and "idiomatic code" often lies in details such as safety, memory efficiency, and concurrency control.
This repository is a collection of Daily Katas: small, standalone coding challenges designed to drill specific Go patterns into your muscle memory.
What should it NOT be?
This is not intended to teach coding, nor to use Go as a general-purpose learning vehicle. It is not intended to teach Go in general.
The focus should be, as much as possible, on challenging oneself to solve common software engineering problems the Go way.
Several seasoned developers spend years learning and applying best practices in production-grade contexts. When they decide to switch to Go, they often face two challenges:
Is there a way to transfer knowledge so that I don’t have to throw away years of experience and start from zero?
If yes, which parts should I focus on to recognize mismatches and use them the expected way in the Go ecosystem?
How to Use This Repo
- Pick a Kata: Navigate to any
XX-kata-yyfolder. - Read the Challenge: Open the
README.mdinside that folder. It defines the goal, the constraints, and the "idiomatic patterns" you must use. - Solve It: Initialize a module inside the folder and write your solution.
- Reflect: Compare your solution with the provided "Reference Implementation" (if available) or the core patterns listed.
Contribution Guidelines
Please refer to the CONTRIBUTING file
Katas Index (Grouped)
01) Context, Cancellation, and Fail-Fast Concurrency
Real-world concurrency patterns that prevent leaks, enforce backpressure, and fail fast under cancellation.
- 01 - The Fail-Fast Data Aggregator
- 03 - Graceful Shutdown Server
- 05 - Context-Aware Error Propagator
- 07 - The Rate-Limited Fan-Out Client
- 09 - The Cache Stampede Shield (singleflight TTL)
- 10 - Worker Pool with Backpressure and errors.Join
- 14 - The Leak-Free Scheduler
- 17 - Context-Aware Channel Sender (No Leaked Producers)
02) Performance, Allocation, and Throughput
Drills focused on memory efficiency, allocation control, and high-throughput data paths.
- 02 - Concurrent Map with Sharded Locks
- 04 - Zero-Allocation JSON Parser
- 11 - NDJSON Stream Reader (Long Lines)
- 12 - sync.Pool Buffer Middleware
03) HTTP and Middleware Engineering
Idiomatic HTTP client/server patterns, middleware composition, and production hygiene.
04) Errors: Semantics, Wrapping, and Edge Cases
Modern Go error handling: retries, cleanup, wrapping, and infamous pitfalls.
- 08 - Retry Policy That Respects Context
- 19 - The Cleanup Chain (defer + LIFO + Error Preservation)
- 20 - The “nil != nil” Interface Trap (Typed nil Errors)
05) Filesystems, Packaging, and Deployment Ergonomics
Portable binaries, testable filesystem code, and dev/prod parity.
06) Testing and Quality Gates
Idiomatic Go testing: table-driven tests, parallelism, and fuzzing.
Explore related projects
codecrafters-io/build-your-own-x
Master programming by recreating your favorite technologies from scratch.
560,478 starspublic-apis/public-apis
A collective list of free APIs
496,785 starsmorluto/rea
Reverse engineer anything with agents, from app behavior down to native binaries.
438,437 starsopenclaw/openclaw
The AI that really does things. Any OS. Any Platform. The lobster way. 🦞
394,086 stars