Best of GolangJanuary 2026

  1. 1
    Article
    Avatar of antonzAnton Zhiyanov·20w

    Go 1.26 interactive tour

    Go 1.26 introduces significant language and runtime improvements. Key features include `new(expr)` for creating pointers from expressions, type-safe error checking with `errors.AsType`, the Green Tea garbage collector for better memory efficiency on multi-core systems, faster cgo/syscalls and memory allocation, experimental SIMD operations, secret mode for cryptographic data protection, goroutine leak profiling, and numerous standard library enhancements including reflective iterators, buffer peeking, process handles, and improved metrics.

  2. 2
    Article
    Avatar of freecodecampfreeCodeCamp·18w

    Build Your Own Kubernetes Operators with Go and Kubebuilder

    A comprehensive 6-hour video course teaches how to build custom Kubernetes operators and controllers from scratch using Go and Kubebuilder. The course covers controller theory, Kubernetes extensibility, environment setup, API and logic building, hands-on development, and advanced internals including Informers, Caches, Finalizers, and Idempotency. A practical example demonstrates managing AWS EC2 instances directly from Kubernetes, treating Kubernetes as an SDK rather than just a deployment platform.

  3. 3
    Video
    Avatar of youtubeYouTube·17w

    Golang Full Course 2026

  4. 4
    Article
    Avatar of googleossGoogle Open Source Blog·17w

    A JSON schema package for Go

    Google released jsonschema-go, a comprehensive JSON Schema package for Go that provides schema creation, serialization, validation, and inference from Go types. The package addresses the growing need for JSON Schema in LLM infrastructure, where it serves as the standard for defining structured interactions with language models. It features a straightforward Schema struct, validation with resolution, and the ability to generate schemas from Go types using struct tags. The package is already used in Google's MCP Go SDK and aims to become the canonical JSON Schema solution for Google's Go SDKs working with LLMs.

  5. 5
    Article
    Avatar of arcjetArcjet·19w

    Arcjet's tech stack

    Arcjet's architecture combines WebAssembly modules written in Rust embedded in SDKs, a Go-based gRPC decision API for low-latency security decisions, and a region-aware data pipeline using AWS SNS, SQS, and ClickHouse. The stack includes TypeScript/Python SDKs, Valkey for rate limiting, DynamoDB for dynamic rules, and runs on AWS EKS with isolated regional deployments. Development uses devcontainers with Docker Compose and LocalStack for AWS emulation, while security is layered with automated scanning tools and dependency management.

  6. 6
    Video
    Avatar of johnhammondJohn Hammond·18w

    "I made an Evil MCP server" (and AI fell for it)

    A security researcher demonstrates critical vulnerabilities in the Model Context Protocol (MCP) by creating a malicious MCP server that successfully tricks AI models into leaking sensitive data and injecting security vulnerabilities into code. The demonstration shows how Gemini 3 Pro falls for prompt injection attacks through MCP tools, exfiltrating prompts, code, and secrets while actively hiding malicious code changes from users. The researcher argues MCP is fundamentally insecure because it allows arbitrary prompt injection with no reliable defense, whether running locally or remotely. Claude Opus showed better resistance by recognizing the malicious intent, but the overall MCP ecosystem remains vulnerable to data exfiltration and code execution attacks through compromised or malicious servers.

  7. 7
    Article
    Avatar of bitfieldconsultingBitfield Consulting·20w

    Racing with disaster: data races in Go — Bitfield Consulting

    Data races occur when multiple goroutines access the same variable and at least one access is a write, leading to non-deterministic behavior. Using a bookstore analogy, the article demonstrates how concurrent access to shared data can cause problems like double-selling inventory. It shows how to detect races using Go's race detector with the `-race` flag, which instruments code to identify conflicting reads and writes. The article walks through a practical example where two customer goroutines compete to buy the last copy of a book, demonstrating both the theoretical definition and practical consequences of data races.

  8. 8
    Article
    Avatar of hnHacker News·17w

    Losing 1½ Million Lines of Go

    Adding Unicode character property support to a pattern-matching library initially generated 775K lines of code (heading toward 1.5M), causing IDE crashes and slow startup times. The solution involved abandoning precomputed automata in favor of lazy computation with caching, improving regexp addition speed from 135/second to 4,330/second. The author reflects on whether GenAI tools like Claude could have accelerated the routine parsing and code generation tasks, acknowledging their utility for code while remaining skeptical of broader GenAI hype.

  9. 9
    Article
    Avatar of mitsuhikoArmin Ronacher·19w

    Porting MiniJinja to Go With an Agent

    An experienced developer successfully ported MiniJinja, a Rust-based Jinja2 template engine, to native Go using AI agents with minimal manual intervention. The process took about 45 minutes of active guidance and 10 hours of autonomous agent work, leveraging snapshot tests for validation and incremental porting (lexer → parser → runtime). The agent evolved from literal code translation to behavioral porting, making idiomatic Go decisions like using reflection and tree-walking interpretation. The experience highlights how AI agents are making cross-language ports feasible with less effort, shifting value from code to tests and documentation, while changing the social dynamics of open source porting.

  10. 10
    Article
    Avatar of freecodecampfreeCodeCamp·19w

    Unit Testing in Go - A Beginner's Guide

    Go's testing approach is deliberately minimal, using regular Go code and the standard library's testing package. Tests live in files ending with `_test.go`, with functions starting with `Test` that take `*testing.T`. The guide covers writing basic tests, running them with `go test`, using table-driven tests for multiple cases, handling error returns, and checking for panics. Key patterns include using `t.Errorf` for failures, `t.Run` for subtests, and organizing test cases in struct slices. Best practices emphasize clear naming, focused tests, explicit error checking, and frequent test runs.

  11. 11
    Article
    Avatar of infoqInfoQ·19w

    Microsoft Share Update on TypeScript 7

    TypeScript 7 (Project Corsa) features a complete compiler rewrite in Go, delivering up to 10x faster build times and reduced memory usage. The new native compiler, tsgo, leverages Go's performance for efficient parallel processing. Strict mode is now enabled by default, representing a breaking change that enhances type safety. The preview is available via npm. While developers celebrate the performance gains, some express concerns about migration paths for tools depending on the TypeScript compiler API. This move aligns TypeScript with other high-performance native tooling like esbuild and SWC.

  12. 12
    Article
    Avatar of filippoFilippo Valsorda·20w

    go.sum Is Not a Lockfile

    go.sum is not a lockfile but a local cache for the Go Checksum Database, mapping module versions to cryptographic hashes without affecting version resolution. go.mod serves as both manifest and lockfile in Go, listing all dependencies (direct and transitive) with exact versions since Go 1.17. Unlike other ecosystems with separate manifest and lockfile systems, Go's single go.mod file uses minimal version selection and semantic versioning to avoid diamond dependency conflicts and ensure consistent builds. The Go modules system is simpler and faster than alternatives, with package resolution happening imperceptibly.