Shopify Engineering

How Shopify Dynamically Routes Storefront Traffic

How Shopify Dynamically Routes Storefront Traffic

In 2019 we set out to rewrite the Shopify storefront implementation. Our goal was to make it faster. We talked about the strategies we used to achieve that goal in...

How Shopify Dynamically Routes Storefront Traffic

In 2019 we set out to rewrite the Shopify storefront implementation. Our goal was to make it faster. We talked about the strategies we used to achieve that goal in...

Building Smarter Search Products: 3 Steps for Evaluating Search Algorithms

Building Smarter Search Products: 3 Steps for E...

By Jodi Sloan and Selina Li Over 2 million users visit Shopify’s Help Center every month to find help solving a problem. They come to the Help Center with different...

Building Smarter Search Products: 3 Steps for E...

By Jodi Sloan and Selina Li Over 2 million users visit Shopify’s Help Center every month to find help solving a problem. They come to the Help Center with different...

How to Build a Web App with and without Rails Libraries

How to Build a Web App with and without Rails L...

How would we build a web application only using the standard Ruby libraries? In this article, I’ll break down the key foundational concepts of how a web application works while...

How to Build a Web App with and without Rails L...

How would we build a web application only using the standard Ruby libraries? In this article, I’ll break down the key foundational concepts of how a web application works while...

Remove Circular Dependencies by Using Dependency Injection and the Repository Pattern in Ruby

Remove Circular Dependencies by Using Dependenc...

There are dependencies between gems and the platforms that use them. In scenarios where the platforms have the data and the gem has the knowledge, there is a direct circular...

Remove Circular Dependencies by Using Dependenc...

There are dependencies between gems and the platforms that use them. In scenarios where the platforms have the data and the gem has the knowledge, there is a direct circular...

Capturing Every Change From Shopify’s Sharded Monolith

Capturing Every Change From Shopify’s Sharded M...

Shopify is moving from existing query-based CDC (Change-Data Capture) tooling (Longboat) to an immutable, append-only, log-based mechanism. This has required a complete re-platforming, involving a shift to new, open source...

Capturing Every Change From Shopify’s Sharded M...

Shopify is moving from existing query-based CDC (Change-Data Capture) tooling (Longboat) to an immutable, append-only, log-based mechanism. This has required a complete re-platforming, involving a shift to new, open source...

Updates on Shopify’s Bug Bounty Program

Updates on Shopify’s Bug Bounty Program

For three years we, Shopify’s Application Security team, have set aside time to reflect on our bug bounty program and share recent insights. This past year has been quite a...

Updates on Shopify’s Bug Bounty Program

For three years we, Shopify’s Application Security team, have set aside time to reflect on our bug bounty program and share recent insights. This past year has been quite a...