362. Shopify Interns Share Their Tips for Success (shopify.engineering)
363. Solving the N+1 Problem for GraphQL through Batching (shopify.engineering)
364. Shopify’s Infrastructure Collaboration with Google (shopify.engineering)
365. A Pods Architecture To Allow Shopify To Scale (shopify.engineering)
In 2015, it was no longer possible to continue buying a larger database server for Shopify. We finally had no choice but to shard the database, which allowed us to horizontally scale our databases and continue our growth. However, what we gained in performance and scalability we lost in resilience. ...
366. Accelerating Android Talent Through Community Bootcamps (shopify.engineering)
6 minute read The mobile team knew they needed developers, particularly Android developers. A few years ago, Shopify pivoted to mobile-first, which led to the launches of Shopify Mobile, Shopify Pay, Frenzy, and others. To maintain momentum, Shopify had to keep building up its mobile talent. Back wh...
367. Future Proofing Our Cloud Storage Usage (shopify.engineering)
How we reduced error rates, and dropped latencies across merchants’ flows Reading Time: 6 Minutes Shopify merchants trust that when they build their stores on our platform, we’ve got their back. They can focus on their business, while we handle everything else. Any failures or degradations that happ...
368. 2017 Bug Bounty Year in Review (shopify.engineering)
7 minute read At Shopify, our bounty program complements our security strategy and allows us to leverage a community of thousands of researchers who help secure our platform and create a better Shopify user experience. We first launched the program in 2013 and moved to the HackerOne platform in 2015...
369. Implementing ChatOps into our Incident Management Procedure (shopify.engineering)
8 minute read Production engineers (PE) are expected to be incident management experts. Still, incident handling is difficult, often messy, and exhausting. We encounter new incidents, search high and low for possible explanations, sometimes tunnel on symptoms, and, under pressure, forget some best p...
370. How Shopify Merchants can Measure Retention (shopify.engineering)
371. How We Enable Our Interns to Make an Impact (shopify.engineering)
Making an Impact When interns join Shopify for their internship term, they work on projects that will impact our merchants, partners, and even their fellow developers. Some of these projects will alleviate a merchant's pain points, like the ability to sell their products on different channels, or si...
372. Tell Your Stories: The Benefits of Strategic Engineering Communications (shopify.engineering)
In early 2016, we faced a problem at Shopify. We were growing quickly, and decisions could no longer be made across the room, so to speak. Four offices became five, accommodating that growth raised interesting questions like: how would new people know the history of the company, and how could existi...
373. How Shopify Governs Containers at Scale with Grafeas and Kritis (shopify.engineering)
374. Building Shopify Mobile with Native and Web Technology (shopify.engineering)
375. Code Style Consistency for Shopify’s Decade-Old Codebase (shopify.engineering)
5 minute read Over the course of Shopify's 13-year codebase history, the core platform has never been rewritten. That meant a slew of outdated code styles, piling atop of one another and without a lot of consistency. By 2012, our CEO Tobi created a draft Ruby style guide to keep up with the growth. ...
376. Integrating with Amazon: How We Bridged Two Different Commerce Domain Models (shopify.engineering)
377. How We Support Intern Growth through Challenge and Practice (shopify.engineering)
4 minute read An essential part of working as a developer is getting practical experience in the real world, of which internships can play a meaningful part. The Shopify internship program, which started back in 2011, runs for four months during the summer, fall, and winter terms. Interns can work f...
378. How We Optimized Product Syncing for Facebook (shopify.engineering)
4 minute read Merchants can sell their products on Shopify in many ways. In addition to their own website, merchants can integrate with some of the biggest social media channels on the internet. Over 140,000 merchants participate in our Facebook channel, where they can display and sell their product...
379. How Shopify Capital Uses Quantile Regression To Help Merchants Succeed (shopify.engineering)
6 minute read Shopify Capital provides funding to help merchants on Shopify grow their businesses. But how does Shopify Capital award these merchant cash advances? In this post, I'll dive deep into the machine-learning technique our Risk-Algorithms team uses to decide eligibility for cash advances. ...
380. Upgrading Shopify to Rails 5 (shopify.engineering)
Today, Shopify runs on Rails 5.0, the latest version. It’s important to us to stay on the latest version so we can improve the performance and stability of the application without having to increase the maintenance cost of applying monkey patches. This guarantees we would always be in the version ma...
381. Maintaining a Swift and Objective-C Hybrid Codebase (shopify.engineering)
6 minute read Swift is gaining popularity among iOS developers, which is of no surprise. It's strictly typed, which means you can prove the correctness of your program at compile time, given that your typesystem describes the domain well. It's a modern language offering syntax constructs encouraging...
382. How 17 Lines of Code Improved Shopify.com Loading by 50% (shopify.engineering)
3 minute read Big improvements don't have to be hard nor take a long time to implement. It took, for example, only 17 lines of code to decrease the time to display text on Shopify.com by 50%. That saved visitors 1.2 seconds: each second matters given that 40% of users expect a website to load within...
383. Bootsnap: Optimizing Ruby App Boot Time (shopify.engineering)
8 minute read Hundreds of Shopify developers work on our largest codebase, the monolithic Rails application that powers most of our product offering. There are various benefits to having a “majestic monolith,” but also a few downsides. Chief among them is the amount of time people spend waiting for ...
384. Building a Dynamic Mobile CI System (shopify.engineering)
18 minute read The mobile space has changed quickly, even within the past few years. At Shopify, the world’s largest Rails application, we have seen the growth and potential of the mobile market and set a goal of becoming a mobile-first company. Today, over 130,000 merchants are using Shopify Mobile...
385. The Side Hustle: Building a Quadcopter Controller for iOS (shopify.engineering)
Our engineering blog is home to our stories sharing technical knowledge and lessons learned. But that's only part of the story: we hire passionate people who love what they do and are invested in mastering their craft. Today we launch "The Side Hustle," an occasional series highlighting some side pr...
386. Sharing the Philosophy Behind Shopify's Bug Bounty (shopify.engineering)
2 minute read Bug bounties have become commonplace as companies realize the advantages to distributing the hunt for flaws and vulnerabilities among talented people around the world. We're no different, launching a security response program in 2012 before evolving it into a bug bounty with HackerOne ...
387. Surviving Flashes of High-Write Traffic Using Scriptable Load Balancers (Part II) (shopify.engineering)
7 minute read In the first post of this series, I outlined Shopify’s history with flash sales, our move to Nginx and Lua to help manage traffic, and the initial attempt we made to throttle traffic that didn’t account sufficiently for customer experience. We had underestimated the impact of not givin...
388. Surviving Flashes of High-Write Traffic Using Scriptable Load Balancers (Part I) (shopify.engineering)
7 minute read This Sunday, over 100 million viewers will watch the Super Bowl. Whether they’re catching the match-up between the Falcons and the Patriots, or there for the commercials between the action, that’s a lot of eyeballs—and that’s only counting America. But all that attention doesn’t just s...
389. Why Shopify Moved to The Production Engineering Model (shopify.engineering)
6 minute read The traditional model of running large-scale computer systems divides work into Development and Operations as distinct and separate teams. This split works reasonably well for computer systems that are changed or updated very rarely, and organizations sometimes require this if they’re ...
390. Automatic Deployment at Shopify (shopify.engineering)
6 minute read Hi, I'm Graeme Johnson, and I work on Shopify's Developer Acceleration team. Our mission is to provide tools that let developers ship fast and safely. Recently we began shipping Shopify automatically as developers hit the merge button in GitHub. This removes the final manual step in ou...