The architecture of a chess engine
A modern chess engine can evaluate millions of positions per second, yet most of its strength comes from surprisingly simple ideas: search, pruning, caching, and a relentless obsession with efficiency.
A modern chess engine can evaluate millions of positions per second, yet most of its strength comes from surprisingly simple ideas: search, pruning, caching, and a relentless obsession with efficiency.
Most React performance problems are really scheduling problems. A practical look at Fiber, reconciliation, and what actually happens after setState.
Modern financial exchanges move billions of dollars a day, yet the core matching engine comes down to a handful of data structures and a few unglamorous rules.
When a price moves, the screen has one job: show it before the trader notices the delay. A practical look at spending a latency budget across transport, processing, rendering and paint.
After enough profiling sessions you start to realise the language is rarely the bottleneck. Our assumptions usually are.
Most caching strategies look brilliant during architecture reviews and become considerably less impressive the first time stale data reaches production.
Modern JavaScript engines are astonishingly fast, but only because they spend most of their time pretending your code is better than it actually is.
Most explanations stop at the call stack and callback queue. The reality is more interesting, and explains many of the bugs engineers encounter in production.