Topics /
Software Engineering
The most popular blog posts about software engineering on Hacker News. 14,541 posts.
On Rust and Nim
I was recently contacted from a person I had never met before, asking for some comments on Nim and Rust. Since I have taken a little time to answer, I figured I might as well publish my thoughts.
LLMs could be, but shouldn't be compilers
I’ve been going round and round in my mind about a particular discussion around LLMs: are they really similar to compilers? Are we headed toward a world where people don’t look at the underlying code for their programs?
The Art of Picking Intel Registers (2003)
I wrote this article for an online magazine called Scene Zine . Scene Zine caters to the Demo Scene, which is an digital art community dedicated to pushing the limits of computers through a mix of music, art, and computer programming. A particular category of demoscene productions, 4K intros, focus on the final…
Dark Matter Developers: The Unseen 99% (2012)
In astronomy and cosmology, dark matter is a currently-undetermined type of ...
Distribution of JVM Desktop Applications
This is the 6th post in the The state of JVM desktop frameworks focus series.
Docker in Production: A retort
This blog covers various issues I encounter and the (sometimes creative) solutions I apply.
Gradual Programming
Programming is a fundamentally incremental (or gradual) process, and our programming languages should reflect that. I show several ways in which program models transition over time and discuss how future research can further a human-centric vision for programming languages.
What's New in PHP 8.1
PHP 8.1 adds support for PHP enums, as well as readonly properties, Fibers, performance improvements, new in initializers, and more.
This is valid Python syntax
Sometimes it's even useful too
A bug which affected only left handed users
Verily, some of our brethren (and sistren) be afflicted with a sinister disposition. While the righteous scroll using the thumb of their right hand - as is good and proper - an accurs'd minority swing the other way. Look, you try writing an interesting bug report without sounding like a clanker, OK! I try to optimise…
Results of the SQL Performance Quiz
SQL indexing: 60% don’t know how to get it right
There is no software maintenance
Every time I hear about software maintenance as a distinct activity, I cringe. That’s because it is based on the outdated notion that first software is developed, then it is maintained. But t…
Don’t invert that matrix (2010)
There is hardly ever a good reason to invert a matrix. What do you do if you need to solve Ax = b where A is an n x n matrix? Isn't the solution A−1 b? Yes, theoretically. But that doesn't mean you need to actually find A−1. Solving the equation Ax = b is
The “Web Application” Myth
The last few weeks were full of lots of great articles about an old topic: should things on the internet be dependent on JavaScript and…
JavaScript Benchmarking Is a Mess
Design decisions core to JavaScript have caused a multitude of problems for benchmarking. Is there a solution to this?
Why Isn’t Programming Futuristic?
If you think someone is asking a rhetorical question, it is usually most interesting to treat it as though it is a legitimate question. Especially if we’re talking about something hard — driving down to underlying assumptions through this questioning process is interesting.
The Little Things: Speeding up C++ compilation
This post is based on an internal training I prepared for my employer, Locksley, and showcases some source-level techniques for improving C++ compilation times.
UUID Benchmark War
This month’s PGSQL Phriday #015 topic is about UUIDs, hosted by Lætitia Avrot. Lætitia has called for a debate. No, no, no. I say let’s have an all-out war. A benchmark war. I have deci…
ULIDs and Primary Keys
Not all non-sequential primary keys are created equal, the ULID format is a fantastic substitute for the typical UUIDv4 choice.
The end of "Useless Ruby sugar": On intuitions and evolutions
I wrote the analysis of “useless sugar” features of Ruby for two months, and I regret nothing.
How to Scale a System from 0 to 10M+ Users
Scaling is a complex topic, but after working at big tech on services handling millions of requests and scaling my own startup (AlgoMaster.io) from scratch, I’ve realized that most systems evolve through a surprisingly similar set of stages as they grow.
My mental model of how alpha opacity works is wrong (2020)
When plotting overlapping elements with a defined alpha (opacity), I had always thought about it as an additive process with results clamped to not exceed 1.
Maps and Memory Leaks in Go
A map can always grow in memory; it never shrinks. Hence, if it leads to some memory issues, you can try different options.
My First Kernel Module: A Debugging Nightmare
This is the story of the time I wrote some code, deployed it to production, and ended up bricking the server it was running on by frying the kernel. Beautiful rendition of me frying the kernel This post is about perils of concurrency and...
The Hunt for the Fastest Zero
Unexpected performance deviations depending on how you spell zero.