Skip to content
View shaia's full-sized avatar

Highlights

  • Pro

Block or report shaia

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
shaia/README.md
Slow is Smooth — Shai Asher

Shai Asher

Systems programmer. 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.

Blog Email Project Euler


Selected work

Numbers below are from the benchmarks in each repo, not estimates.

Project What it is Measured
BloomFilter
Go AVX2 NEON
Lock-free SIMD Bloom filter. Zero allocations on the hot path, 64-byte aligned, atomic CAS instead of locks. 26 ns add · 23 ns contains
3–4× faster than willf/bloom
SIMDCuckooFilter
Go AVX2 NEON
Cuckoo filter with hand-written assembly for bucket probing on x86-64 and ARM64. 3–4× scalar (AVX2)
2–3× scalar (NEON)
tributary
C++20 header-only
Many-producer → one-consumer fan-in over bounded SPSC rings. A producer never blocks; overload drops and counts instead. 22–29 ns push, flat from 4 to 32 threads
3.87× throughput at 4 consumers
CFD
C11 OpenMP CUDA
2D/3D incompressible Navier–Stokes solver. Multigrid, RANS turbulence, four backends. Validated against Ghia lid-driven cavity,
Taylor–Green, and channel flow at Reτ=395

Also building: thermolab and wavelab — interactive bilingual (EN/HE) university physics courses running entirely in the browser on JupyterLite.


Writing

I write up the optimisation work in long form — the wrong turns included.


Crack the code

Level 1 — The systems check (C)
main(){int i=1801675112;puts(&i);}
Reveal

hack — it prints the integer's bytes as ASCII: 0x6B636168h a c k.

Level 2 — The logic gate

If slow is smooth and smooth is fast, how much time is lost by rushing?

Reveal

All of it. Rushing creates mistakes, mistakes require fixing, fixing takes time.

Level 3 — The hidden flag

Somewhere on this page is a message that isn't rendered. Inspect the source, you must.

Reveal

Shell we play a game? — base64, in an HTML comment.


Contribution graph

Commit calendar and language breakdown

Pinned Loading

  1. CFD CFD Public

    Production-grade C11 solver for 2D/3D incompressible Navier-Stokes. Multigrid, RANS turbulence, SIMD/OpenMP/CUDA backends.

    C 1 1

  2. BloomFilter BloomFilter Public

    Lock-free SIMD Bloom filter for Go. Zero allocations on the hot path, cache-line aligned, 3-4x faster than willf/bloom.

    Go

  3. cfd-visualization cfd-visualization Public

    Python library for visualizing CFD results from VTK output - field computation, flow analysis, plotting, and a batch CLI.

    Python

  4. SIMDCuckooFilter SIMDCuckooFilter Public

    Cuckoo filter for Go with hand-written AVX2 and NEON assembly for bucket probing. Thread-safe, zero dependencies.

    Go

  5. eisenhower-matrix-addin eisenhower-matrix-addin Public

    Free Gmail and Outlook add-in that triages your inbox with the Eisenhower Matrix.

    HTML

  6. cfd-python cfd-python Public

    Python bindings for the CFD library through the CPython C-API with stable ABI (abi3). SIMD, OpenMP and CUDA from Python.

    Python