https://shopify.engineering/blog.atom Shopify Engineering - Shopify Engineering 2024-03-05T15:37:37-05:00 Shopify Engineering https://shopify.engineering/improving-shopify-app-s-performance 2024-03-05T15:37:37-05:00 2024-03-05T15:37:37-05:00 Improving Shopify App’s Performance Talha Naqvi https://shopify.engineering/a-packwerk-retrospective 2024-02-07T16:40:35-05:00 2024-02-07T16:40:36-05:00 A Packwerk Retrospective Gannon McGibbon https://shopify.engineering/horizontally-scaling-the-rails-backend-of-shop-app-with-vitess 2024-01-17T15:34:53-05:00 2024-02-08T15:00:28-05:00 Horizontally scaling the Rails backend of Shop app with Vitess Hammad Khalid 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.

More

]]>
https://shopify.engineering/getting-started-with-react-native-skia 2023-12-04T10:00:03-05:00 2023-12-04T10:00:03-05:00 Getting Started with React Native Skia Daniel Friyia https://shopify.engineering/introducing-ruvy 2023-10-18T09:43:29-04:00 2023-10-18T09:43:29-04:00 Introducing Ruvy Jeff Charles https://shopify.engineering/building-a-shopifyql-code-editor 2023-09-11T10:02:54-04:00 2023-09-12T15:36:03-04:00 Building a ShopifyQL Code Editor Trevor Harmon https://shopify.engineering/sidekicks-improved-streaming 2023-08-01T16:08:07-04:00 2023-08-02T12:34:49-04:00 Sidekick’s Improved Streaming Experience Ateş Göral https://shopify.engineering/shopifys-platform-is-the-web-platform 2023-07-26T11:51:33-04:00 2023-07-31T09:27:19-04:00 Shopify’s platform is the Web platform Surma https://shopify.engineering/contributing-support-for-a-wasm-instruction-to-winch 2023-07-18T16:17:28-04:00 2023-07-18T16:17:28-04:00 Contributing support for a Wasm instruction to Winch Jeff Charles Jeff Charles, a Senior Shopify Developer, shares key learnings from his successful pull request to Winch. The pull request aimed to add support for various WebAssembly instructions to Wasmtime's baseline (non-optimizing) compiler.

More

]]>
https://shopify.engineering/creating-a-flexible-order-routing-system-with-shopify-functions 2023-04-13T09:30:00-04:00 2023-04-13T09:30:00-04:00 Creating a Flexible Order Routing System with Shopify Functions Ebun Segun In this article, I’ll cover how we added flexibility to our previous one-size-fits-all order routing system with the introduction of “routing rules”, and how we dogfooded our own Shopify Functions feature to give merchants the ability to create their own routing rules.

More

]]>
https://shopify.engineering/adventures-in-garbage-collection 2023-04-06T10:30:00-04:00 2023-04-13T11:31:32-04:00 Adventures in Garbage Collection: Improving GC Performance in our Massive Monolith Jean Boussier 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.

More

]]>
https://shopify.engineering/react-redux-toolkit-migration 2023-03-31T09:30:02-04:00 2023-03-31T09:30:02-04:00 How Migrating from Vanilla Redux to Redux Toolkit Improved State Management in Shopify POS Daniel Friyia A look at Shopify’s experience improving state management in the Shopify POS app by migrating from a Vanilla Redux codebase to Redux Toolkit one.

More

]]>
https://shopify.engineering/what-being-a-staff-developer-means-at-shopify 2023-03-29T10:00:01-04:00 2023-03-29T10:45:42-04:00 What Being a Staff Developer Means at Shopify Rose Wiegley staff developer is an adaptable engineering leader that's comfortable working with ambiguity.

More

]]>
https://shopify.engineering/supporting-passkeys-in-shop-authentication-flows 2023-03-24T09:00:01-04:00 2023-03-24T09:00:01-04:00 Supporting Passkeys in Shop's Authentication Flows Abraão (Abe) Lourenço Passkeys are a new login credential based on public-key cryptography that replace the need for username and password sign-ins.

More

]]>
https://shopify.engineering/internationalization-i18n-best-practices-front-end-developers 2023-03-16T14:19:33-04:00 2023-03-16T17:38:22-04:00 Lessons From Linguistics: i18n Best Practices for Front-End Developers Lucas Huang

Here are a few internationalization (i18n) best practices to help front-end developers avoid errors and serve more robust text content on multilingual websites and apps.

More

]]>
https://shopify.engineering/shopify-tophat-mobile-developer-testing 2023-03-14T10:30:00-04:00 2023-03-15T14:10:27-04:00 Tophat: Crafting a Delightful Mobile Developer Experience Lukas Romsicki More

]]>
https://shopify.engineering/shopifys-machine-learning-platform-real-time-predictions 2023-03-10T11:16:27-05:00 2023-03-27T11:38:44-04:00 Unlocking Real-time Predictions with Shopify's Machine Learning Platform Isaac Vidas Learn how Shopify Data built new online inference capabilities into its Machine Learning Platform to deploy and serve models for real-time prediction at scale.

More

]]>
https://shopify.engineering/improving-the-developer-experience-with-ruby-lsp 2023-02-24T09:00:01-05:00 2023-02-24T09:00:01-05:00 Improving the Developer Experience with the Ruby LSP Vinicius Stock 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. 

More

]]>
https://shopify.engineering/the-case-against-monkey-patching 2023-02-21T09:00:04-05:00 2023-02-21T13:22:05-05:00 The Case Against Monkey Patching, From a Rails Core Team Member Eileen Uchitelle

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.

More

]]>
https://shopify.engineering/technical-debt-25-percent-rule 2023-02-16T12:00:01-05:00 2023-02-16T12:00:01-05:00 The 25 Percent Rule for Tackling Technical Debt John DeWyze 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.

More

]]>
https://shopify.engineering/building-commerce-data-models-with-shopifyql 2023-02-14T11:00:04-05:00 2023-04-19T10:17:03-04:00 ShopifyQL Notebooks: Simplifying Querying with Commerce Data Models Cody Mazza-Anthony We recently released ShopifyQL Notebooks, a powerful self-serve tool which enables merchants to explore their business metrics without any SQL expertise. Here’s how we used ShopifyQL and commerce data models to make it possible.

More

]]>
https://shopify.engineering/javascript-in-webassembly-for-shopify-functions 2023-02-09T09:00:02-05:00 2023-02-09T11:54:44-05:00 Bringing Javascript to WebAssembly for Shopify Functions Surma 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.

More

]]>
https://shopify.engineering/complex-data-models-behind-shopify-tax-insights 2023-02-08T10:00:04-05:00 2023-02-08T10:38:00-05:00 The Complex Data Models Behind Shopify's Tax Insights Feature Siraj Ali building  functionality to handle dynamically changing information

More

]]>
https://shopify.engineering/the-hardest-part-of-writing-tests-is-getting-started 2023-02-02T10:30:00-05:00 2023-02-02T10:30:00-05:00 The Hardest Part of Writing Tests is Getting Started Jack Reichert The hardest part of writing tests is setting things up. Full test suites have a lot of complicated helper tools, stubs, and fixtures. They’re not easy to understand as a beginner, let alone set up for yourself. This post covers the four things you can do to get started.

More

]]>
https://shopify.engineering/scale-performance-testing 2023-01-27T11:32:54-05:00 2023-01-27T12:41:18-05:00 Performance Testing At Scale—for BFCM and Beyond Jordan Neufeld More

]]>
https://shopify.engineering/from-farmer-to-security-engineer 2023-01-26T11:00:02-05:00 2023-01-26T11:56:08-05:00 From Farmer to Security Engineer: How Dev Degree Helped Me Find My Dream Job Cailyn Edwards This story looks at the opportunity Dev Degree gave me, the challenges I overcame, and the weaknesses that turned out to be strengths. If you’re thinking about a career in tech, but don’t think you have the stuff for it, this story is for you. 

More

]]>
https://shopify.engineering/making-react-native-gestures-feel-natural 2023-01-20T13:37:05-05:00 2023-01-20T13:37:05-05:00 Making Your React Native Gestures Feel Natural Andrew Lo https://shopify.engineering/ruby-yjit-is-production-ready 2023-01-17T08:30:02-05:00 2023-01-17T12:03:01-05:00 Ruby 3.2’s YJIT is Production-Ready Maxime Chevalier-Boisvert More

]]>
https://shopify.engineering/good-documentation-productivity 2023-01-12T10:00:04-05:00 2023-01-20T13:15:15-05:00 How Good Documentation Can Improve Productivity Michael Chemani More

]]>
https://shopify.engineering/overhauling-shopify-cli-for-a-better-developer-experience 2023-01-10T08:00:01-05:00 2023-01-10T09:58:24-05:00 From Ruby to Node: Overhauling Shopify’s CLI for a Better Developer Experience Pedro Piñera More

]]>