Joshua Young

@joshuay03.bsky.social

Senior Software Engineer at Buildkite, OSS contributor, Rails Issues team member, Puma and Concurrent Ruby maintainer, and RubyGems on-call volunteer.

concurrent-ruby 1.3.6 is released: github.com/ruby-concurr... It automatically prunes unused threads of a thread pool even when no new work is queued, migrates away from the deprecated "non-typed data" C API and includes several bug fixes.

Release v1.3.6 · ruby-concurrency/concurrent-ruby

What's Changed Run tests without the C extension in CI by @eregon in #1081 Fix typo in Promise docs by @danieldiekmeier in #1083 Correct word in readme by @wwahammy in #1084 Fix mistakes in MVar d...

github.com

I really shouldn't be sharing teasers given how much work's left to do, and the good chance that this becomes another forgotten experiment, but I'm pretty happy with how far I got with barely any tuning (compared to the 20-year battle-tested Puma, which I've taken some inspiration from <3). 1/5

Bild

I'm building something with Ractors and found a bug. Tried my best™️ to fix it: github.com/ruby/ruby/pu... Side note: Might just be me, but as a non-frequent contributor, building ruby/ruby and running tests seems to be much more convenient and efficient than it was a couple years ago.

Fix segfault when moving nested objects between ractors during GC by joshuay03 · Pull Request #14947 · ruby/ruby

Fixes a segmentation fault when moving nested objects between ractors with GC stress enabled and YJIT. The issue appears to be a timing problem in the ractor move process. When moving objects, move...

github.com

Satisfying memory and CPU improvements after enabling Puma preloading + Process.warmup on one of Buildkite's services (our agent shard). Just rolled this out to all services - keen to see the broader impact!

Bild

Announcing Dial, a Rails application profiler: github.com/joshuay03/dial I've longed for a free tool that provides Datadog-like profiles, with accurate GVL and GC activity. Thanks to @jhawthorn.com's amazing work on Vernier, all I needed to do was integrate it with Rails and let it do its thing.

GitHub - joshuay03/dial: A modern profiler for your Rails application

A modern profiler for your Rails application. Contribute to joshuay03/dial development by creating an account on GitHub.

github.com

Random thought about Ruby thread scheduling fairness that I don't have sufficient knowledge of the VM to answer myself—without probably banging my head against a wall for a couple of days or weeks 🧵