-
Software Development

The Halting Problem’s Quiet Relevance to Static Analysis Tools
Why your linter can never be complete, and why that is not a bug in the tool but a theorem…
Read More » -
Software Development

The Byzantine Generals Problem and Why Most Systems Don’t Need Byzantine Fault Tolerance
Crash faults and Byzantine faults are not the same problem, and reaching for blockchain-grade guarantees inside a trusted internal network…
Read More » -
Software Development

The CALM Theorem: When Distributed Consistency Doesn’t Need Coordination
The theory behind why some distributed computations are safely coordination-free, and how to spot which ones are. Every distributed systems…
Read More » -
Software Development

Swift’s Ownership And Noncopyable Types
For nearly a decade, Swift’s relationship to memory looked settled. Classes were reference-counted automatically, structs and enums were copied freely,…
Read More » -
Software Development

DuckDB And The Embedded Analytical Database Trend
For most of the history of data warehousing, running a serious analytical query meant talking to a server somewhere: a…
Read More » -
Software Development

The Language Server Protocol: The Quiet Standardization of Developer Tooling
Most developers today take it for granted that opening a Rust file in VS Code gives them autocomplete, go-to-definition, and…
Read More » -
Core Java

Haskell’s Monads Outside Academia: A Plain-Language Guide
Ask ten developers what a monad is, and you will likely get ten different answers, most of them nervous. The…
Read More » -
Core Java

G1’s Own Throughput Fix: JEP 522 and the Quiet Death of “G1 Trades Throughput for Latency”
For a decade and a half, “G1 gives up some throughput for lower pause times” has been treated as a…
Read More »

