Topics /
Software Engineering
The most popular blog posts about software engineering on Hacker News. 21,842 posts.
Lisp Query Notation (LQN)
Query language and terminal utility for transforming various data formats
Memory safety absolutists
When seeing the title of this post, I bet in some people's minds, the first thought was "Rust devs!". This connection is not unfounded. Rust devs tend to be passionate about memory safety. Some of it, I'm sure, may have been caused by a classic language wars attitude: my language is better than yours, and here is why…
What's the Future of IDEs?
Can we move our development environment from our local machines to a remote server, and interact with it through a browser-mediated IDE?
Notes on Programming in C – Rob Pike (1989)
What follows is a set of short essays that collectively encourage a philosophy of clarity in programming rather than giving hard rules. I don't expect you to agree with all of them, because they are opinion and opinions change with the times. But they've been accumulating in my head, if not on paper until now, for a…
My five-year experiment with UTC
Transform Your Time Management Forever! Discover how switching to UTC eliminated time zone confusion, boosted productivity, and simplified global scheduling for remote work.
PHP's Oddities
flow2 | Blog post: 'PHP's Oddities' in Tech
We put half a million files in one Git repository (2022)
Using a monorepo causes a lot of performance challenges for git. Here's how we solve them at Canva.
UIs are not pure functions of the model (2018)
When I first saw React.js , I had a quick glance and thought that it was cool, they finally figured out how to do a Cocoa-like MVC UI framew...
The "End of Programming" will look a lot like programming (2023)
Nobody wants “temperamental and mysterious” products, so what will AI-integrated software development look like?
TypedDicts are better than you think
TypedDict was introduced in PEP-589 which landed in Python 3.8. The primary use case was to create type annotations for dictionaries. For example,...
Golang: Know Your 'Nil'
In Golang, nil is an interesting value. You may be familiar with Go’s philosophy of making the “zero value” meaningful.
The upcoming iterator design for Go 1.23
NOTE: This is based on, but completely rewritten, from a Twitter post:https://x.com/TheGingerBill/status/1802645945642799423TL;DR: It makes Go feel too "functional" rather than being an unabashed imperative language.I recently saw a post on Twitter showing the upcoming Go iterator design for Go 1.23 (August 2024)…
The bloat of edge-case first libraries
How building edge-case first led to bloated, overly-granular libraries and what we can do about it
How functional programming shaped and twisted front end development
A friend called me last week. Someone who’d built web applications back for a long time before moving exclusively to backend and infra work. He’d just opened a modern React codebase for the first time in over a decade.
Escape IntelliJ: Scala and Kotlin LSPs on Emacs Eglot
Enjoy Emacs and its built-in language server (LSP) superpowers, for JVM languages. Let's walk through basic language setups, specialized workspace configuration handling, and dive deep into some advanced JSON-RPC and advice-based workarounds for Scala (Metals) and Kotlin that make development truly seamless from Emacs…
What I love about Django
The best parts of Django are the ones you stop noticing — a tour of the abstractions that have given Buttondown the most leverage over the years.
Arenas in Rust
At one level, this question is not very fair, because an answer to it as stated would be that one simply does not use doubly linked lists. They have been popular in introductory computer science lectures because they are a neat way to explain pointers in a data structure that's easy to draw on a whiteboard, but they…
Saving a Third of Our Memory by Re-Ordering Go Struct Fields (2020)
Simply changing the order of some uint variables we managed to drop our memory usage significantly
Code the shortest path first
There is a strange thing that I noticed as I progressed from a junior engineer to mid-career to senior. When you’re a new engineer, still learning the basics, you are given a task or you have an idea, and you proceed to implement exactly that idea. Very simple, point A to point B, whatever gets the job done. You hate…
WASI 0.2.0 and Why It Matters
With the release of WASI Preview 2, we take a step back and look at why it matters for wasmCloud and the WebAssembly ecosystem.
Pie doesn't need to be original unless you claim it so
View this post in browser Your pie doesn't need to be original (unless you claim it so) Imagine you bake a delicious peach pie over the weekend, and you...
The Node.js Community is Quietly Changing the Face of Open Source
The node.js community is developing at an amazing pace. What are the many differences that make that possible?
Be careful with Go struct embedding
The gophers nested too greedily and too deep.
A Usable C++ Dialect That Is Safe Against Memory Corruption
Quote: we DID get a perfectly usable C++ dialect which is also 100% safe against memory corruption and against memory leaks. Another Quote: we can (and often...
Revisiting the design approach to Zig
Zig is a general-purpose programming language that can act as a drop-in replacement for C / C++, letting you incrementally improve your code base.