To Thread or Not to Thread: An In-Depth Look at Ruby’s Execution Models
An in-depth look at threads vs processes in Ruby web applications, and when you should use each.
Implementing Equality in Ruby
Ruby is one of the few programming languages that get equality right. I often play around with other languages, but keep coming back to Ruby. This is largely because Ruby’s implementation of equality is so nice.
Nonetheless, equality in Ruby isn't straightforward. There is #==, #eql?, #equal?, #===, and more. Even if you’re familiar with how to use them, implementing them can be a whole other story.
Let's walk through all forms of equality in Ruby and how to implement them.
Our Experience Porting the YJIT Ruby Compiler to Rust
In this post, I want to give a nuanced perspective on our experience porting YJIT from C to Rust. I'll talk about the positives, but also discuss the things that we found challenging or suboptimal in our experience.
Code Ranges: A Deeper Look at Ruby Strings
An informal look at what makes encoding-aware strings in Ruby functional and performant, providing insight into all the wonderful things the Ruby VM does.
How We Fixed the Dependency Confusion Vulnerability in Over 600 Ruby Applications
How Shopify solved the dependency confusion vulnerability in over 600 Ruby applications and created tailored large-scale migration tooling to make it easier.