Skip to content
View mustafanofl32's full-sized avatar

Block or report mustafanofl32

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.

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
mustafanofl32/README.md

Hi, I'm Mostafa

Software engineer. I build things that measure themselves — and I write down what the measurements can't tell you.


What I'm working on

keel — a key-value store that proves its crash safety by crashing

Every database claims to be crash safe, and almost none of them let you watch it fail — because the failure is a process dying partway through a disk write, which a test running inside a live process cannot reach. keel kills the writer at every write boundary, four times each: before it, halfway through, one byte short of finishing, and immediately after. 772 kills, 772 verified recoveries, and the weakest durability level is shown losing the writes its contract permits it to lose.

Go · 772 process kills per run · 11 corruption mutations · zero dependencies · runs from one binary


pulse — privacy-first web analytics

Counting unique visitors normally means storing something durable about a person: a cookie, a fingerprint, or their IP. Pulse identifies a visitor as a hash of a salt that is deleted every 24 hours, so cross-day tracking isn't a policy it promises to follow — it's not computable from the data it holds.

TypeScript Next.js 15 PostgreSQL Drizzle · 149 unit tests · 6 end-to-end · Docker · CI


gauge — LLM evaluation with statistical honesty

Most eval tools run a test once and print a pass rate. That number is one draw from a distribution. gauge samples every case, reports a confidence interval beside every rate, and only calls something a regression when a significance test says so — because a tool that flags 4/5 → 3/5 gets switched off within a week.

TypeScript Node · 219 tests · zero runtime dependencies · runs with no API key


How I work

Every non-obvious decision in both repos has a written record: what was chosen, what it costs, and what was rejected. A few examples of what that looks like in practice:

  • "Unique visitors reset at midnight. Two colleagues behind one office NAT count as one person. This is a good trend and a poor census." — pulse, ADR-0001

  • "Multiple comparisons are not corrected. With 20 cases at α=0.05, expect roughly one false flag per run." — gauge, ADR-0002

  • "A killed process is not a power cut. The kernel keeps everything it was handed, so these runs say nothing about what the drive does after fsync returns." — keel, ADR-0005

Every one of these projects found real bugs through its own tooling, and each says so in public. On pulse, CI caught a query that worked locally and crashed on production PostgreSQL — presenting as a blank dashboard with no error mentioning dates. On gauge, my own CI check was written backwards and passed for the wrong reason until I read why it passed. On keel, a corruption test proved the record format could not tell bit rot from an interrupted write, and a counter proved that group commit — which I had already written, reviewed, and believed — was never coalescing anything at all.

I think that's the interesting part of engineering. Anyone can ship green.


Tools

Languages Go · TypeScript · JavaScript · SQL · Java Web Next.js · React · Node Data PostgreSQL · Drizzle · Redis · write-ahead logs Practice Vitest · Playwright · Docker · GitHub Actions · fault injection


📍 Jordan · Open to opportunities

Pinned Loading

  1. gauge gauge Public

    Evaluate LLM outputs with statistical honesty. Confidence intervals on every rate. Regressions confirmed by significance testing.

    TypeScript

  2. pulse pulse Public

    Privacy-first, cookieless web analytics. 1.6KB tracker, no cookies, no stored IPs.

    TypeScript