Topics /
Software Engineering
The most popular blog posts about software engineering on Hacker News. 21,844 posts.
Backpressure explained – the resisted flow of data through software (2019)
Backpressure is something nearly every software engineer will have to deal with at some point, and for some it’s a frequent problem. But…
How to write slow Rust code
I have recently published a blog post that, as I had expected (actually, hoped for, as that would attract people to contribute to the “study”), generated quite some polemic on the Internet!
Merging Remix and React Router
We've been building a bridge from React Router to Remix, and we made it so good that we're going to merge the two projects.
The Slippery Slope of Docker Dev Environments
Explore the pros and cons of Docker for local development and learn how to set up a developer-friendly, container-based workflow. Perfect for DevOps enthusiasts and developers!
High Performance Correctly Rounded Math Libraries for 32-Bit Floating Point
Everyone uses math libraries. Surprisingly, mainstream math libraries do not produce correct results for several thousands of inputs. Developers are seldom aware of them, which affects reproducibil…
Typographic Programming Language
Allow me to present a simple thought experiment. Suppose we didn’t need to store our code as ASCII text on disk. Could we change the way we write – and more importantly read – symbolic code? Let’s assume we have a magic code editor which can read, edit, and write anything we can imagine. Furthermore, assume we have a…
Open Letter to XSLT Fans
Michael Snoyman's personal homepage and blog, featuring writing about programming, open source, health, finance, religion, and whatever else catches his interest.
Quake's Fast Inverse Square Root
I'm no graphics expert, but appreciate why square roots are useful. The Pythagorean theorem computes distance between points, and dividing by distance helps…
Actual JavaScript Engine Performance
JSMeter: Measuring JavaScript Behavior in the Wild showed that benchmarks are not representative of the behavior of real web applications. But lacking credible benchmarks, engine developers are tuning to what they have. The danger is that the performance of the engines will be tuned to non-representative benchmarks…
String types are fine. How about your code?
Someone on the internet says that strings are broken, and some more people on the internet disagree. The problem is that all kinds of common operations on strings, such as counting the amount of ch…
Bebop: An Efficient, Schema-Based Binary Serialization Format
BUILDING FOR HUMANITY
A unified theory of low/no code and middleware
Let’s start from the beginning — what is an application?
SIMD programming in pure Rust
I've recently tasted AMD Zen 5 CPUs (AWS' m8a instances) and... Whooaaa. Even before talking about GPUs and NPUs, the next 5 years of CPUs will be very exciting! For
Game Boy Advance Audio Interpolation
You are seeing this because the administrator of this website has set up Anubis to protect the server against the scourge of AI companies aggressively scraping websites. This can and does cause downtime for the websites, which makes their resources inaccessible for everyone.
Why We Use Go
Go is decidedly polarizing. While many are touting their transition to Go, it has become equally fashionable to criticize and mock the language. As Bjarne Stroustrup so eloquently put it, “There are only two kinds of programming languages: those people always bitch about and those nobody uses.” This adage couldn’t be…
Thoughts on the Resiliency of Web Projects
I just did a massive spring cleaning of one of my servers, trying to clean up what has become quite the mess of clutter. For every website on the server, I either:
What Holds Me Back from ClojureScript
Thoughts about programming, mostly
The Cracking Monolith: Forces That Call for Microservices
The Forces That Call for Microservices
What Is Idempotence?
Idempotence means duplicates don't matter. It means you can safely retry an operation with no issues. The classic example is the elevator button: you press it twice and it does not call two elevators. We explore why we would want that property in an email server.
The Fourth Operation: What Comes After Exponentiation
Tetration -- repeated exponentiation a fractional number of times.
Forcing Functions in Software Development
Here’s an unavoidable fact: the software project you’re working on has some flaws that no one knows about. Not you, your users, nor anyone in your team. These could be anything from fau…