Building all of our new mobile apps using React Native
After years of native mobile development, we’ve decided to build all of our new mobile apps using React Native. As I’ll explain, that decision doesn’t come lightly.
Shopify powers millions of businesses in more than 175 countries with essential commerce infrastructure. Our engineers and developers work on challenging and impactful projects spanning frontend, backend, mobile and data.
Visit engineering.shopify.com → RSS feedOn Hacker News May 2017 – Sep 2020
Software Engineering 12Web & Frontend 6Systems & Performance 3Programming Languages 3Tools & Productivity 2Security & Privacy 1
After years of native mobile development, we’ve decided to build all of our new mobile apps using React Native. As I’ll explain, that decision doesn’t come lightly.
This article is going to be a crash course in what Nix is, how to think about it, and why it's such a valuable and paradigm-shifting piece of technology.
We rewrote critical software that powers all online storefronts on Shopify, offering the fastest online shopping experience, entirely from scratch and without downtime.
Collaboration with a large team is challenging, and even more so if it’s on a single codebase, like the Shopify monolith. Shopify changes 40 times a day. We follow a trunk-based development workflow and merge around 400 commits to master daily. There are three rules that govern how we deploy safely, but they were hard…
This year, we released the 1st official version of our API. Our API versioning scheme allows us to providing apps with stable behavior and predictable timelines.
It’s been 18 months since we talked about our Rails modular monolith. We lay out the current state of the work, and things we’d do differently if we started again.
How do we effectively find out why our application is slow? Even if we have a fix for the slow code, how can we prove that our new code is faster?
Part of Shopify’s success with Ruby on Rails is an emphasis on writing fast code. But, how do you really write fast code? Let’s talk about a few ways to start writing faster code in Active Record, Rails, and Ruby.
I want to show you a little of what this sea-of-nodes graph data structure looks like and how it works, and I think it’s worth doing this for this for a couple of reasons.
Learn to predict how your application will behave in times of failure and how to configure every parameter for your Semian circuit breaker.
We created a centralized authentication service, called Identity, by building upon functionality from the OpenID Connect (OIDC) specification.
Shopify's involvement with TruffleRuby began half a year ago, with the goal of furthering the success of the project and Ruby community. TruffleRuby is an alternative implementation of the Ruby language (where the reference implementation is CRuby, or MRI) developed by Oracle Labs. TruffleRuby has high potential in…
Developers write tests to ensure correctness and allow future changes to be made safely. However, as the number of features grows, so does the number of tests. Tests are a double-edged sword. On one hand, well-written ones catch bugs and maintain a program’s stability, but as the code base grows, a high number of…
Packwerk is an open source static analysis tool used to enforce boundaries between groups of Ruby files we call packages.