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 » -

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 » -

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 » -

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 » -

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 » -

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 » -

From RPC to gRPC: Understanding Modern Microservice Communication
Modern applications are increasingly built as collections of independently deployable services rather than as a single monolithic application. Microservices make…
Read More » -

Client-Server Communication: HTTP, REST, WebSockets, GraphQL, and gRPC
Modern software applications depend on communication between clients and servers. Every time a browser loads a webpage, a mobile application…
Read More »

