Blogs / Company blogs

Rails at Scale

railsatscale.com

The Ruby and Rails Infrastructure team at Shopify exists to help ensure that Ruby and Rails are 100-year tools that will continue to merit being our toolchain of choice.

Popular posts
13
Total points
2,862
HN comments
1,220
Rank
#415 company

Visit railsatscale.com → RSS feedOn Hacker News Jun 2023 – Sep 2025

Software Engineering 13Systems & Performance 9Tools & Productivity 2Programming Languages 1AI & Machine Learning 1

1

Rewriting the Ruby parser

At Shopify, we have spent the last year writing a new Ruby parser, which we’ve called YARP (Yet Another Ruby Parser). As of the date of this post, YARP can parse a semantically equivalent syntax tree to Ruby 3.3 on every Ruby file in Shopify’s main codebase, GitHub’s main codebase, CRuby, and the 100 most popular gems…

4

YJIT is the most memory-efficient Ruby JIT

This year, the YJIT team and I have gotten a paper accepted at MPLR 2023 (Managed Programming Languages and Runtimes), which is now freely available through ACM open access. The paper, titled “Evaluating YJIT’s Performance in a Production Context: A Pragmatic Approach”, goes into details of the strategy taken to…

6

Ruby 3.3's YJIT: Faster While Using Less Memory

This year, the YJIT team has been working hard to improve and optimize YJIT. We’re proud to say that the version of YJIT to be included with Ruby 3.3 is leaps and bounds ahead of Ruby 3.2’s. It provides better performance across the board, while also warming up faster and using less memory. The 3.3 release is also…

7

Autotuner: How to speed up your Rails app

Ruby’s garbage collector is designed to be adaptable, scaling from short Ruby scripts to running apps that serve millions of requests per second. While it’s designed to be adaptable, it may not work optimally for every use case. For this reason, Ruby’s garbage collector supports many parameters that can be used to…

10

JIT-optimized Ruby can outperform a C extension

YJIT’s ability to improve performance by adapting to run-time behavior can increase the speed of our code in a way that dropping down to C can’t. As such, I think we should reconsider the common wisdom that “rewriting our Ruby in C” is the ideal path to performance optimization and take a serious look at “rewriting…