
Shai Asher
Go, C, C++ and assembly — concurrency, SIMD, and the parts of the runtime most people never have to think about. I make hot paths measurably faster, and I write down how.
Selected work
Lock-free SIMD Bloom filter. Zero allocations on the hot path, 64-byte aligned buckets, atomic CAS instead of locks.
Cuckoo filter with hand-written assembly for bucket probing on x86-64 and ARM64. No dependencies beyond the standard library.
Many producers, one river. Fan-in from many threads to one or more consumers over bounded SPSC rings — a producer never blocks, and an overload burst is dropped and counted rather than queued.
2D/3D incompressible Navier–Stokes solver. Geometric multigrid, k-ε and Spalart–Allmaras turbulence, four interchangeable backends.
Interactive bilingual (English / Hebrew) university courses in thermal and statistical physics, and in waves and optics — notebooks and labs that run entirely in the browser.
Writing
I write up the optimisation work in long form — the wrong turns included.
- The cache was working perfectly. That was the problem.
- The Bloom Filter Optimization Saga: The "Benign" Read That Wasn't
- Finding Errors in Log Streams
- The Bloom Filter Optimization Saga: A Deep Dive into Go Assembly and AVX2
- The Bloom Filter Optimization Saga: Anatomy of a Go Concurrency Bug - Part 2
Subscribe
New posts by email. Long-form optimisation writeups, a few times a year. No tracking, no other mail, one click to leave.
Or take the RSS feed — the whole archive, an opening summary and a link for each post.
Shai Asher