Topics /
Software Engineering
The most popular blog posts about software engineering on Hacker News. 14,544 posts.
Switching Costs in Software Development
The story of why it is important to make sure that it is easy to switch from one service to another.
PHP 5.7 now nearly twice as fast as PHP 5.6
correction: php core developers have urged that it is improper to call this version “5.7” (despite the versioning file stating so) PHP 5.7 PHP NG is still in alpha development…
You are the WM
A window manager is a program that runs in the background, and give you keybinds and/or mouse moves to move/resize and arrange your windows on your screen.
Julia Macros for Beginners
Macros are a powerful and interesting feature of the Julia programming language, but they can also be confusing. Users coming from Python, Matlab or R have not come in contact with similar constructs before, and they require a different way of thinking about code. This article is supposed to be a simple introduction…
The inconceivable types of Rust: How to make self-borrows safe (2024)
One of the first things any Rust programmer learns is that you can’t pass an object and a reference to that object around at the same time. It’s impossible to do, even indirectly. This limitation has been the subject of countless questions on Stack Overflow and posts on Reddit and the Rust forums and anywhere else…
Software Development: Mistakes I Made
Recently I revealed the secret of academic success. This was so popular (16000 views!) that I decided I would follow up with the secret of software success – success in producing software. No…
Programming Sucks
E very friend I have with a job that involves picking up something heavier than a laptop more than twice a week eventually finds a way to slip something like this into conversation: “Bro, 1 [1] you don’t work hard. I just worked a 4700-hour week digging a tunnel under Mordor with a screwdriver.”
Speech Dictation Mode for Emacs
T here is a wide range of input mechanisms for computers, starting with keyboards (which are relatively mature) and extending to various types of neural interfaces (currently under research). Speech lies somewhere on this spectrum with a lot of promises but still not much to show for. Keeping accessibility aspects…
Beyond OpenMP in C++ and Rust: Taskflow, Rayon, Fork Union
Most C++ and Rust thread pools run 10x slower than OpenMP on fork-join workloads. Fork Union closes the gap to 20% with 300 lines, dodging mutexes and CAS.
Inverse Live Coding: A practice for learning web development
I finished my first semester teaching at the University of Michigan. I taught EECS 493 User Interface Development all on the Web. It was a tough class for me since I had never before this class use…
Unix version control lore: what, ident
There are a couple of version control commands that deserve wider appreciation: SCCS what and RCS ident . They allow you to find out what source a binary was built from, without having to run it – handy if it is a library! They basically scan a file looking for magic strings that contain version control metadata and…
Effortless Elixir Releases and Deployment
Elixir-learning article: Effortless Elixir releases and deployment (tagged: Deployment, Releases, Phoenix, Render)
Interactive Programming in C
I’m a huge fan of interactive programming (see: JavaScript , Java , Lisp , Clojure ). That is, modifying and extending a program while it’s running. For certain kinds of non-batch applications, it takes much of the tedium out of testing and tweaking during development. Until last week I didn’t know how to apply…
Reverse Engineering Apple's typedstream Format
imessage-exporter ’s goal is to provide the most comprehensive representation of iMessage data available. Message data is stored in a legacy format that appears to be a stream that represents objects.
Applying Mypy to real-world projects
Some hints and tips for getting started with Mypy and introducing it to existing projects
Watertight vector maps from raster images
Or, “how not to GIS”.
Rule-Based Programming in Interactive Fiction
As I write this, Inform 7 is approaching its third birthday. I7 is a tool for creating interactive fiction (text adventure games). Like all the most powerful IF development tools, I7 is a programming language -- a powerful and peculiar one.
Tools for 2025
TLDR; I really wish these tools gain more traction:
Blame as a Service
Productized scapegoating
Neural-control family: what deep learning and control enables in the real world
With the unprecedented advances of modern machine learning comes the tantalizing possibility of smart data-driven autonomous systems across a broad range of real-world settings. However, is machine learning (especially deep learning) really ready to be deployed in safety-critical systems?
Python's GIL implemented in pure Python
Python's GIL explained in Python code
Designing a garbage collector in Rust
For a while I’ve been working on a garbage collector for Rust with Nika Layzell. I thought this would be a good time to talk of our design and …