This week
- Go's concurrency is one of the main reasons people like the language. You write go f(), send values through channels, and the runtime scheduler runs thousands of goroutines on just a few OS threads. It feels effortless.None of that machinery exists in C. Which made me wonder:...
- Over the past two years, I've published interactive tours for five Go releases, from 1.22 to 1.26.I know some of you have read them, and I've received a lot of kind words from you (even some core Go team members reached out) — thank you so much for that!Tour history: Go 1.22 •...
Two weeks ago
- Solod (So) is a system-level language with Go syntax, zero runtime, and a familiar standard library. It's designed for two main audiences:Go developers who want low-level control and zero-cost C interop without having to learn Zig or Odin.C developers who like Go's style.The...
2 months ago
- Solod (So) is a system-level language with Go syntax and zero runtime. It's designed for two main audiences:Go developers who want low-level control and zero-cost C interop, without having to learn a new language or standard library.C developers who like Go's style.The initial...
3 months ago
- When you start a new project, it feels nice that everything lives in a single main.go file. When things start to grow, you split things into multiple files. We will add tests later, right? Requirements change, someone joins the team, and in the meantime, you swapped SQLite for...
- April 2026 I’ve been having moderate success using an AI agent to help me fix non-trival bugs in GoAWK. But it’s sometimes very indecisive (Mitchell Hashimoto noted this in a tweet just the other day). I asked it the following question (I’m using Claude’s Opus 4.6 with the...
- Creating a subset of Go that translates to C was never my end goal. I liked writing C code with Go, but without the standard library it felt pretty limited. So, the next logical step was to port Go's stdlib to C.Of course, this isn't something I could do all at once. I started...
4 months ago
- What a month! After losing a job at the end of January, I started looking for a new one straight away. Seeking a new job nowadays is very different from how it used to be. Very long, multi-step and mentally draining processes are the new norm. The recent explosion of AI tools...
- Creating a subset of Go that translates to C was never my end goal. I liked writing C code with Go, but without the standard library it felt pretty limited. So, the next logical step was to port Go's stdlib to C.Of course, this isn't something I could do all at once. So I...
- I'm working on a new programming language named Solod (So). It's a strict subset of Go that translates to C, without hidden memory allocations and with source-level interop.Highlights:Go in, C out. You write regular Go code and get readable C11 as output.Zero runtime. No garbage...
5 months ago
- How many millions of times have you seen this pattern in Go where a variable is pre-created just to make a pointer to it down the line? There is a high chance your codebase includes a utility to do that. // Something like this a := 123 aPtr := &a // Or like this func Pointer[T...
- I’ve been exploring Go for building small, fast and self-contained binary applications recently. I’m enjoying how there’s generally one obvious way to do things and the resulting code is boring …
6 months ago
- Go has several ways of sending requests, including some convenient methods such as:http.Get()http.Head()http.Post()http.PostForm()However, these don’t let you add headers to requests! If you need customization of the HTTP method or headers, you need to use...
- Basic Usage of time.Sleep()You can use time.Sleep() to pause your program for a predetermined amount of time, similar to most programming languages.First, you should know that the time package has useful constants that allow you to conveniently specify time in units.1 2 3 4 5 6...
- Everyone likes interfaces in Go and traits in Rust. Polymorphism without class-based hierarchies or inheritance seems to be the sweet spot. What if we try to implement this in C?Interfaces in Go • Traits in Rust • Toy example • Interface definition • Interface data • Method...
- Go 1.26 is coming out in February, so it's a good time to explore what's new. The official release notes are pretty dry, so I prepared an interactive version with lots of examples showing what has changed and what the new behavior is.Read on and see!new(expr) • Type-safe error...
7 months ago
- Building a fair, cancelable semaphore in Go and the subtle concurrency issues involved....
- With a fresh set of analyzers and the same backend as go vet....
- Explore different types of leaks and how to detect them in modern Go versions....
- Compiling and running 'Hello, World!' in 20 programming languages....
- Discusses some design choices used in Jubilant: Python subprocess.run to wrap a CLI tool, a code generator to convert Go structs to Python dataclasses, and the use of uv with a simple Makefile to run commands....
- Interactive book on concurrent programming with auto-tested exercises....
- Automatically erase memory to prevent secret leaks....
- CPU cores, threads, goroutines, and the scheduler....
Rows per page