Designing Software that Maximizes Developer Productivity. Learn how Shopify took its code base from monolith to modular monolith.| Shopify
How we shipped ES module integrity in browsers and made commerce and the web better for everyone!| Shopify
This article is going to be a crash course in what Nix is, how to think about it, and why it's such a valuable and paradigm-shifting piece of technology.| Shopify
As an integral part of Shopify's ecosystem, our mobile app serves millions of merchants around the world every single day. It allows them to run their business from anywhere and offers vital insights about store performance, analytics, orders, and more. Given its high-engagement nature, users frequently return to it, underscoring the importance of speed and efficiency. At the beginning of 2023, we noticed that our app's performance had decreased since we started migrating to React Native. Rec...| Shopify
Packwerk is an open source static analysis tool used to enforce boundaries between groups of Ruby files we call packages.| Shopify
Shop app horizontally scaled a Ruby on Rails app with Vitess. This blog describes Vitess and our detailed approach for introducing Vitess to a Rails app.| Shopify
We reevaluated our existing product categorization model to ensure we’re understanding what our merchants are selling, to build the best products that help power their sales.| Shopify
It’s been 18 months since we talked about our Rails modular monolith. We lay out the current state of the work, and things we’d do differently if we started again.| Shopify
YJIT, a just-in-time (JIT) implementation on top of CRuby built at Shopify, is now production-ready and delivering major improvements to performance and speed. Maxime shares the updates that have been made in this newest version of YJIT, and future plans for further optimization.| Shopify
At the beginning of this year, we ran several experiments aimed at reducing the latency impact of the Ruby garbage collector (GC) in Shopify's monolith. In this article, Jean talks about the changes we made to improve GC performance, and more importantly, how we got to these changes.| Shopify
Passkeys are a new login credential based on public-key cryptography that replace the need for username and password sign-ins.| Shopify
In 2020, we announced that React Native is the future of mobile at Shopify. As part of that journey, we’ve been migrating Shopify Mobile (our largest app at 300 screens per platform) from native to React Native. Here’s how it’s going.| Shopify
Shopify is improving CRuby’s performance in Ruby 3.2 by optimizing the memory layout in the garbage collector through the Variable Width Allocation project.| Shopify
Shopify is adopting Rust as our systems programming language, and joining the Rust Foundation.| Shopify
Shopify shares some of the lessons we learned and solutions we built in order to run Airflow at scale.| Shopify
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.| Shopify