Topics /
Software Engineering
The most popular blog posts about software engineering on Hacker News. 14,544 posts.
Building a full Django project, starting with a single file
MP 90: Building a complete Django project from a single file. Note: This is the first post in a series about building a full Django project, starting with a single file. This series will be free to everyone, as soon as each post comes out. 1 For a long time,
How To Build A Smartwatch: Software
PebbleOS, mobile app, SDK improvements and more!
Implementing Rust's dbg! in Python
Rust has an amazing dbg macro that lets you quickly set up an expression printer that will also put in the source line. It also returns the value of the expression so you can even easily inline the printing when you want to!
A Stack Overflow user's reply to Experts Exchange blogpost
This is in response to this blog post made at Experts Exchange. Whilst I agree on a few of the points you have made, as a user and a promot...
Internals of async / await in JavaScript
If you have ever used JavaScript in the past, there is a high chance you have encountered the async / await syntax. async / a
Spatial languages: Writing code in 2D
Writing code in 2D: a spatial programming language with vertical operands, quantum uncomputation puzzles, and a 3-bit adder in a single 2D expression.
Io_uring Without Readahead
Someone opened a PR to implement readahead in Turso. It was a throwaway implementation, but a good excuse to measure io_uring and understand more about it.
Tabular Programming: A New Paradigm for Expressive Computing
I've been exploring the m8 Dirtywave tracker for a few months now, and it's been a fascinating experience. If you're not familiar with it, the m8 is a portable music sequencer built on the Teensy platform that combines a minimal 8-button interface with a powerful tabular workflow. What makes it special isn't just its…
A toy programming language in 137 lines of Python code
I thought it would be fun to go outside of my comfort zone of web development topics and write about something completely different and new, something I have never written about before. So today, I'm…
Your test suite is trying to tell you something
A few weeks ago I started wondering about 'the test that occasionally and randomly breaks' in a large test suite at my job. The test, calle...
Testing Memory Allocators: ptmalloc2 vs. tcmalloc vs. hoard vs. jemalloc
Quote: if you DO want to get performance from changing mallocs, make sure to test them with your own app Another Quote: in our humble opinion, overall winner...
Why is calling my asm function from Rust slower than calling it from C?
This is a follow-up to making the rav1d video decoder 1% faster, where we compared profiler snapshots of rav1d (the Rust implementation) and dav1d (the C …
Quicksort with Jenkins for fun and no profit
I first encountered Jenkins in 2007 while contributing to the Apache Nutch project. It was called Hudson back then. The nightly builds for the project ran on Hudson at that time. I remember sifting through my emails and reviewing build result notifications to keep an eye on the patches that got merged into the trunk…
Understanding Serde
Serde is one of the most popular Rust crates, and deservedly so. If you aren't familiar, Serde describes itself as "a framework for serializing and deserializing Rust data structures efficiently and generically." What is most impressive to me is how robust the Serde data model has proven to be, allowing it to support…
.NET JIT and CLR – Joined at the Hip
I’ve been digging into .NET Internals for a while now, but never really looked closely at how the ‘Just-in-Time’ (JIT) compiler works. In my mind, the interaction between the .NET Runtime and the JIT has always looked like this:
Reverse Engineering the Apple Multipeer Connectivity Framework (2022)
Some time ago I was using Logic Pro to record some of my music and I needed a way to start and stop the recording from an iPhone, so I found about Logic Remote…
Why APL is worth knowing
Let me show you characteristics of APL that will influence your understanding of programming concepts and the way you use other languages.
Fast Shadow Stacks for Go
tl;dr : Software shadow stacks could deliver up to 8x faster stack trace capturing in the Go runtime when compared to the frame pointer unwinding that landed in go1.21. This doesn’t mean that this idea should escape from the laboratory right away, but it offers a fun glimpse into a potential future of hardware…
Adventures in Symbolic Algebra with Model Context Protocol
Personal blog of Stephen Diehl - Software engineer writing about technology, programming, and the future
Reproducing DeepSeek's MHC: When Residual Connections Explode
DeepSeek replaced standard residuals with massive Hyper-Connections, and then watched them explode. I reproduced the 9x signal amplification to understand their fix: the Sinkhorn-Knopp algorithm. Part 1 of 2.
Quirks of Common Lisp Types
Humans have a tendency toward binary thinking (pardon the pun). If it's not A, it's B. Perhaps because Lisps have REPLs, they are often thought of from the outside as being dynamic, interpreted languages. Our years of Python have taught us that such languages don't really have strong typing - it's all a wild guess…