Topics /
Software Engineering
The most popular blog posts about software engineering on Hacker News. 21,833 posts.
What to Know Before Debating Type Systems (2008)
I was asked by someone to put this old piece of writing of mine somewhere more permanent, so here it is. A few comments off the top: This isn’t new. I wrote it years ago. Yes, I’m a b…
Changing the Rules of Rust
In Rust, there are certain API decisions about what is and isn’t sound that impact all Rust code. That is, a decision was made to allow or not allow types which have certain safety requirements, and now all users are committed to that decision. They can’t just use a different API with different rules: all APIs must…
Git commands you probably do not need
Ah, git ! Love it, hate it. Few things are as central to the modern software development workflow as source-control management (SCM) tools. Although there have been and still are plenty of alternatives to git in the world of SCMs, none other seem quite as prevalent both in open-source and the enterprise.
Who Can Understand the Proof? A Window on Formalized Mathematics
Stephen Wolfram discusses understanding proofs discovered using automated theorem proving. Based on Wolfram’s proof of the simplest axioms of logic of Boolean algebra.
Read your code
Stop vibe-coding blindly! Why reading AI-generated code is crucial in 2025. Avoid security flaws, architectural decay, and knowledge loss when using Claude Code or any other tool.
Some notes on local-first development
How local-first software works: sync engines, CRDTs, replicated databases, developer tools, architecture tradeoffs, and when to use each approach.
GraalVM 22.1: Developer experience improvements, Apple Silicon builds, and more
Today we’re releasing GraalVM 22.1! This release brings new features and lots of improvements — we’ll cover the highlights in this blog…
Did Semgrep Just Get a Lot More Interesting?
Documentation and guides from the team at Fly.io.
Sorbet: Stripe's Type Checker for Ruby
Stripe uses Sorbet to type check our 15 million lines of Ruby code, making engineers more productive. Here's why we love Sorbet.
Gitlab 13.1
GitLab release announcements and feature highlights.
LuaX: A Lua Dialect with JSX
This site now runs on a custom dialect of Lua.
Rules for new FPGA designers
It’s a new school year!
Starting to Demo the Wolfram Language [video]
Stephen Wolfram introduces the Wolfram Language, with overview and demonstrations, in a video showing the power of this symbolic programming language.
Crunch – a Scheme compiler with a minimal runtime
Hi, I'm Peter Bex, a Scheme and free software enthusiast from the Netherlands. See my user page on the CHICKEN wiki or my git server for some of my projects.
My essential django package list
In this article I’d like to present a list of django packages (add-ons) that I use in most of my projects. I am using django for more than 5 years as my day to day work tool to develop applications for the public sector organization I work for. So please keep in mind that these packages are targeted to the…
Using /proc to get a process' current stack trace
Check out how you can use the proc filesystem to retrieve the kernel stack trace of a given process
What category theory teaches us about dataframes
Every dataframe library ships with hundreds of operations. pandas alone has over 200 methods on a DataFrame. Is pivot different from melt? Is apply different from map? What about transform, agg, applymap, pipe? Some of these seem like the same operation wearing different hats. Others seem genuinely distinct. Without a…
Common misconceptions about compilers
A curated list of misconceptions about mainstream compilers.
Three JavaScript performance fundamentals that make Bluebird fast
Bluebird is a widely used promise library for JavaScript which initially gotnoticed back in 2013 due to it being up to 100 times faster than other
Windsurf SWE-1: Our First Frontier Models
Introducing our first Frontier Models!
Clojure’s Approach to Identity and State (2008)
Many people come to Clojure from an imperative language and find themselves out of their element when faced with Clojure’s approach to doing things, while others are coming from a more functional background and assume that once they leave Clojure’s functional subset, they will be faced with the same story re: state as…
Annual Developer Income Report
It is over one year since I gave up my day job to become an independent developer (It is more than a year but I have missed a few reports so I will sum 12 months that has been reported on this blog…
Writing a Simple Garbage Collector in C (2014)
People seem to think that writing a garbage collector is really hard, a deep magic understood by a few great sages and Hans Boehm (et al) . Well it’s not. In fact, it’s rather straight forward. I claim that the hardest part in writing a GC is writing the memory allocator, which is as hard to write as it is to look up…
Prolog for data science
I demonstrate a widely applicable pattern which integrates Prolog as a critical component in a data science analysis. Analytic methods are used to generate properties about the data under study and Prolog is used to reason about the data via the generated properties. The post includes some examples of piece-wise…
C++ Coroutine Theory (2017)
In this post I will describe the differences between functions and coroutines and provide a bit of theory about the operations they support. The aim of this post is introduce some foundational concepts that will help frame the way you think about C++ Coroutines.
Doom in Django: testing the limits of LiveView at 600.000 divs/segundo
Based on the latest tests I've published, Django LiveView appears to be the fastest dynamic frontend (I'm sure more variables can be measured). OK…