Topics /

Software Engineering

The most popular blog posts about software engineering on Hacker News. 1,260 posts.

2025
962

Google Logo Ligature Bug

Jeffrey Yasskin recently pointed out an interesting security bug: The idea is, if you had registered googlelogoligature.net then Chrome on Android (and possibly other Google products) would have displayed it as Google.net, potentially tricking users into thinking they were really interacting with Google. To see how…

963

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

964

Lemma for the Fundamental Theorem of Galois Theory

This post illustrates a key lemma that is used in proving the fundamental theorem of Galois theory (FTGT). Note that FTGT is not covered in this post. The focus of this post is on understanding and proving this lemma only. Here is the lemma from the book Galois Theory , 5th ed. by Stewart (2023):

965

Compiler Engineering in Practice

“Compiler Engineering in Practice” is a blog series intended to pass on wisdom that seemingly every seasoned compiler developer knows, but is not systematically written down in any textbook or online resource. Some (but not much) prior experience with compilers is needed.

970

Stability by Design

I think I figured out what’s stressing me out about programming in dynamically typed languages: It’s about always being unsure if using a library in a particular way is going to work and if minor version upgrades aren’t going to break your code.

971

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 :=…

972

Context should go away for Go 2 (2017)

As usual, when a new blog post comes out on blog.golang.org, I’m all eager to read it as soon as possible. The most recent one, Contributors Summit, is a nice write-up on the issues that the Go contributors have been talking about. While reading it, I stumbled upon a sentence that made me write this post. Here is is…

981

The story of Max, a real programmer

This is a story about Imagebin. Imagebin is the longest-lived software project that I still maintain. I'm the only user. I use it to host images, mainly to include in my blog, sometimes for sharing in other places. Imagebin's oldest changelog entry is dated May 2010, but I know it had already existed for about a year…

986

Delete tests

We’ve had decades of thought leadership around testing, especially coming from holistic development philosophies like Agile, TDD, and BDD. After all that time and several supposedly superseding movements, the developers I talk to seem to have developed a folk wisdom around tests. That consensus seems to boil down to…

990

Bill Gates's Personal Easter Eggs in 8 Bit BASIC (2008)

If you type “WAIT6502,1″ into a Commodore PET with BASIC V2 (1979), it will show the string “MICROSOFT!” at the top left corner of the screen. Legend has it Bill Gates himself inserted this easter egg “after he had had an argument with Commodore founder Jack Tramiel”, “just in case Commodore ever…