I am working on improving resiliency and scalability by replacing Shopify's original monolithic MySQL architecture.
Shopify experiences peak loads of 80K requests per second. In addition, due to flash sales, traffic can spike to orders of magnitude higher than the norm in seconds, for a single shop - not to mention global events such as Black Friday. If this load is not handled correctly, a flash sale on one shop could cause outages for every shop on the platform.
Shopify was originally built to use a single MySQL database instance, eventually evolving to use multiple read replicas with a single writer. However, the MySQL writer was still a single point of failure: if the writer went down, it could result in a platform-wide outage, preventing checkouts and resulting in significant lost revenue across all shops.
Since most data in our system is tied to a single shop, it was decided that sharding our database was the best solution. This provides resiliency, since traffic is spread across shards, with Shops being moved from shard to shard in order to even out traffic; and scalability, since new shards can be created on-demand to handle new shops. However, some data needs to be shared across shops. The functions relying on this data are, for the most part, being split off into microservices.
I worked on increasing the success of new merchants and driving growth . To further this goal, my team and I conducted UX research to identify possible areas of improvement in Shopify's admin.
I architected, designed, and implemented several new features, which were released as experiments and iterated upon based on user interaction data.
I worked primarily on the merchant-facing "Timeline" interface, which tracks events associated with different resources, such as orders and inventory transfers.During my term I:
Stembolt is a consultancy specializing in scalable, high-volume ecommerce applications, and the team behind the Solidus ecommerce platform.
At Stembolt, I worked as a full-stack Ruby on Rails developer, working directly with clients to craft engaging user experiences, and improve application quality and performance.
Demonware is a networking services company that provides the multiplayer platform and services for games published by Activision Blizzard, including Call of Duty, Diablo III, and Destiny.
At Demonware, I developed systems to automate the deployment and management of datacentre infrastructure.