The Integrity Data Platform team at Grab rewrote a QPS-heavy Golang microservice in Rust, achieving 70% infrastructure savings while maintaining similar performance. This initiative explored the ROI of adopting Rust for production services, balancing efficiency gains against challenges like Rust’s steep learning curve and the risks of rewriting legacy systems. The blog delves into the selection process, approach, pitfalls, and the ultimate business value of the rewrite.
Timeout Middleware in Go: Simple in Theory, Complex in Practice - Viktor Nikolaiev's blog
What happens when we need different timeout durations for different endpoints? While implementing timeouts might seem straightforward at first glance, the most obvious solution fails silently, frustraiting both users and developers.
So, I Wrote a Book: The Story Behind 100 Go Mistakes
An brutally honest behind-the-scenes story of writing a technical book from scratch. From burnout to unexpected wins, here's everything I learned while writing 100 Go Mistakes.
The Top 10 Most Common Mistakes I’ve Seen in Go Projects
This post is my top list of the most common mistakes I’ve seen in Go projects. The order does not matter. Now, let’s imagine this Status type is part of a JSON request and will be…
Most People Overlook Go’s Concurrency Secrets | by Aryan | Mar, 2025 | Cubed
Concurrency is HARD. Like, really hard. When you need multiple tasks running together, things get messy fast. I’ve spent years fighting with threads and locks in other languages, and man, the race…
Hunting Zombie Processes in Go and Docker - Stormkit
A technical deep dive into debugging zombie processes in a Go and Docker setup, detailing how I fixed a server crash caused by Node.js process leaks in Stormkit. Learn about process groups, SIGCHLD handling, and using Tini for zombie reaping.
Go applications can implement graceful shutdown by handling termination signals (SIGTERM, SIGINT) via os/signal or signal.NotifyContext. Shutdown must complete within a …
Server-Sent Events (SSE) is a powerful web technology that enables real-time, unidirectional communication from servers to clients. In this video we implemen...
In this article we will look into optimizing memory usage and CPU performance by designing our Go structs with the CPU word size and cache line size in mind.
Weak Pointers are not a new feature in Golang 1.24 because they were used internally. But now, they are officially available in Go 1.24. Generic Type Aliases...
Slice Internals in Go: How the Runtime Expands Slices Efficiently
This article dives into the internals of Go slices, exploring how the runtime efficiently grows the slice’s backing array. It covers the key strategies used, including growth factors, CPU word size alignment, and the size class allocation table, all aimed at optimizing performance while maintaining flexibility.
4 Ways of Bumping Major Versions in Your Go Project
I've recently found myself in a rabbit hole of Go major version bumping to v2. What started as a simple task quickly turned into hours of sifting through conflicting information. Should I use a v2 directory? Create a new v2 branch? What about creating a new repository altogether?
The more
What does it mean to keep security in mind when writing Go code? Answering this question in one short article seems impossible. For this reason, we will narrow it down to a few specific practices.
Millions of developers love Go for its features, performance, ecosystem, and community. But there’s another, perhaps more compelling reason as well: Go is go...