Ibraheem Ahmed
ibraheem.ca
Ibraheem Ahmed
@ibraheem.ca
Software developer interested in building fast, concurrent, and robust systems.

@ibraheemdev on twitter.
I think teaching barriers first would reinforce the "nothing can be reordered past this barrier" idea, instead of the barrier being a way to *upgrade* a subsequent store to release the memory preceding the barrier. Reordering kind of misses the entire point of how atomic synchronization works.
June 19, 2025 at 7:03 PM
I really dislike the idea of teaching atomic orderings in terms of potential compiler/hardware reordering optimizations. That's not how the spec defines them, and that mental model can get problematic quickly. Atomic orderings prescribe visibility relationships that are actually pretty intuitive.
June 19, 2025 at 3:52 AM
Very high quality code here too
January 18, 2025 at 2:53 AM
Unfortunately all of my short blog post ideas evolve into books
January 8, 2025 at 12:55 AM
January 5, 2025 at 8:43 AM
I wonder if the bitmask approach of github.com/cloudflare/t... has any potential here?
December 25, 2024 at 9:11 AM
There's a 10us state machine based solution on a local Discord leaderboard 😄.
December 2, 2024 at 8:34 PM
If you go in windows of three you can try cheating once by skipping the middle item, and every iteration after that you compare the last two items in the tuple instead of the first two. Though if you do it this way you need to handle skipping the first and second items as a separate case.
December 2, 2024 at 7:40 PM
I see, does your implementation essentially translate '.' to '/'?
November 21, 2024 at 5:38 PM
Libraries like github.com/ibraheemdev/... are probably the best middle ground because it allows people who don't want async to still benefit from the ecosystem. It will be slower but unless someone is willing to write a professional grade synchronous HTTP 1/2/3 implementation, it's your best option.
GitHub - ibraheemdev/astra: Rust web servers without async/await.
Rust web servers without async/await. Contribute to ibraheemdev/astra development by creating an account on GitHub.
github.com
November 21, 2024 at 5:08 PM
Async might be a net negative for a lot of people, but unfortunately those people are also less likely to be investing time into maintaining quality infrastructure for synchronous code, so it's kind of of an impossible problem.
November 21, 2024 at 5:04 PM
Would this "just work" if matchit supported parameters with static prefixes? e.g. `/{foo}.bar`

I have a work in progress PR that implements this github.com/ibraheemdev/... but it needs some more work for conflict handling
November 21, 2024 at 4:30 PM
Do I spy matchit's new routing syntax?
November 21, 2024 at 3:29 PM
I wrote a bit about the design of papaya here: ibraheem.ca/posts/design.... This release will mostly be microoptimizations that contribute to a ~15% performance improvement.
November 17, 2024 at 9:37 PM
I think there's room for everyone to be more open about async not being the end all and be all of performance.
November 16, 2024 at 8:11 PM
There is a little bit of nuance around async being more expensive at lower concurrency and async synchronization primitives being more complex. async-sync interop is not free, and so there is a cost on users forced to use an async library in a synchronous context.
November 16, 2024 at 8:11 PM
You missed the "Windows CI is failing though"
November 16, 2024 at 8:03 PM
Maybe! Though papaya's higher baseline memory usage would be an important consideration.
November 16, 2024 at 7:48 PM