Topics /

Software Engineering

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

2025
1473

Quirks of Common Lisp Types

Humans have a tendency toward binary thinking (pardon the pun). If it's not A, it's B. Perhaps because Lisps have REPLs, they are often thought of from the outside as being dynamic, interpreted languages. Our years of Python have taught us that such languages don't really have strong typing - it's all a wild guess…

1476

The Geometry Behind Normal Maps

Tangent space is often presented as a confusing block of shader math. This is a deep dive into what tangent vectors actually mean, how they emerge from UVs to bridge 2D and 3D space, and the geometry that makes normal mapping possible.

1480

The messy reality of SIMD (vector) functions

We’ve discussed SIMD and vectorization extensively on this blog, and it was only a matter of time before SIMD (or vector) functions came up. In this post, we explore what SIMD functions are, when they are useful, and how to declare and use them effectively. A SIMD function is a function that processes more than… Read

1485

ImapGoose

ImapGoose is a small program to keep local mailboxes in sync with an IMAP server. The wording “keep […] in sync” implies that it does so continuously, rather than a one-time sync. ImapGoose is designed as a daemon, monitoring both the IMAP server and the local filesystem, and immediately synchronising changes. When…

1486

A catalog of side effects

Optimizing compilers like to keep track of each IR instruction’s effects. An instruction’s effects vary wildly from having no effects at all, to writing a specific variable, to completely unknown (writing all state).

1494

What is Local first development

What is local-first software and why does it matter? This guide covers local-first architecture, offline-capable apps with automatic sync, data ownership, and how to build a local-first web app with Vue step by step.

1498

A critique of package managers

n.b. This is a written version of a dialogue from a YouTube video: 2 Language Creators vs 2 Idiots | The StandupPackage managers (for programming languages) are evil.⁠11 The term “evil” is being used partially hyperbolic to make a point.To start, I need to make a few distinctions between concepts a lot of programmers…

1500

Move on to ESM-Only

Three years ago, I wrote a post about shipping ESM & CJS in a single package , advocating for dual CJS/ESM formats to ease user migration and trying to make the best of both worlds. Back then, I didn’t fully agree with aggressively shipping ESM-only , as I considered the ecosystem wasn’t ready, especially since the…