Topics /

Systems & Performance

The most popular blog posts about systems & performance on Hacker News. 380 posts.

2025
271

Wild performance tricks

Last week I had the pleasure of attending RustForge in Wellington, New Zealand. I gave a talk titled “Wild performance tricks”. You can watch a recording of my talk . If you’d prefer to read rather than watch, the rest of this post will cover more or less the same material. The talk shows some linker benchmarks, which…

274

The best worst hack that saved our bacon

No-one really likes engineering war stories, but this one's relevant because there's a moral to it. I've talked before about defining technical debt as technical decisions that provide immediate value, but with long-term negative impact if they aren't cleaned up. Sometimes introducing technical debt

277

The Polyglot NixOS

Recently a colleague mentioned building NixOS images that run unchanged on multiple architectures. Given the past adventures on this blog with systemd-repart and cross-compiling NixOS, I decide to give this a go.

280

How to make things slower so they go faster

In a service with capacity $\mu$ requests per second and background load $\lambda_0$, the usable headroom is $H = \mu - \lambda_0 > 0$. When $M$ clients align, e.g., after a cache expiry, at a cron boundary, or as a service returns from an outage, the bucketed arrival rate can

282

From Azure Functions to FreeBSD

Putting FreeBSD’s “power to serve” motto to the test. On Thanksgiving morning, I woke up to one of my web services being unavailable. All HTTP requests failed with a “503 Service unavailable” error. I logged into the console, saw a simplistic “Runtime version: Error” message, and was not able to diagnose the problem…

283

Simpler Backoff

Exponential backoff with jitter is de rigeur for making service calls. This code, or something like it, probably looks really familiar: func do(ctx context.Context) error { const ( maxAttempts = 10 baseDelay = 1 * time.Second maxDelay = 60 * time.Second ) delay := baseDelay for attempt := range maxAttempts { err :=…

290

The Evolution of Caching Libraries in Go

For the last few years, I've been developing caching library, and today I'd like to talk about the evolution of caches in Go and where we stand today. Especially since Go 1.24 was officially supposed to focus on caching improvements, but I haven't heard much news about them - time to fix that .

293

Rootless Pings in Rust

Sending a ping by creating an ICMP socket normally requires root: you can’t create a raw socket to send ICMP packets without it. The ping command line tool works without root however, how is that possible? It turns out you can create a UDP socket with a protocol flag, which allows you to send the ping rootless. I…

297

How Hyper built a 1M-accurate indoor GPS

To @AndrewHart: “Our app is shit and we know it’s shit”. My life changed forever when a senior exec from one of the world’s largest retailers messaged me on Twitter. This was back in 2017. My outdoor AR navigation demos had just gone viral, and my new open-source project for...

298

System76 built the fastest Windows Arm PC

System76 built their first workstation-class Arm PC, the Thelio Astra, and it's marketed for streamlined autonomous vehicle development. But I'm not an automotive developer, just someone who enjoys Linux, Arm, and computing. So I was excited to spend a few weeks (which turned into a few months) testing the latest…