Topics /

Software Engineering

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

2024
991

Using Pandoc and Typst to Produce PDFs

UPDATE MARCH 2025: This post, and the template attached, were written for Typst v 0.11 – Typst has upgraded twice since then, and this template will not work with the newer versions of Typst. Please see the new post (Mar 26, 2025) at A New Typst Template for Pandoc

999

Decoding UTF8 with parallel extract

As a side-quest I recently decided to write a branchless utf8 decoder utilizing the pext or "parallel extract" instruction. It's compliant with rfc-3629 , meaning that it doesn't just naively decode the code-point but also checks for overlong encoding, surrogate pairs and such. Compiled with gcc -O3 -march=x86-64-v3…

1002

A dictionary of single-letter variable names

Haskell’s expressive type system means that type signatures can carry a lot of information. Haskell’s polymorphism means that you sometimes write functions that work across an enormous range of types, and are left wondering “what do I actually call my variables?”. It is often the case that there’s nothing to say…

1012

YX Problem

Software people are always all up in the XY problem: someone asks about how to do X when what they're really trying to solve is Y. I find the YX problem much more frustrating: where software people decide that they want to answer question Y even though what someone asks is question X. I've seen...

1017

The Functional Programming Hiring Problem

If you've ever seen a discussion of functional programming languages on the Internet, you'll have probably noticed one talking point in particular that comes up frequently. For the sake of generalization, let's make up a hypothetical functional programming language called Gooby. In these discussions, often someone…

1018

Performance Analysis of Python's Dict() and {}

Some time ago, during a code review, I had a discussion with a colleague of mine about preferring dict() over {} in new Python code. They argued that dict() is more readable — and expresses intent more clearly — therefore should be preferred. I wasn’t convinced by that, but at that time I didn’t have any…