Topics /
Software Engineering
The most popular blog posts about software engineering on Hacker News. 21,842 posts.
The surprising cleverness of modern compilers
I wanted to know how a modern C compiler like clang would process the following C code: #include <stdint.h> int count(uint64_t x) { int v = 0; while(x != 0) { x &= x - 1; v++; } return v; } Can you guess? popcntq %rdi, %rax That is right. A fairly sophisticated C function, … Continue reading The surprising cleverness…
The Bitter Lesson of LLM Extensions
From ChatGPT Plugins to Agent Skills, a look at how we've been trying (and failing) to extend LLMs for the last three years.
Why building a Rust LSP is hard
Rust LSP that doesn't eat memory for breakfast
What works (and doesn't) selling formal methods
We take pride in personally connecting with all interested partners, collaborators and potential clients. Please email us with a brief description of how you would like to be connected with Galois and we will do our best to respond within one business day.
SQLite: Infinite loop due to the ‘order by limit’ optimization
Verify that you are human by typing in the 8-character text password shown below.
The Plan for React 18
The library for web and native user interfaces
The Shapes of Code
Expressive code in C++
Tvix: We Are Rewriting Nix
TVL's blog
Small joys of programming in Odin
Update (2023-07-21): I was being a bit overly brief with liberal use of ... to mean “unimportant” in the code examples. Ginger Bill (creator of Odin) noted it might be clearer to have more correct/explicit Odin and Zig code for the examples given people would be less familiar. Those has been updated For the past few…
Why Mathematica does not simplify sinh(arccosh(x))
When Mathematica seems to not to know how to simplify an expression, it may be doing the right thing, being more sophisticated than you expect.
Functional programming in C (2013)
0.1 Discriminated unions in C 0.2 Nested functions and lambda variables 0.3 Automatic cleanup of local variables 0.4 Data structures 0.5 Wrapping up This post/program (as I’m writing it in literate…
Adding type safety to object IDs in TypeScript
Learn how to add type safety to object IDs in a TypeScript codebase using template literal types.
Why is .NET reflection slow?
It’s common knowledge that reflection in .NET is slow, but why is that the case? This post aims to figure that out by looking at what reflection does under-the-hood.
Bye Bye JavaScript Promises
In my previous post , I explored how programming with promises can be made close to programming with values. After some more work on it, and some learning from bluebird , I came to conclude that my brain doesn’t think well with promises. So I wrote a macro for Javascript that expands “tasks” into async state machines…
21 years and counting of 'eight fallacies of distributed computing' (2025)
Eight long held and common beliefs about the network have been shown, time after time, to be false. What are they, and what do they mean?
How I develop with Nix
Recently NixOS was posted to the Haskell reddit, and seems to have been received well. In the comments I mentioned that NixOS allows me to be a more productive Haskell developer, and I would like to discuss how I am using the features offered by NixOS. Before we get into those details, allow me to briefly summarise…
You could have invented futexes
The futex ( f ast u serspace mu tex ) is a Linux kernel feature designed for synchronization primitives (mutexes, condition variables, semaphores, etc.). Like many topics in concurrency, they have a reputation for being tricky (for example, see the paper Futexes Are Tricky ). Despite that, they really are a…
License Plate Detection Without Machine Learning
Learn how to detect vehicles license plates without heavy Machine Learning techniques, just standard image processing routines.
Aggregating all cinema showtimes in Germany with Clojure
How I build a website for choosing movies