![](https://cdn.shopify.com/s/files/1/0779/4361/articles/ShopifyEng_BlogIllustrations_220927_216ppi_06_CachingWithoutMarshal.jpg?v=1707155015&width=600)
A Packwerk Retrospective
![](https://cdn.shopify.com/s/files/1/0779/4361/articles/server-wires.jpg?v=1704987717&width=600)
Horizontally scaling the Rails backend of Shop app with Vitess
![](https://cdn.shopify.com/s/files/1/0779/4361/articles/ShopifyEng_BlogIllustrations_220111_216ppi_01_HydrogenAndTailwind-ThePerfectMatchForBuildingBeautifulStorefronts.jpg?v=1701355002&width=600)
Getting Started with React Native Skia
![](https://cdn.shopify.com/s/files/1/0779/4361/articles/ShopifyEng_BlogIllustrations_211008_72ppi_01_YJIT-BuildingaNewJITCompilerforCRuby_0a00a8cf-3951-4556-9b2c-3f88e9de76ff.jpg?v=1697134143&width=600)
Introducing Ruvy
![](https://cdn.shopify.com/s/files/1/0779/4361/articles/ShopifyEng_BlogIllustrations_210719_72ppi_05_FiveStepsforBuildingMachineLearning_886f2915-8848-4dfe-9278-f2575912073a.jpg?v=1694216014&width=600)
Building a ShopifyQL Code Editor
![](https://cdn.shopify.com/s/files/1/0779/4361/articles/Banner.png?format=jpg&quality=90&v=1690304595&width=600)
Sidekick’s Improved Streaming Experience
![](https://cdn.shopify.com/s/files/1/0779/4361/articles/remix-app-bridge.png?format=jpg&quality=90&v=1690230786&width=600)
Shopify’s platform is the Web platform
![](https://cdn.shopify.com/s/files/1/0779/4361/articles/ShopifyEng_BlogIllustrations_210913_72ppi_02_AlwaysOnCalibrationWithAQuarterlySummary.jpg?v=1689703832&width=600)
Contributing support for a Wasm instruction to Winch
![](https://cdn.shopify.com/s/files/1/0779/4361/articles/V3.3.png?format=jpg&quality=90&v=1681137837&width=600)
Creating a Flexible Order Routing System with Shopify Functions
![](https://cdn.shopify.com/s/files/1/0779/4361/articles/GCfixed.png?format=jpg&quality=90&v=1681399892&width=600)
Adventures in Garbage Collection: Improving GC Performance in our Massive Monolith
![](https://cdn.shopify.com/s/files/1/0779/4361/articles/Vanilla_to_RTKv2.png?format=jpg&quality=90&v=1680197870&width=600)
How Migrating from Vanilla Redux to Redux Toolkit Improved State Management in Shopify POS
![A graphic with the words Engineering Leadership: Staff Developer and an illustration of four people on a team about to shake hands](https://cdn.shopify.com/s/files/1/0779/4361/articles/What_Being_a_Staff_Developer_Means_at_Shopify_39193fc4-d025-4ddf-a2a8-d9caf858fe49.jpg?v=1680013556&width=600)
What Being a Staff Developer Means at Shopify
![](https://cdn.shopify.com/s/files/1/0779/4361/articles/ShopifyEng_BlogSupporting_Shop_Passkeys.jpg?v=1679500527&width=600)
Supporting Passkeys in Shop's Authentication Flows
![](https://cdn.shopify.com/s/files/1/0779/4361/articles/ShopifyEng_BlogIllustrations_i18n_internationalization_best_practices.jpg?v=1678914501&width=600)
Lessons From Linguistics: i18n Best Practices for Front-End Developers
![](https://cdn.shopify.com/s/files/1/0779/4361/articles/ShopifyEng_BlogIllustrations_220216_72ppi_04_BestInClassDXWithViteAndHydrogen_d408f4c7-37b9-40f2-a4e1-2ab57a21befd.jpg?v=1678737033&width=600)
Tophat: Crafting a Delightful Mobile Developer Experience
![](https://cdn.shopify.com/s/files/1/0779/4361/articles/ShopifyEng_BlogIllustrations_220216_72ppi_03_TheMagicOfMerlin-ShopifysMachineLearningPlatform_3e07a5ed-cd94-44e2-b4ca-c6db1ec81bd6.jpg?v=1678451850&width=600)
Unlocking Real-time Predictions with Shopify's Machine Learning Platform
![](https://cdn.shopify.com/s/files/1/0779/4361/articles/ShopifyEng_BlogIllustrations_220411_216ppi_02_RubyExecutionModels_1.jpg?v=1677186891&width=600)
Improving the Developer Experience with the Ruby LSP
![](https://cdn.shopify.com/s/files/1/0779/4361/articles/ShopifyEng_BlogIllustrations_220411_216ppi_05_CodeRanges-ADeeperLookAtRubyStrings.jpg?v=1676658509&width=600)
The Case Against Monkey Patching, From a Rails Core Team Member
![](https://cdn.shopify.com/s/files/1/0779/4361/articles/ShopifyEng_BlogIllustrations_210719_72ppi_01_ShopifyMadePatternsInOurRailsApps_384c848b-4fcd-4363-a8e4-5f84d5f05999.jpg?v=1676501389&width=600)
The 25 Percent Rule for Tackling Technical Debt
![](https://cdn.shopify.com/s/files/1/0779/4361/articles/ShopifyEng_BlogIllustrations_210719_216ppi_05_FiveStepsforBuildingMachineLearning_2.jpg?v=1676298056&width=600)
ShopifyQL Notebooks: Simplifying Querying with Commerce Data Models
![](https://cdn.shopify.com/s/files/1/0779/4361/articles/ShopifyEng_BlogIllustrations_220111_216ppi_01_AllanLeinwand2022BlogPost-Header.jpg?v=1675267141&width=600)
Bringing Javascript to WebAssembly for Shopify Functions
![](https://cdn.shopify.com/s/files/1/0779/4361/articles/ShopifyEng_BlogIllustrations_ComplexDataModelsShopifyTax.jpg?v=1675449874&width=600)
The Complex Data Models Behind Shopify's Tax Insights Feature
![](https://cdn.shopify.com/s/files/1/0779/4361/articles/ShopifyEng_BlogIllustrations_220111_72ppi_04A_HowToGetAnEngineeringInternshipAtShopify-Header_fd495599-7dd0-4edc-8fed-c36ec4ea1a08.jpg?v=1675270849&width=600)
The Hardest Part of Writing Tests is Getting Started
![](https://cdn.shopify.com/s/files/1/0779/4361/articles/ShopifyEng_BlogIllustrations_210719_72ppi_05_FlashIsAShapeNotASize.jpg?v=1674838084&width=600)
Performance Testing At Scale—for BFCM and Beyond
![](https://cdn.shopify.com/s/files/1/0779/4361/articles/ShopifyEng_BlogIllustrations_211209_216ppi_01_FiveTipsForGrowingYourEngineeringCareer_77266935-2599-41dd-963a-7d55bbd5baac.jpg?v=1674496626&width=600)
From Farmer to Security Engineer: How Dev Degree Helped Me Find My Dream Job
![](https://cdn.shopify.com/s/files/1/0779/4361/articles/ShopifyEng_BlogIllustrations_211008_72ppi_06_BuildinganAppClipwithReactNative_e8df8a83-482c-4e0d-a2a0-660737ababcb.jpg?v=1674227288&width=600)
Making Your React Native Gestures Feel Natural
![](https://cdn.shopify.com/s/files/1/0779/4361/articles/ShopifyEng_BlogIllustrations_211008_216ppi_02_TryOutYJITforFasterRubying.jpg?v=1673882706&width=600)
Ruby 3.2’s YJIT is Production-Ready
![](https://cdn.shopify.com/s/files/1/0779/4361/articles/ShopifyEng_BlogIllustrations_good_documentation_practices.jpg?v=1673458649&width=600)
How Good Documentation Can Improve Productivity
![](https://cdn.shopify.com/s/files/1/0779/4361/articles/ShopifyEng_BlogIllustrations_210719_216ppi_01_ShopifyMadePatternsInOurRailsApps_2.jpg?v=1673031411&width=600)
From Ruby to Node: Overhauling Shopify’s CLI for a Better Developer Experience
![](https://cdn.shopify.com/s/files/1/0779/4361/articles/ShopifyEng_BlogIllustrations_220411_216ppi_02_RubyExecutionModels_8c134200-ca87-4174-8f8d-0976492f1a3d.jpg?v=1671729711&width=600)
Reliving Your Happiest HTTP Interactions with Ruby’s VCR Gem
![](https://cdn.shopify.com/s/files/1/0779/4361/articles/ShopifyEng_BlogIllustrations_221107_72ppi_05_MonteCarlo.jpg?v=1670585039&width=600)
Monte Carlo Simulations: Separating Signal from Noise in Sampled Success Metrics
![](https://cdn.shopify.com/s/files/1/0779/4361/articles/ShopifyEng_BlogIllustrations_220411_72ppi_03_SkiaAnnouncement_a40cc9c0-96cd-4e0e-8f56-6dd46a6f9dec.jpg?v=1671558311&width=600)
React Native Skia: A Year in Review and a Look Ahead
![](https://cdn.shopify.com/s/files/1/0779/4361/articles/ShopifyEng_BlogIllustrations_210525_216ppi_02_ReactNativeistheFutureofMobileatShopify.jpg?v=1671552000&width=600)
Migrating our Largest Mobile App to React Native
![](https://cdn.shopify.com/s/files/1/0779/4361/articles/ShopifyEng_BlogIllustrations_210525_72ppi_03_HowtoBuildaWebAppwithandwithoutRailsLibraries_efa4ec9f-e707-4ba1-94e8-402e5c4f9abb.jpg?v=1671558078&width=600)
Optimizing Ruby’s Memory Layout: Variable Width Allocation
![](https://cdn.shopify.com/s/files/1/0779/4361/articles/ShopifyEng_BlogIllustrations_211008_216ppi_01_YJIT-BuildingaNewJITCompilerforCRuby_2.jpg?v=1671484892&width=600)
Year in Review 2022: Tenderlove's Ruby and Rails Reflections and Predictions
![](https://cdn.shopify.com/s/files/1/0779/4361/articles/ShopifyEng_BlogIllustrations_220901_216ppi_06_HowToWriteCodeWithoutHavingToReadIt.jpg?v=1670857627&width=600)
Automatically Rotating GitHub Tokens (So You Don’t Have To)
![An illustration of an engine with lines of code on it. On either side, two hands holding wrenches on either side turn nuts an bolts.](https://cdn.shopify.com/s/files/1/0779/4361/articles/ShopifyEng_BlogIllustrations_shopify_embraces_rust_systems-programming.jpg?v=1670972465&width=600)
Shopify Embraces Rust for Systems Programming
![](https://cdn.shopify.com/s/files/1/0779/4361/articles/ShopifyEng_BlogIllustrations_220216_72ppi_03_7LessonsForOptimizingApacheFlinkApplications_8648a0cf-025d-4da2-bc29-424913527a6b.jpg?v=1670333665&width=600)
3 (More) Tips for Optimizing Apache Flink Applications
![](https://cdn.shopify.com/s/files/1/0779/4361/articles/ShopifyEng_BlogIllustrations_210525_216ppi_06_BuildingaDataTableComponentinReact.jpg?v=1670436414&width=600)
Three Essential Remote Work Practices for Engineering Teams
![](https://cdn.shopify.com/s/files/1/0779/4361/articles/ShopifyEng_BlogIllustrations_220216_216ppi_03_TheMagicOfMerlin-ShopifysMachineLearningPlatform.jpg?v=1669997282&width=600)
Planning in Bets: Risk Mitigation at Scale
![](https://cdn.shopify.com/s/files/1/0779/4361/articles/ShopifyEng_BlogIllustrations_211209_72ppi_02_SHPBP3BFCMLiveMap_0329bbfa-1e7b-4b6c-9d7e-e10c5b3de6eb.jpg?v=1669749588&width=600)
Using Server Sent Events to Simplify Real-time Streaming at Scale
![](https://cdn.shopify.com/s/files/1/0779/4361/articles/ShopifyEng_BlogIllustrations_210913_72ppi_04_LinNet_1.jpg?v=1669576329&width=600)
How to Export Datadog Metrics for Exploration in Jupyter Notebooks
![](https://cdn.shopify.com/s/files/1/0779/4361/articles/ShopifyEng_Blog_ReactNativePerformanceAtShopify.jpg?v=1669227683&width=600)
Our Solution for Measuring React Native Rendering Times
![](https://cdn.shopify.com/s/files/1/0779/4361/articles/ShopifyEng_BlogIllustrations_221107_216ppi_03_DevDegreeServer-DrivenUiArchitectureOnTheShopApp_48f16580-d577-4702-820d-43bc5b69834f.jpg?v=1669143248&width=600)
Implementing Server-Driven UI Architecture on the Shop App
![](https://cdn.shopify.com/s/files/1/0779/4361/articles/ShopifyEng_BlogIllustrations_221018_216ppi_02_WhatOpenSourcingFlashlistTaughtUs.jpg?v=1668449760&width=600)
What We Learned from Open-Sourcing FlashList
![](https://cdn.shopify.com/s/files/1/0779/4361/articles/ShopifyEng_BlogIllustrations_220927_72ppi_06_CachingWithoutMarshal-ALT.jpg?v=1668465298&width=600)
Caching Without Marshal Part 2: The Path to MessagePack
![](https://cdn.shopify.com/s/files/1/0779/4361/articles/ShopifyEng_BlogIllustrations_220927_72ppi_06_CachingWithoutMarshal.jpg?v=1668048444&width=600)
Caching Without Marshal Part 1: Marshal from the Inside Out
![](https://cdn.shopify.com/s/files/1/0779/4361/articles/ShopifyEng_BlogIllustrations_220901_72ppi_05_TheApolloCacheisYourFriendIfYouGetToKnowIt.jpg?v=1667965966&width=600)
Apollo Cache is Your Friend, If You Get To Know It
![](https://cdn.shopify.com/s/files/1/0779/4361/articles/ShopifyEng_BlogIllustrations_221107_216ppi_02_ReducingBigQueryCostsHowAQueryAlmostCostUs1Million.jpg?v=1669215663&width=600)