I'm a software engineer who builds highly-scalable developer tooling.

Seattle, WA
Joined September 2009
New blog post: "Is having a '.name' email address a good idea? Update #1" blog.waleedkhan.name/dot-nam…
1
54
New talk: "Commit graph data structures" blog.waleedkhan.name/commit-… Thanks to @engflow + @UberEng for hosting the Seattle build meetup (summer 2026) and providing the recording!
1
4
351
New* blog post: "🙏: please or thank you?" — blog.waleedkhan.name/please-… *Actually published for April Cools' 2026 aprilcools.club/
51
New talk: "Datalog DSL detects defective dependency declarations, defanging dodgy development discipline" — blog.waleedkhan.name/what-if… Presented at the Seattle Build Enthusiasts Meetup (autumn 2025).
1
5
182
New blog post: "Half my work is adding a cache" — blog.waleedkhan.name/half-my…
2
159
New blog post: "Lithe, less analysis with Datalog" — blog.waleedkhan.name/lithe-l…
1
4
174
New talk: "Searching source control graphs" — blog.waleedkhan.name/searchi… Presented at the Seattle Build Enthusiasts Meetup (summer 2025).
1
1
213
New* blog post: "Incremental processing with Watchman — don't daemonize that build!": blog.waleedkhan.name/increme… *Originally was a talk I gave at the Seattle Build Enthusiasts meetup on 2024-10-02, but I forgot to announce more widely
2
5
511
New blog post "Testing terminal user interface apps" blog.waleedkhan.name/testing…
125
New blog post "Encoding ML-style modules in Rust" blog.waleedkhan.name/encodin…
1
183
Ah, yes, the top three most-frequently-asked Git questions (git-scm.com/docs/gitfaq)
1
2
7
584
Overall, the official OCaml documentation is hard to take seriously
1
208
New in git-branchless v0.7.0: format all commits in a stack with `git test fix`: see github.com/arxanas/git-branc…. Unlike `git rebase`, it supports running in parallel, with no possibility of merge conflicts.
1
3
247
Started work at my new company, which is the first entity I've ever seen to actually use Git notes 👀. They store global revision numbering and build metadata.
1
5
460
New blog post: "Improving incremental test times in Rust" blog.waleedkhan.name/rust-in… #rustlang
1
4
262
I constantly find code that `rustfmt` silently stops formatting because its containing expression was too complex — and the option that would warn me (`error_on_line_overflow`) is unstable. I will not extract the lambda to `thread::scope` just because `rustfmt` is too scared 😤.
1
1
204