Peter Zhu
@peterzhu.ca
Staff Developer at Shopify. Ruby core committer. Photography geek. Mastodon: @peterzhu2118@ruby.social Instagram: @peterzhu.photos
Honored to give my talk at #RubyKaigi this year! Slides are available here: blog.peterzhu.ca/assets/rubyk...
“Your proposal for RubyKaigi 2026 has been accepted” See you in Hakodate!
Ruby has a new moving GC. I just merged moving Immix in the MMTk Ruby binding. This is exciting as its the first GC that dynamically detects fragmentation in the heap and performs defragmentation. Performance isn't too great yet but I'm working on it! github.com/ruby/ruby/pu...
Implement moving Immix in MMTk by peterzhu2118 · Pull Request #15744 · ruby/ruby
This commit implements moving Immix in MMTk, which allows objects to move in the GC. The performance of this implementation is not yet amazing. It is very similar to non-moving Immix in many of the...
github.com
I implemented Ruby's heap algorithm in MMTk in a day and 100 lines. Ruby's default GC is 10k+ lines. This doubles MMTk's performance from over 2x slower to almost on par. And I still haven't unlocked MMTk's true powers like generational GC or moving GC. github.com/ruby/mmtk/pu...
Implement Ruby heap by peterzhu2118 · Pull Request #54 · ruby/mmtk
This heap emulates the growth characteristics of the Ruby default GC's heap. By default, the heap grows by 40%, requires at least 20% empty after a GC, and allows at most 65% empty before it sh...
github.com
I wrote about some of my thoughts on the lessons we can learn from the RubyGems situation and how we can move forward. blog.peterzhu.ca/open-source-...
Open Source is the Most Fragile and Most Resilient Ecosystem - Peter Zhu
Some of my thoughts on the lessons we can learn from the RubyGems situation and how we can move forward.
blog.peterzhu.ca
I tried to explain why I don't believe the recent accusations toward my former teammates, as well as how the Ruby and Rails Infra team at Shopify operates and why it can be trusted. byroot.github.io/opensource/r...
Dear Rubyists: Shopify Isn’t Your Enemy
I’ve been meaning to write a post about my perspective on Open Source and corporate entities. I already got the rough outline of it; however, I’m suffering from writer’s block, but more importantly, t...
byroot.github.io
I’m excited to share that I’m starting as a Staff Developer at Figma!
Friday was my last day of an incredible journey at Shopify. In the past 5 years, I had the privilege of working on some cutting edge projects to advance Ruby with some of the most talented and well-known developers. Shopify will always have a very special place in my heart.
Shopify sponsors and collaborates with academia to take Ruby to new heights. We're working with Australian National University to integrate Memory Management Toolkit into Ruby. Earlier this year, we published a paper about it. Today, we wrote a blog post: railsatscale.com/2025-09-16-r...
Reworking Memory Management in CRuby
Shopify sponsors and collaborates with academia to take Ruby to new heights. In this post, we give an overview of what we’ve built in collaboration with the Australian National University.
railsatscale.com
Honored to give a talk at #RailsWorld again, on the same stage 2 years later. The recording should be up in a few weeks but you can find the slides here in the meantime: blog.peterzhu.ca/assets/rails...
At the ISMM conference today we presented our paper about our contributions to Ruby’s garbage collector. This was the result of a multi-year collaboration between researchers at the Australian National University and Shopify. Read it here: blog.peterzhu.ca/assets/ismm_...
blog.peterzhu.ca
I just published "Implementing Embedded TypedData Objects" about a feature @byroot.bsky.social and I worked on for Ruby 3.3. A bit late, but better than never. railsatscale.com/2025-06-03-i...
Implementing Embedded TypedData Objects
We implemented a new feature to TypedData objects in Ruby, called embedded TypedData objects. TypedData objects are used across a wide variety of Ruby types, such as Time, Enumerator, and Method. This...
railsatscale.com
My RubyKaigi talk recording is up on YouTube! youtube.com/watch?v=04ax...
[EN] Modular Garbage Collectors in Ruby / Peter Zhu @peterzhu2118
YouTube video by RubyKaigi
youtube.com
Excited to be giving a talk at Rails World this year! rubyonrails.org/world/2025/d...
Rails World 2025 - Amsterdam, NL — Ruby Stability at Scale
A web-app framework that includes everything needed to create database-backed web applications according to the Model-View-Controller (MVC) pattern.
rubyonrails.org
If you missed it, my recent #rubykaigi talk “Modular Garbage Collectors in Ruby” covered: ⚙️ Features the current Ruby GC lacks 🔄 Implementation of the Modular GC feature in Ruby 3.4 🔨 What MMTk is and the integration with Modular GC The recording will be up in a few months!
Thanks for coming to my talk at @rubykaigi today. My slides are available at blog.peterzhu.ca/assets/rubyk... We’re also hiring Ruby and Rails developers at Shopify! www.shopify.com/careers
blog.peterzhu.ca
Come to my #rubykaigi talk today at 3:40 to look at the modular garbage collectors feature in Ruby 3.4. We’ll discuss what it is, how it’s implemented, and how we’re implementing MMTk using modular GC. Hope to see you there! rubykaigi.org/2025/present...
Modular Garbage Collectors in Ruby
RubyKaigi 2025, #rubykaigi
rubykaigi.org
Your proposal for RubyKaigi 2025 has been accepted See you on Matsuyama!
Merry Christmas everyone! Ruby 3.4 ships with Modular GC, an experimental feature we're actively working on. Modular GC provides an API for GC implementations and allows you to switch garbage collectors at boot time. For more details, see github.com/ruby/ruby/bl...
github.com