![How to Make Dashboards Using a Product Thinking Approach](https://cdn.shopify.com/s/files/1/0779/4361/articles/startup-desktop.jpg?v=1611857167&width=600)
![How to Make Dashboards Using a Product Thinking Approach](https://cdn.shopify.com/s/files/1/0779/4361/articles/startup-desktop.jpg?v=1611857167&width=600)
![How we manage GCP project-wide SSH keys at Shopify. Image by Samantha Lam on Unsplash](https://cdn.shopify.com/s/files/1/0779/4361/articles/samantha-lam-zFy6fOPZEu0-unsplash.jpg?v=1611765307&width=600)
Managing Google Cloud Platform Project-Wide SSH Keys
![](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
![](https://cdn.shopify.com/s/files/1/0779/4361/articles/developer-leading-planning-session.jpg?v=1607627222&width=600)
Resiliency Planning for High-Traffic Events
![](https://cdn.shopify.com/s/files/1/0779/4361/articles/fingers-turning-dial-on-dj-board.jpg?v=1607444348&width=600)
How to Reliably Scale Your Data Platform for High Volumes
![The State of Ruby Static Typing at Shopify](https://cdn.shopify.com/s/files/1/0779/4361/articles/image_15.png?format=jpg&quality=90&v=1607370116&width=600)
The State of Ruby Static Typing at Shopify
![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
![A line graph showing Shopify's global traffic from BFCM 2019 to BFCM 2020](https://cdn.shopify.com/s/files/1/0779/4361/articles/BFCM2020Traffic.jpg?v=1607016264&width=600)
Capacity Planning at Scale
![](https://cdn.shopify.com/s/files/1/0779/4361/articles/woman-boxing.jpg?v=1606925064&width=600)
Pummelling the Platform–Performance Testing Shopify
![Vouching for Docker Images](https://cdn.shopify.com/s/files/1/0779/4361/articles/padlock-with-key-close-up.jpg?v=1606787053&width=600)
Vouching for Docker Images
![How to Build a Production Grade Workflow with SQL Modelling](https://cdn.shopify.com/s/files/1/0779/4361/articles/modern-light-with-pipe-base.jpg?v=1605814629&width=600)
How to Build a Production Grade Workflow with SQL Modelling
![Adopting Sorbet at Scale](https://cdn.shopify.com/s/files/1/0779/4361/articles/header-strictness-dev2.jpg?v=1605809577&width=600)
Adopting Sorbet at Scale
![Static Typing for Ruby](https://cdn.shopify.com/s/files/1/0779/4361/articles/ShopifyEng_BlogIllustrations_210525_72ppi_05_StaticTypingforRuby.jpg?v=1623687322&width=600)
Static Typing for Ruby
![](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/woman-codes_44b31a7c-c584-4fdf-8b1e-081ffa798fbc.jpg?v=1602776286&width=600)
How to Build an Experiment Pipeline from Scratch
![](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/fferencesInDifferences.jpg?v=1601306168&width=600)
How to Use Quasi-experiments and Counterfactuals to Build Great Products
![](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/header_2000x_b325e958-0015-4589-bb61-8493de822f4d.jpg?v=1599593909&width=600)
Tophatting in React Native
![](https://cdn.shopify.com/s/files/1/0779/4361/articles/TypeScriptEditor.jpg?v=1598981987&width=600)
5 Ways to Improve Your React Native Styling Workflow
![](https://cdn.shopify.com/s/files/1/0779/4361/articles/DatabaseLogging.jpg?v=1598479077&width=600)
How to Track State with Type 2 Dimensional Models
![](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/pos-next-hardware-hero-large-85fa5564cf2b681fd8dd92b12c432eec5646618ed2da3ffb543e0cc78fad2df0.jpg?v=1597348374&width=600)
Building Reliable Mobile Applications
![](https://cdn.shopify.com/s/files/1/0779/4361/articles/P02R002_after_924x418_98e859cc-16c6-42df-8a96-be4661823772.png?format=jpg&quality=90&v=1596579457&width=600)
Using DNS Traffic Management to Add Resiliency to Shopify’s Services
![](https://cdn.shopify.com/s/files/1/0779/4361/articles/P01R001_library_book_924x415_28a25021-3051-4c91-a95e-5a93a73807d9.png?format=jpg&quality=90&v=1596567590&width=600)
An Introduction to DNS Traffic Management
![](https://cdn.shopify.com/s/files/1/0779/4361/articles/unnamed_1.jpg?v=1596038165&width=600)
Migrating Large TypeScript Codebases To Project References
![](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)
ShipIt! Presents: AR/VR at Shopify
![](https://cdn.shopify.com/s/files/1/0779/4361/articles/ArtifactHighLevelArchitecture.jpeg?v=1595354400&width=600)
How We’re Solving Data Discovery Challenges at Shopify
![](https://cdn.shopify.com/s/files/1/0779/4361/articles/FindAndReplaceVerticesApproach.jpg?v=1594658601&width=600)
How We Built Size.link
![](https://cdn.shopify.com/s/files/1/0779/4361/articles/Receive_Media_input_from_client_1.jpg?v=1594316591&width=600)
Media at Scale: Callbacks vs pipelines
![](https://cdn.shopify.com/s/files/1/0779/4361/articles/developer-reviewing-javascript_9a11c38d-54f7-4144-bf0f-298d918dd782.jpg?v=1594067019&width=600)
A First Look at Reanimated 2
![](https://cdn.shopify.com/s/files/1/0779/4361/articles/Hexagonal_Structure_with_dependency_injection.jpg?v=1593014370&width=600)
Writing Better, Type-safe Code with Sorbet
![](https://cdn.shopify.com/s/files/1/0779/4361/articles/team-sales-business-meeting.jpg?v=1592492556&width=600)
Shopify's Data Science & Engineering Foundations
![](https://cdn.shopify.com/s/files/1/0779/4361/articles/coding-team-working-on-laptops.jpg?v=1591901732&width=600)
Spark Joy by Running Fewer Tests
![](https://cdn.shopify.com/s/files/1/0779/4361/articles/sea-of-nodes-graph-Fibonacci-sequence-program.jpg?v=1591117018&width=600)
Understanding Programs Using Graphs
![](https://cdn.shopify.com/s/files/1/0779/4361/articles/GraphinessofSoftwareDependenciesHeader.jpg?v=1590762983&width=600)
ShipIt! Presents: How Shopify Uses Nix
![](https://cdn.shopify.com/s/files/1/0779/4361/articles/blog_-_warehousing_pic.jpg?v=1590083343&width=600)
7 Ways to Make Your SQL Workshop Beginner-friendly
![](https://cdn.shopify.com/s/files/1/0779/4361/articles/Screen_Shot_2020-05-19_at_13.24.jpg?v=1589909701&width=600)
What Is Nix
![The Brief History of TLS Certificates at Shopify](https://cdn.shopify.com/s/files/1/0779/4361/articles/combination-lock-secure_1.jpg?v=1589470127&width=600)
A Brief History of TLS Certificates at Shopify
![](https://cdn.shopify.com/s/files/1/0779/4361/articles/CarltonShopifyDevDegreePartnership.jpg?v=1589372894&width=600)
Dev Degree: Behind the Scenes
![](https://cdn.shopify.com/s/files/1/0779/4361/articles/Flamegraph.jpg?v=1588948759&width=600)
How to Fix Slow Code in Ruby
![Categorizing Products at Scale](https://cdn.shopify.com/s/files/1/0779/4361/articles/Figure_5-_Sample_traversal_of_taxonomy_at_inference_time.jpg?v=1588269390&width=600)