New
The latest blog posts to take off on Hacker News. 543 posts.
An argument for increasing TCP's initial congestion window (2024)
Introduction Google has a long history of performing networking research, making changes, and pushing those changes to the entire internet. In 2011, they published one of my favorite papers, which described their decision to increase the TCP initial congestion window from 1 to 10 on their entire infrastructure. This…
Neki – Sharded Postgres by the team behind Vitess
Sharded Postgres by the team behind Vitess
Faster substring search with SIMD in Zig
I've been learning a lot about low level programming languages lately, and for a long time there has been one thing that has interested me: SIMD (or 'single ins…
Inside OS/2 (1987)
A 1987 technical introduction to OS/2, covering its architecture, multitasking capabilities, API, and kernel system services.
Booting 5000 Erlangs on Ampere One 192-core
Underjord is an artisanal consultancy doing consulting in Elixir, Nerves with an accidental speciality in marketing and outreach. If you like the writing you should really try the pro version .
A CT scanner reveals surprises inside the 386 processor's ceramic package
Intel released the 386 processor in 1985, the first 32-bit chip in the x86 line. This chip was packaged in a ceramic square with 132 gold-pl...
MCP overlooks hard-won lessons from distributed systems
Fool me once, shame on you; fool me twice, shame on me.
Build durable workflows with Postgres
In this blog post, we’ll dive deep into why we chose to build DBOS durable workflow execution on the PostgreSQL DBMS.
How we replaced Elasticsearch and MongoDB with Rust and RocksDB
Radar offers geocoding, place search, and fraud detection APIs, powered by HorizonDB, a Rust-based engine delivering 20k QPS and sub-millisecond latency.
Mac history echoes in current Mac operating systems
Ars Technica mentioned that in macOS Tahoe the venerable old hard disk icons will be replaced with new, more generic, relatively less inte...
We'd be better off with 9-bit bytes
A number of 70s computing systems had nine-bit bytes, most prominently the PDP-10, but today 1 [ 1 Apparently, it was the System/360 that really set the standard here. ] all systems use 8-bit bytes and that now seems natural. 2 [ 2 Though you still see RFCs use "octet", and the C standard has a CHAR_BITS macro, to…
A fast, growable array with stable pointers in C
My last article about generic data structures in C was written to set the stage for today’s topic: A data structure with constant time indexing, stable pointers, and works well with arena allocators. Its been independently discovered by multiple programmers over the years and so goes by different names. A 2001 paper…
Don't “let it crash”, let it heal
Don't "let it crash". Let it heal.
Proxmox Virtual Environment 9.0 with Debian 13 released
Latest announcements for Proxmox.
A deep dive into Rust and C memory interoperability
An in-depth exploration of what happens when Rust and C memory allocators collide, featuring crash analysis.
How we made JSON.stringify more than twice as fast
This post explains our recent effort to improve JSON.stringify performance
Writing a storage engine for Postgres: An in-memory table access method (2023)
Writing a storage engine for Postgres: an in-memory Table Access Method
A Real PowerBook: The Macintosh Application Environment on a Pa-RISC Laptop
I like the Power ISA very much, but there's nothing architecturally obvious to say that the next natural step from the Motorola 68000 family...
What is gVisor?
It has been a really long time since I last wrote something here as life happens, things get busier, etc etc. I am now trying to get back into writing things down and here we go! So, imagine a tool or a service that allows you to run some arbitrary code via a shell. Either through a ssh or more commonly, via a web…
Writing memory efficient C structs
A struct in C is the best way to organize your data so that you can easily use the data later in your program. However, there are a few caveats to C structures, mainly how their memory works. Note that I’m making a lot of assumptions about type sizes and standards. These can differ between systems and ABI’s, so for…
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...
Linux Performance Analysis (2015)
You log in to a Linux server with a performance issue: what do you check in the first minute?
Zig Profiling on Apple Silicon
If you’re a developer rocking an Apple Silicon Mac and writing in Zig, congratulations - you’ve chosen the scenic route through the desert of profiling tools. It’s just you, your code, and a tumbleweed named Apple Instruments. But don’t worry - we’ll try to find some oases. Okay, it’s not that bad, but we’re far away…
I designed my own fast game streaming video codec – PyroWave
Streaming gameplay from one machine to another over a network is a reasonably popular use case these days. These use cases demand very, very low latency. Every millisecond counts here. We need to:
SIMD within a register: How I doubled hash table lookup performance
It started with a simple thought: four bytes in a hash table bucket look just like an integer. Luckily, this one idea led to a deep dive into bit-twiddling and a 2x performance boost.
Linux on Snapdragon X Elite: Linaro and Tuxedo Pave the Way for ARM64 Laptops
Linaro Connect 2025 showcases progress in bringing Linux on Snapdragon-Powered Devices
Fast and cheap bulk storage: using LVM to cache HDDs on SSDs
My attempt to create fast and cheap bulk storage by caching HDDs with SSDs on Linux, using standard lvmcache. Contains an introduction to LVM, RAID, and partitioning.