Home/Shopify Engineering
Source

Shopify Engineering

305 articles from Shopify Engineering.

Engineering — Improving the Developer Experience with the Ruby LSP - Shopify

Improving the Developer Experience with the Ruby LSP - Shopify

The Ruby LSP is a new language server built at Shopify that makes coding in Ruby even better by providing extra Ruby features for any editor that has a client layer for the LSP. In this article, we’ll cover how we built the Ruby LSP, the features included within it, and how you can install it.

SEShopify Engineering·February 24, 2023Engineering
Career & Teams — The Case Against Monkey Patching, From a Rails Core Team Member - Shopify

The Case Against Monkey Patching, From a Rails Core Team Member - Shopify

Monkey patching is considered one of the more powerful features of the Ruby programming language. However, by the end of this post I’m hoping to convince you that they should be used sparingly, if at all, because they are brittle, dangerous, and often unnecessary. I’ll also share tips on how to use them as safely as possible in the rare cases where you do need to monkey patch.

SEShopify Engineering·February 21, 2023Career & Teams
Architecture — The 25 Percent Rule for Tackling Technical Debt - Shopify

The 25 Percent Rule for Tackling Technical Debt - Shopify

Let’s talk about technical debt. Let’s talk about practical usable approaches for actually paying it down on a daily, weekly, monthly, and yearly basis. Let’s talk about what debt needs to be fixed now versus what can wait for better planning.

SEShopify Engineering·February 16, 2023Architecture
Frontend — Bringing Javascript to WebAssembly for Shopify Functions - Shopify

Bringing Javascript to WebAssembly for Shopify Functions - Shopify

While we’re working on getting our Shopify Functions infrastructure ready for the public beta, we thought we’d use this opportunity to shine some light on how we brought JavaScript to WebAssembly, how we made everything fit within our very tight Shopify Function constraints, and what our plans for the future look like.

SEShopify Engineering·February 9, 2023Frontend
Performance — Ruby 3.2’s YJIT is Production-Ready - Shopify

Ruby 3.2’s YJIT is Production-Ready - 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.

SEShopify Engineering·January 17, 2023Performance
Frontend — Migrating our Largest Mobile App to React Native - Shopify

Migrating our Largest Mobile App to React Native - 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.

SEShopify Engineering·December 27, 2022Frontend
Engineering — Automatically Rotating GitHub Tokens (So You Don’t Have To) - Shopify

Automatically Rotating GitHub Tokens (So You Don’t Have To) - Shopify

GitHub personal access tokens (PATs) are like a key: a very, very large key that opens a very, very wide door. Long-lived tokens that have all the access of a developer’s account won’t just cause a leak—it’ll be a flood. Here’s how we rotate tokens automatically, and how you can do t too.

SEShopify Engineering·December 20, 2022Engineering
Distributed — Planning in Bets: Risk Mitigation at Scale - Shopify

Planning in Bets: Risk Mitigation at Scale - Shopify

What do you do with a finite amount of time to deal with an infinite number of things that can go wrong? This post breaks down a high-level risk mitigation process into four questions that can be applied to nearly any scenario in order to help you make the best use of your time and resources available.

SEShopify Engineering·December 6, 2022Distributed
Career & Teams — The Engineering Story Behind Flex Comp - Shopify

The Engineering Story Behind Flex Comp - Shopify

How we built Flex Comp: Shopify's new approach to compensation that gives employees the ability to choose how they want to allocate their total reward between base salary, Restricted Stock Units (RSUs), and Stock Options today, with new features like Shop Cash in the future.

SEShopify Engineering·October 5, 2022Career & Teams
Engineering — A Flexible Framework for Effective Pair Programming - Shopify

A Flexible Framework for Effective Pair Programming - Shopify

Pair programming is one of the most important tools we use while mentoring early talent in Shopify's Dev Degree program. It’s an agile software development technique where two people work together, either to share context, solve a problem, or learn from one another.

SEShopify Engineering·September 27, 2022Engineering
Systems — Four Approaches to Debugging Server-side WebAssembly - Shopify

Four Approaches to Debugging Server-side WebAssembly - Shopify

While it has many benefits for customizing business logic, WebAssembly poses new challenges when debugging. In this post, Jeff covers four approaches that can be taken to step debug code that will be running in a WebAssembly environment.

SEShopify Engineering·September 7, 2022Systems
Performance — When is JIT Faster Than A Compiler? - Shopify

When is JIT Faster Than A Compiler? - Shopify

I had this conversation over and over before I really understood it. It goes: “X language can be as fast as a compiled language because it has a JIT compiler!” “Wow! It’s as fast as C?” “Well, no, we’re working on it. But in theory, it could be even FASTER than C!” “Really? How would that work?” “A JIT can see what your code does at runtime and optimize for only that. So it can do things C can’t!”

SEShopify Engineering·August 11, 2022Performance