Dave Kilian's Blog
About
Blog
CV
GitHub
Consensus, FLP and Paxos
October 2023
Performance, Iteratively
August 2023
What FLP Tells Us, and Why It Matters
June 2023
Paxos, Abridged to the Point of Usefulness
March 2023
The Equity Compensation Hack
March 2023
Log-Structured Merge on Flash
March 2023
Atomics Cut Content
February 2023
Inversions are Hard: The Monty Hall Problem
October 2022
Elegance and Overfitting
October 2022
Cantor and Contradictions
January 2022
Queuing in Distributed Systems
March 2021
Profiling on Windows
March 2021
RDMA (deprecated)
February 2021
Let's Design RDMA
February 2021
Solid State Drives
January 2020
Log-Structured Merge
January 2020
Modern Storage Systems
January 2020
All Abstractions Hide, Good Abstractions Handle
December 2019
Effective Git
January 2018
Path Tracing
October 2017
Meta-Planning
September 2017
How to Evaluate Designs
July 2017
Testing is Part of Your Design
July 2017
Fill Rates
September 2016
Bugs and Exponents
August 2016
What is Everyone Else Missing?
June 2016
Fundamentals of Software Design
June 2016
A Million Micro Decisions (and no time to make them)
June 2016
How Computers Work
June 2016
Using Patterns
June 2016
Beware of Accidental Symmetry
February 2016
Lisp's Big Idea
February 2016
Data vs Computation in Programming
December 2015
The Simplest Code is the Most Extensible
November 2015
Errors, Contracts and Generality
November 2015
Software is Eating Silicon Valley
November 2015
Floating Point is Deterministic
November 2015
Incentives, Accountability and Team Politics
October 2015
Unity Programmer Quickstart
August 2015
The Web is a Series of Hacks
July 2014
The Unreasonable Effectiveness of Mathematics
July 2014
A Layman's Guide to JavaScript Objects
February 2014
Skyboxes
December 2012
A Sampling Overview
September 2012
Writing Programs for GPUs and CPUs
September 2012
Multiplayer II – Client / Server Architecture
September 2012
Multiplayer I – Introduction
September 2012
(hide draft posts)
© Dave Kilian 2012-2024