Anton Zhiyanov
antonz.org
Anton Zhiyanov
@antonz.org
Open source maintainer at https://github.com/nalgeon. Author & educator at https://antonz.org
Pinned
Gist of Go: Concurrency is out!

Learn Go concurrency from the ground up with 50 auto-tested exercises and tons of interactive examples.

It's a full course + book in one.

antonz.org/go-concurrency
I've built playgrounds for C3, Hare, Odin, V, and Zig 🤓

You can try them online, embed them on your own website, or self-host and customize.

antonz.org/better-c
'Better C' playgrounds
Playgrounds for C3, Hare, Odin, V, and Zig.
antonz.org
December 27, 2025 at 10:19 AM
Over the years "go fix" became a sad, neglected bag of rewrites for very ancient Go features.

But it's coming back in Go 1.26!

Meet the new "go fix" — reimplemented from scratch, powered by a solid backend, and packed with modern code fixes!

antonz.org/accepted/mod...
Go feature: Modernized go fix
With a fresh set of analyzers and the same backend as go vet.
antonz.org
December 21, 2025 at 10:11 AM
The goroutine leak profile in the upcoming Go 1.26 is a big deal.

But the synctest package, available since 1.24, can also catch leaks just fine. I don't know why no one talks about this.

Anyway, it's time to cover both of them!

antonz.org/detecting-go...
Detecting goroutine leaks in modern Go
Explore different types of leaks and how to detect them with synctest and pprof.
antonz.org
December 18, 2025 at 2:55 PM
I've updated all code sandboxes (say hello to Python 3.14 and Java 25), and added more languages — Dart, Swift, Haskell and Prolog.

Handy for trying a new language online or embedding interactive snippets into your writing.

codapi.org#sandboxes
December 14, 2025 at 2:15 PM
Gist of Go: Concurrency is out!

Learn Go concurrency from the ground up with 50 auto-tested exercises and tons of interactive examples.

It's a full course + book in one.

antonz.org/go-concurrency
December 12, 2025 at 11:10 AM
I added an important part that was missing from the Go Accepted series: the contributors!

These are the people who design and implement the proposals, making it possible for us to enjoy new features and improvements in future Go versions 🫡

Send them some love :)

antonz.org/tags/accepted
December 11, 2025 at 2:03 PM
Accepted! Go 1.26 will include a SECRET package. Don't tell anyone about it 🤫

Just kidding. The package wipes the memory to keep secrets safe — hence the name.

antonz.org/accepted/run...
Go proposal: Secret mode
Automatically erase memory to prevent secret leaks.
antonz.org
December 9, 2025 at 10:31 AM
The new chapter of my Go Concurrency book covers the scheduler and its implementation details.

It's not meant to be a deep dive. But it's short, easy to understand, and will teach you more about goroutine scheduling than many other developers know.

antonz.org/go-concurren...
Gist of Go: Concurrency internals
CPU cores, threads, goroutines, and the scheduler.
antonz.org
December 5, 2025 at 10:28 AM
Accepted! Go 1.26 will introduce errors.AsType — a modern, type-safe alternative to the clunky errors.As.

No reflection. No runtime panics. Concise code. This is big!

antonz.org/accepted/err...
Go proposal: Type-safe error checking
errors.AsType is a modern alternative to errors.As.
antonz.org
December 2, 2025 at 10:07 AM
Accepted! Go 1.26 will introduce per-state goroutine metrics: running, waiting, in syscalls, etc.

Developers can use them to catch problems early without needing full traces.

antonz.org/accepted/gor...
Go proposal: Goroutine metrics
Export goroutine-related metrics from the Go runtime.
antonz.org
November 26, 2025 at 12:17 PM
synctest — the package introduced in Go 1.25 to make concurrency testing easier — looks deceptively simple. But don't let its innocent appearance fool you.

To really understand synctest, check out the new chapter of my interactive Go Concurrency book.

antonz.org/go-concurren...
Gist of Go: Concurrency testing
Checking concurrent operations and time-sensitive code.
antonz.org
November 24, 2025 at 2:04 PM
Accepted! Go 1.26 will introduce context-aware, network-specific methods to the net.Dialer type.

They combine the efficiency of the existing top-level dialing functions with the cancellation capabilities of Dialer.DialContext.

antonz.org/accepted/net...
Go proposal: Context-aware Dialer methods
Connect to TCP, UDP, IP, or Unix sockets, with an optional timeout.
antonz.org
November 13, 2025 at 11:41 AM
Fun fact: there is no standard way to compare or sort IP subnets up to Go 1.25.

When the Go team initially designed the IP subnet type (netip.Prefix), they chose not to add a Compare method.

Over time, they changed their minds.

antonz.org/accepted/net...
Go proposal: Compare IP subnets
The same way IANA and Python do.
antonz.org
October 20, 2025 at 9:13 AM
Reposted by Anton Zhiyanov
I enjoyed reading the first few chapters in antonz.org/go-concurren... so much that I ended up purchasing the eBook 😁 It's just $10 which is a small token of appreciation for all that @antonz.org gives to the #go community for free! Plus now I get to solve all the exercises in the book. 😋
Gist of Go: Concurrency
Interactive book on concurrent programming with many exercises.
antonz.org
October 15, 2025 at 2:34 AM
I ported the core parts of Go's time package to C.

The resulting library offers a rich set of functions, from working with Unix time to time comparison and arithmetic to truncation and rounding.

With nanosecond precision.

github.com/nalgeon/vaqt
GitHub - nalgeon/vaqt: High-precision date/time in C
High-precision date/time in C. Contribute to nalgeon/vaqt development by creating an account on GitHub.
github.com
October 15, 2025 at 11:12 AM
The new chapter of my interactive Go Concurrency book covers atomics.

They provide concurrent-safe operations without explicit synchronization, but there are several pitfalls to watch out for.

antonz.org/go-concurren...
Gist of Go: Atomics
Concurrent-safe operations without explicit synchronization.
antonz.org
September 30, 2025 at 12:13 PM
Accepted! Go 1.26 will introduce Hashers — a standard approach to hashing and equality checks in custom collections.

I've made a summary of the proposal, and even managed to squeeze in some interactive examples.

antonz.org/accepted/map...
Go proposal: Hashers
Consistent approach to hashing and equality checks in custom collections.
antonz.org
September 28, 2025 at 12:42 PM
You are a software engineer. Don't become a prompt refiner.

antonz.org/write-code
Write the damn code
You are a software engineer. Don't become a prompt refiner.
antonz.org
September 26, 2025 at 10:30 AM
I'm launching a new Go-related series named Accepted.

For each accepted proposal, I'll write a one-page summary that explains the change in simple terms.

This should (hopefully) be the easiest way to keep up with upcoming changes.

The first issue is already out!
September 24, 2025 at 12:21 PM
The only way to run tasks concurrently in Go is by using goroutines.

But what if we bypass the runtime and run tasks directly on OS threads or even processes?

Let's find out!

antonz.org/multi
Native threading and multiprocessing in Go
Exploring unconventional ways to handle concurrency.
antonz.org
September 22, 2025 at 6:02 PM
xxhash is the best non-cryptographic hash algorithm I know. It's really fast, high quality (rare collisions and strong avalanche effect), and comes in three flavors: 32, 64, and 128-bit.

So I figured now's a good time to add it to my SQLite extensions!

github.com/nalgeon/sqle...
September 1, 2025 at 10:09 AM
I've made a public changelog for my projects. 35 major updates over the past 5 years — I guess I'm building in public after all!

antonz.org/tags/projects
August 24, 2025 at 11:06 AM
WaitGroup.Go is a small change, but wait groups are so common in concurrent programming that switching from Add+Done to Go in my Go Concurrency book took me a while :)

Anyway, it's done now, so a lot of examples are easier to read!

antonz.org/go-concurrency
Gist of Go: Concurrency
Interactive book on concurrent programming with many exercises.
antonz.org
August 23, 2025 at 9:43 AM
Two new SQLite extensions by Walter Wanderley!

➀ HTTP requests
➁ MQTT publish/subscribe

sqlpkg.org?q=litesql
August 16, 2025 at 2:31 PM
Go 1.25 is out, and the announcement says:

"Over the next few weeks, follow-up blog posts will cover some of the topics in more detail. Check back in later."

So you can wait a few weeks OR you can read my interactive Go 1.25 tour right away:

antonz.org/go-1-25
Go 1.25 interactive tour
Fake clock, new GC, flight recorder and more.
antonz.org
August 13, 2025 at 9:52 AM