<Chris Kelly>
About Me
Hey, I'm Chris! I'm a software developer and student currently working at Shopify in Ottawa, Ontario.
I love engineering elegant solutions to hard problems, and learning new things.
My main interests right now are distributed systems, data stores, and machine learning.
My hobbies are programming, rock climbing, snowboarding, boxing, and learning about new topics in computer science, mathematics, and biology.
Current Work
  • Shopify - Production Engineering Intern.

    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.

  • Previous Work
  • Shopify - Winter 2017. Software Developer Intern.

    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.

  • Shopify - Summer 2016. Software Developer Intern.

    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:
    • Led research into optimizing Shopify's image compression.
    • Led the design and implementation of a new protocol for representing and rendering accordion content for arbitrary data models.
    • Developed new Timeline features, and improved Timeline's user interface and user experience.
  • Stembolt - Summer 2014 and Winter 2015. Software Developer Intern.

    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 - Fall 2015. Software Developer Intern.

    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.

  • Projects (Open Source)
    Other Work
  • UVic ECOSat satellite design team - I developed the digital signal processing (DSP) system for the modem of a low-Earth-orbit communications micro-satellite.
  • Publications