Top posts
Every blog post that took off on Hacker News, ranked by the votes of its best submission. 6,947 posts.
Coming soon: Stripe CTF3, distributed systems edition
Online payment processing for internet businesses. Stripe is a suite of payment APIs that powers commerce for businesses of all sizes.
Linux Performance Analysis (2015)
You log in to a Linux server with a performance issue: what do you check in the first minute?
Vectorized Emulation: fuzzing at 2 trillion instructions per second
This is the introduction of a multipart series. It is to give a high level overview without really deeply diving into any individual component.
Practical Garbage Collection - Part 1: Introduction
Introduction This is the first part of a series of blog posts I intend to write, whose aim will be to explain how garbage collection works in the real world (in particular, with the JVM). I will co…
Using select(2) the right way
This started out as a Hacker News comment about a blog post about select being fundamentally broken After that the same author wrote why epoll is broken as well. I don’t know what problem author is trying to solve but let’s pick this one:
Systems design 2: What we hope we know
Someone asked if I could write about the rise of AI and Large Language Models (LLMs) and what I think that means for the future of people, t...
PostgreSQL views and materialized views and how they influenced TimescaleDB
Continuous aggregates are one of Timescale's most popular features, but you can’t fully understand them without some context on Postgres views and materialized.
Postgres isn't slow, your storage is
A recap of Sai Srirampur's POSETTE 2026 talk on storage performance in Postgres, with a local NVMe vs. EBS benchmark and the production setup behind it.
How to Structure C Projects: These Best Practices Worked for Me
I recently worked on two different C projects, and I wanted to structure them in a way that would make them easy to maintain and understand. I also wanted to make sure that the projects were easy to build and test. In this post, I will share my experience and the best practices I found for structuring C projects.
IPv6 privacy addresses crashed the MIT CSAIL network
A few hours ago, I sent the following “dear colleagues” email (lightly edited to remove some private details) to all my users at work: This has been a very trying week. For those of you…
Windows Terminal Preview 0.9
The v0.9 release of the Windows Terminal has arrived! This is the last version of the Terminal that will include new features before the v1 release. You
Windows 10 in-place upgrades are a severe security risk
This is a big issue and it has been there for a long time. Just a month ago I finally got verification that the Microsoft Product Groups n...
Software Development at 1 Hz
People keep saying that a one line source code change should take one second to be “effective”. “Effective” meaning that you get some form…
Destroying x86_64 instruction decoders with differential fuzzing
TL;DR: x86_64 decoding is hard, and the number and variety of implementations available for it makes it uniquely suited to differential fuzzing. We’re open sourcing mishegos, a differential fuzzer for instruction decoders. You can use it to discover discrepancies in your own decoders and analysis tools! In the…
EC2 Update – T2.Nano Instances Now Available
We announced the t2.nano instances earlier this year. Like their larger siblings (t2.micro, t2.small, t2.medium, and t2.large), these instances provide a baseline level of processing power, along with the ability to save up unused cycles and use them when the need arises. As I noted in my earlier post (New T2.Large…
Too Many Open Files
Recently I’ve been working on a pretty big rust project and to my surprise Icouldn’t get tests to work properly.
The Linux scheduler: A decade of wasted cores (2016)
The Linux Scheduler: a Decade of Wasted Cores – Lozi et al. 2016 This is the first in a series of papers from EuroSys 2016. There are three strands here: first of all, there’s some grea…
Many Core processors: Everything You Know (about Parallel Programming) Is Wrong
David Ungar is "an out-of-the-box thinker who enjoys the challenge of building computer software systems that work like magic and fit a user...
The End of the General Purpose Operating System
As interesting chat on Twitter today reminded me that not everyone is probably aware that we’re seeing a concerted attempt to dislodge the general purpose operating system from our servers.
Strategies for Fast Lexers
Making compilation pipelines fast, starting with the tokenizer
Using Binary Diffing to Discover Windows Kernel Memory Disclosure Bugs
Posted by Mateusz Jurczyk of Google Project ZeroPatch diffing is a common technique of comparing ...
Building CockroachDB on top of RocksDB
CockroachDB uses RocksDB for its storage engine because of RocksDB's rich feature set, which is necessary for a complex product like a distributed SQL database.
Tendermint 0.10.2
Tendermint is a server and a protocol for building linearizable (or sequentially consistent) byzantine fault-tolerant applications. Tendermint validators accept transactions from clients over HTTP, and replicate them to the other validators in the cluster, forming a totally ordered sequence of transactions. Each…
Passing nothing is surprisingly difficult
My day job is in browsers and cryptography , not compilers, yet I often find that I need to spend more of my time working through the semantics of programming languages than using them. This post discusses a thorny cross-language issue between C, C++, and Rust. In short: