![](https://cdn.shopify.com/s/files/1/0779/4361/articles/ShopifyEng_BlogIllustrations_211026_216ppi_04_HowToBuildABusinessSystemIntegrationAutomationPlatformAtShopify.jpg?v=1650656184&width=600)
Development
![](https://cdn.shopify.com/s/files/1/0779/4361/articles/ShopifyEng_BlogIllustrations_211026_216ppi_04_HowToBuildABusinessSystemIntegrationAutomationPlatformAtShopify.jpg?v=1650656184&width=600)
![](https://cdn.shopify.com/s/files/1/0779/4361/articles/ShopifyEng_BlogIllustrations_220411_72ppi_05_CodeRanges-ADeeperLookAtRubyStrings.jpg?v=1651177888&width=600)
Code Ranges: A Deeper Look at Ruby Strings
![](https://cdn.shopify.com/s/files/1/0779/4361/articles/ShopifyEng_BlogIllustrations_220216_72ppi_01_TheLatestMarketplaceKit-DesignDecisions.jpg?v=1649706603&width=600)
Leveraging Shopify’s API to Build the Latest Marketplace Kit
![](https://cdn.shopify.com/s/files/1/0779/4361/articles/ShopifyEng_BlogIllustrations_220216_72ppi_04_BestInClassDXWithViteAndHydrogen.jpg?v=1648584081&width=600)
Best-in-Class Developer Experience with Vite and Hydrogen
![](https://cdn.shopify.com/s/files/1/0779/4361/articles/ShopifyEng_BlogIllustrations_220216_72ppi_02_CreatingAThemableReactJSDataVisualizationLibrary.jpg?v=1647381766&width=600)
Creating a React Library for Consistent Data Visualization
![](https://cdn.shopify.com/s/files/1/0779/4361/articles/ShopifyEng_BlogIllustrations_211026_72ppi_04_HeadfirstLiquidCRefactor.jpg?v=1646937552&width=600)
After the Refactor: A Path to Faster Rendering with Liquid-C
![](https://cdn.shopify.com/s/files/1/0779/4361/articles/ShopifyEng_BlogIllustrations_220111_72ppi_05_AddingTheV8CPUProfilerToV8GO.jpg?v=1646343757&width=600)
Adding the V8 CPU Profiler to v8go
![](https://cdn.shopify.com/s/files/1/0779/4361/articles/ShopifyEng_BlogIllustrations_220111_72ppi_05_TalkRecapFromRubyConf2021.jpg?v=1646251175&width=600)
RubyConf 2021: The Talks You Might Have Missed
![Changing a polymorphic_type in Rails](https://cdn.shopify.com/s/files/1/0779/4361/articles/ShopifyEng_BlogIllustrations_211209_72ppi_04_ChangingAPolymorphicTypeInRails.jpg?v=1645144071&width=600)
Changing a polymorphic_type in Rails
![Hydrogen & Tailwind: The Perfect Match for Building Beautiful Storefronts](https://cdn.shopify.com/s/files/1/0779/4361/articles/ShopifyEng_BlogIllustrations_220111_72ppi_01_HydrogenAndTailwind-ThePerfectMatchForBuildingBeautifulStorefronts.jpg?v=1645033312&width=600)
Hydrogen & Tailwind: The Perfect Match for Building Beautiful Storefronts
![](https://cdn.shopify.com/s/files/1/0779/4361/articles/ShopifyEng_BlogIllustrations_220111_72ppi_06_ReactServerComponentsPatternsAndBestPracticesWithHydrogen.jpg?v=1644442762&width=600)
React Server Components Best Practices You Can Use with Hydrogen
![](https://cdn.shopify.com/s/files/1/0779/4361/articles/ShopifyEng_BlogIllustrations_220111_72ppi_03_RapidDevelopmentWithHydrogenBuildingAProductPage.jpg?v=1644442739&width=600)
Rapid Development with Hydrogen: Building a Product Page
![](https://cdn.shopify.com/s/files/1/0779/4361/articles/ShopifyEng_BlogIllustrations_220111_72ppi_01_AllanLeinwand2022BlogPost-Header.jpg?v=1644442799&width=600)
Cloud, Load, and Modular Code: What 2022 Looks Like for Shopify
![](https://cdn.shopify.com/s/files/1/0779/4361/articles/ShopifyEng_BlogIllustrations_211026_72ppi_03_SearchAtShopifyDataAndEngineeringRangeIsTheFuture.jpg?v=1642173861&width=600)
Search at Shopify—Range in Data and Engineering is the Future
![](https://cdn.shopify.com/s/files/1/0779/4361/articles/ShopifyEng_BlogIllustrations_211026_72ppi_05_RemoteRenderingShopifysTakeOnExtensibleUI.jpg?v=1639078832&width=600)
Remote Rendering: Shopify’s Take on Extensible UI
![](https://cdn.shopify.com/s/files/1/0779/4361/articles/ShopifyEng_BlogIllustrations_211026_72ppi_06_BuildingBlocksOfHighPerformanceHydrogenPoweredStorefronts.jpg?v=1636130303&width=600)
Building Blocks of High Performance Hydrogen-powered Storefronts
![](https://cdn.shopify.com/s/files/1/0779/4361/articles/ShopifyEng_BlogIllustrations_211008_72ppi_05_TheVitalityofCoreWebVitals.jpg?v=1636040453&width=600)
The Vitality of Core Web Vitals
![](https://cdn.shopify.com/s/files/1/0779/4361/articles/ShopifyEng_BlogIllustrations_211008_72ppi_03_GitHubDoesMyOperationsHomeworkA-RubySpeedStory.jpg?v=1634656542&width=600)
GitHub Does My Operations Homework: A Ruby Speed Story
![](https://cdn.shopify.com/s/files/1/0779/4361/articles/ShopifyEng_BlogIllustrations_211008_72ppi_02_TryOutYJITforFasterRubying.jpg?v=1634573165&width=600)
Try Out YJIT for Faster Rubying
![YJIT: Building a New JIT Compiler for CRuby](https://cdn.shopify.com/s/files/1/0779/4361/articles/ShopifyEng_BlogIllustrations_211008_72ppi_01_YJIT-BuildingaNewJITCompilerforCRuby.jpg?v=1634573149&width=600)
YJIT: Building a New JIT Compiler for CRuby
![](https://cdn.shopify.com/s/files/1/0779/4361/articles/ShopifyEng_BlogIllustrations_210719_72ppi_04_DigginAndFetchin.jpg?v=1629396570&width=600)
Diggin’ and Fetchin’ with TruffleRuby
![](https://cdn.shopify.com/s/files/1/0779/4361/articles/ShopifyEng_BlogIllustrations_210630_72ppi_02_UnderstandingGraphQLForBeginners_f7795cc6-e256-4b0b-a53b-e849cd00ae1f.png?format=jpg&quality=90&v=1628187703&width=600)
Understanding GraphQL for Beginners–Part Three
![](https://cdn.shopify.com/s/files/1/0779/4361/articles/ShopifyEng_BlogIllustrations_210630_72ppi_03_MobPairing.png?format=jpg&quality=90&v=1627590319&width=600)
Connecting with Mob Programming
![](https://cdn.shopify.com/s/files/1/0779/4361/articles/ShopifyEng_BlogIllustrations_210614_72ppi_02_GuideToRunningAnEngineeringProgram.jpg?v=1626795999&width=600)
A Guide to Running an Engineering Program
![](https://cdn.shopify.com/s/files/1/0779/4361/articles/ShopifyEng_BlogIllustrations_210719_72ppi_01_ShopifyMadePatternsInOurRailsApps.jpg?v=1631638188&width=600)
Shopify-Made Patterns in Our Rails Apps
![](https://cdn.shopify.com/s/files/1/0779/4361/articles/ShopifyEng_BlogIllustrations_210630_72ppi_02_UnderstandingGraphQLForBeginners_92d951dd-ba2c-4cf7-a847-690a38c4c34e.png?format=jpg&quality=90&v=1626811198&width=600)
Understanding GraphQL for Beginners–Part Two
![Understanding GraphQL for Beginners–Part One](https://cdn.shopify.com/s/files/1/0779/4361/articles/ShopifyEng_BlogIllustrations_210630_72ppi_02_UnderstandingGraphQLForBeginners.png?format=jpg&quality=90&v=1626811179&width=600)
Understanding GraphQL for Beginners–Part One
![Rate Limiting GraphQL APIs by Calculating Query Complexity](https://cdn.shopify.com/s/files/1/0779/4361/articles/ShopifyEng_BlogIllustrations_210614_72ppi_01_RateLimitingGraphQLAPIs.jpg?v=1625687557&width=600)
Rate Limiting GraphQL APIs by Calculating Query Complexity
![](https://cdn.shopify.com/s/files/1/0779/4361/articles/ShopifyEng_BlogIllustrations_210614_72ppi_04_QueryingStrategiesForGraphQLClients.jpg?v=1625687621&width=600)
Querying Strategies for GraphQL Clients
![](https://cdn.shopify.com/s/files/1/0779/4361/articles/Frame_11-4.jpg?v=1622753152&width=600)
Updating Illustrations at Scale
![](https://cdn.shopify.com/s/files/1/0779/4361/articles/ShopifyEng_BlogIllustrations_210614_72ppi_05_OtherDrivenDevelopments.jpg?v=1625687646&width=600)
Other Driven Developments
![How to Build a Web App with and without Rails Libraries](https://cdn.shopify.com/s/files/1/0779/4361/articles/ShopifyEng_BlogIllustrations_210525_72ppi_03_HowtoBuildaWebAppwithandwithoutRailsLibraries.jpg?v=1623688086&width=600)
How to Build a Web App with and without Rails Libraries
![](https://cdn.shopify.com/s/files/1/0779/4361/articles/Shop_Eng_Blog_Header.png?format=jpg&quality=90&v=1616070726&width=600)
Remove Circular Dependencies by Using Dependency Injection and the Repository Pattern in Ruby
![](https://cdn.shopify.com/s/files/1/0779/4361/articles/hands-holding-money-aflame_1.jpg?v=1613502995&width=600)
Bound to Round: 8 Tips for Dealing with Hanging Pennies
![](https://cdn.shopify.com/s/files/1/0779/4361/articles/in-office-working-on-laptop_617cee5e-bde8-4a47-b3f8-53edf736a7d3.jpg?v=1613506241&width=600)
Using Betas to Deploy New Features Safely
![](https://cdn.shopify.com/s/files/1/0779/4361/articles/image_1.png?format=jpg&quality=90&v=1611350361&width=600)
Using GraphQL for High-Performing Mobile Applications
![](https://cdn.shopify.com/s/files/1/0779/4361/articles/close-up-of-watch-signing-under-neon-lights_7bb4a6e1-b4c4-4223-9721-71e585c7c0f4.jpg?v=1610128932&width=600)
Apache Beam for Search: Getting Started by Hacking Time
![](https://cdn.shopify.com/s/files/1/0779/4361/articles/ShopifyEng_BlogIllustrations_210525_72ppi_01_HowShopifyUsesWebAssemblyOutsideoftheBrowser.jpg?v=1623686791&width=600)
How Shopify Uses WebAssembly Outside of the Browser
![](https://cdn.shopify.com/s/files/1/0779/4361/articles/bikes-take-the-turn.jpg?v=1607626795&width=600)
Simplify, Batch, and Cache: How We Optimized Server-side Storefront Rendering
![A photo with four hands each holding a numbered gold balloon spelling out 2020. Above the hands is BFCM in yellow capital letters](https://cdn.shopify.com/s/files/1/0779/4361/articles/BFCM2020.jpg?v=1607360893&width=600)
Organizing 2000 Developers for BFCM in a Remote World
![](https://cdn.shopify.com/s/files/1/0779/4361/articles/Video_Thumbnail___1920_x_1080px_1.png?format=jpg&quality=90&v=1607098001&width=600)
A World Rendered Beautifully: The Making of the BFCM 3D Data Visualization
![](https://cdn.shopify.com/s/files/1/0779/4361/articles/Composite_Primary_Keys_Ruby_on_Rails.png?format=jpg&quality=90&v=1603994822&width=600)
How to Introduce Composite Primary Keys in Rails
![Building Mental Models of Ideas That Don’t Change](https://cdn.shopify.com/s/files/1/0779/4361/articles/model-brain-on-orange.jpg?v=1603388337&width=600)
Building Mental Models of Ideas That Don’t Change
![](https://cdn.shopify.com/s/files/1/0779/4361/articles/Flame_graph_10_items_cart_rendering_time_124_ms.jpg?v=1603211595&width=600)
How to Do an In-depth Liquid Render Analysis with Theme Inspector
![](https://cdn.shopify.com/s/files/1/0779/4361/articles/ilana-blogpost-hero_1_47eb2e77-e100-4b62-8bb6-f64afb9bb07c.jpg?v=1604593400&width=600)
Images as Code: Representing Localized and Evolving Products on Marketing Pages
![](https://cdn.shopify.com/s/files/1/0779/4361/articles/Packwerkcheck.jpg?v=1600883537&width=600)
Enforcing Modularity in Rails Apps with Packwerk
![A black monolith with different coloured lines representing code. The monolith sits on the right hand side of the screen with a desert background.](https://cdn.shopify.com/s/files/1/0779/4361/articles/ShopifyEng_BlogIllustrations_210525_72ppi_04_UnderDeconstruction-TheStateofShopifysMonolith.jpg?v=1623684285&width=600)
Under Deconstruction: The State of Shopify’s Monolith
![](https://cdn.shopify.com/s/files/1/0779/4361/articles/taking-notes-and-working-on-laptop.jpg?v=1598316186&width=600)
ShipIt! Presents: A Look at Shopify's API Health Report
![How Shopify Reduced Storefront Response Times With a Rewrite](https://cdn.shopify.com/s/files/1/0779/4361/articles/sewing-digital-product.jpg?v=1597935719&width=600)
How Shopify Reduced Storefront Response Times with a Rewrite
![](https://cdn.shopify.com/s/files/1/0779/4361/articles/Screen_Shot_2020-07-23_at_17.53.09.png?format=jpg&quality=90&v=1595541363&width=600)