Topics /

Software Engineering

The most popular blog posts about software engineering on Hacker News. 1,733 posts.

2023
302

Why do people still use VBA?

Introduction Recently, I watched a video by YouTuber ThePrimeTime which details a dev’s frustrations with business culture. Prime is an ex-entrepreneur who currently works in software development at Netflix. His views in this video have been criticised for being jaded by FAANG business cultures he has worked in. I…

304

Memory-efficient enum arrays in Zig

Proper support for sum types or tagged unions have become table stakes for systems programming languages. However, they can incur a lot of memory fragmentation that's not trivial to avoid without good support for metaprogramming. This post goes into Zig's powerful comptime feature, and how it allows some radical…

306

Go 1.21 Released

The latest Go release, version 1.21, arrives six months after Go 1.20 . Most of its changes are in the implementation of the toolchain, runtime, and libraries. As always, the release maintains the Go 1 promise of compatibility ; in fact, Go 1.21 improves upon that promise . We expect almost all Go programs to continue…

308

Use GNU Emacs

This work by Keith Waclena is copyright 2026 and is licensed under a Creative Commons Attribution-NonCommercial-NoDerivs 3.0 (CC BY-NC-ND 3.0) license.

310

Why take a compiler course? (2010)

[…] Embedded in Academia : Why Take a Compiler Course? – Seconded, or whatever – my compiler course was briefer than I'd have liked but many of my peers didn't take it and I spent ages explaining what I thought where simple concepts to them when working on group projects and the like. […]

311

Writing a debugger from scratch: Breakpoints

(New to this series? Consider starting from part 1) At the end of the last post, we started to get some interesting functionality with the ability to resolve addresses to names in a module. This was the last functionality missing before we could implement breakpoints! This part adds the ability for DbgRs to set…

316

Go 1.20 released

The latest Go release, version 1.20, arrives six months after Go 1.19 . Most of its changes are in the implementation of the toolchain, runtime, and libraries. As always, the release maintains the Go 1 promise of compatibility . We expect almost all Go programs to continue to compile and run as before.

323

BB(3, 3) is Hard

I’m excited to share a 3 state, 3 symbol Turing Machine that cannot be proven to halt or not (when starting on a blank tape) without solving a Collatz-like problem. Therefore, solving the \(BB(3, 3)\) problem is at least as hard as solving this Collatz-like problem, a class of problem for which Paul Erdős famously…

325

What a good debugger can do

When people say “debuggers are useless and using logging and unit-tests is much better,” I suspect many of them think that debuggers can only put breakpoints on certain lines, step-step-step through the code, and check variable values. While any reasonable debugger can indeed do all of that, it’s only the tip of the…

328

Modern SPAs without bundlers, CDNs, or Node.js

I typically start new front-end prototypes with a single HTML file that I view using a file:// URL. I enjoy this practice of incrementally growing my projects, so I’ll keep working in that single file for as long as I can. Once it becomes unwieldy, I’ll split out the CSS and JavaScript into dedicated files. Then when…