Topics /
Software Engineering
The most popular blog posts about software engineering on Hacker News. 14,540 posts.
Knuth Airgaps and Knuth Buffers
Knuth knows how to maintain information hygeine.
My fast zero-allocation webserver using OxCaml
Building httpz, a high-performance HTTP/1.1 parser with zero heap allocation using OxCaml's unboxed types, local allocations, and mutable local variables.
A Note on Essential Complexity
The fact that we can’t remove essential complexity with a software redesign doesn’t mean that there’s nothing we can do about it. What if the problem definition wasn’t outside of our purview? What if we could get the world to conform to the software, and not just the other way around?
Demystifying the regular expression that checks if a number is prime (2016)
Ever wondered how the ^.?$|^(..+?)\1+$ regular expression can tell you if a number is not prime? In this blog post you'll learn how and why it works. Code examples in Java, JavaScript, Python and Perl are provided.
Become a better programmer with programming challenges
When I went to university me and some friends spent time on practising algorithm implementations for the national programming contests that ...
Introduction to SerenityOS Programming
This post will give you a quick intro to the basics of GUI programming for SerenityOS.
Supercharge SQLite with Ruby Functions
An interesting twist in my recent usage of SQLite was the fact that I noticed my research scripts and the database intertwine more. SQLite is unique in that it really lives in-process, unlike standalone database servers. There is a feature to that which does not get used very frequently, but can be indispensable in…
Building Photoshop 1.0
On February 13, 2013, the Computer History Museum reported that they had received the source code for version 1.1 of Photoshop from Adobe, and had permission to release it for non-commercial use. This is the second time recently that something like this has happened, the first being the release of the Quickdraw and…
Gnirehtet rewritten in Rust
Several months ago, I introduced Gnirehtet , a reverse tethering tool for Android I wrote in Java.
Fork Freshness: Project lifespans in the Ruby ecosystem
I've built an app called Fork Freshness . In the process of building that app, I've learned some interesting things about how open source projects evolve over time.
The future of programming: Research at CHI 2023
Research on programming tools published at CHI 2023.
Writing Speed-of-Light Flash Attention for 5090 in CUDA C++
In this post, I will walk through how I learned to implement Flash Attention for 5090 in CUDA C++. The main objective is to learn writing attention in CUDA C++, since many features are not available in Triton, such as MXFP8 / NVFP4 MMA for sm120. I also feel this is a natural next step after learning about matmul…
A Better Way to Implement Bit Fields
One of the main use cases for the Zig Programming Language is operating system development and embedded development. So, what better way to make sure the language is suitable than to work on a project in this field?
Anti-patterns when building container images
This is a list of recurring anti-patterns that I see when I help folks with their container build pipelines, and suggestions to avoid them or refactor them into something better.
Fast CSV Processing with SIMD
I recently learned of csvquote , a tool that encodes troublesome CSV characters such that unix tools can correctly process them. It reverses the encoding at the end of the pipeline, recovering the original input. The original implementation handles CSV quotes using the straightforward, naive method. However, there’s a…
Building a collaborative pixel art editor with CRDTs
CRDTs sound cool, but how are they actually used? Let's learn by building a collaborative pixel art editor.
C++ Papercuts
UPDATE: Wow, this post has gotten popular! I’ve written a new post that adds new papercuts combined with concrete suggestions for how C++ could improve, if you are interested. Also, if you want to read more about C++’s deeper-than-papercut issues, I recommend specifically my post on its move semantics. Thank you for…
Functional programming and reliability: ADTs, safety, critical infrastructure
> In banking, telecom, and payments, reliability is not a nice to have. It is table stakes. The most reliable systems I have worked on reduce entire classes of bugs before the code even runs. Function...
Improving Xwayland window resizing
One of the quickest ways to determine whether particular application runs using Xwayland is to resize one of its windows and see how it behaves, for example
How types make hard problems easy
A deep dive into how I use types to the fullest
Stop Building Closed Ecosystems
I'm sick of it. In the world of mobile development (though likely also elsewhere), we sink so much engineering talent into making tools that are great...