Greg MacWilliam

Greg MacWilliam

Greg is presently focused on web applications built using Ruby on Rails, VueJS, Webpack, and JavaScript. He is also experienced with HTML5, CSS3, SCSS, responsive design practices, and visualizing large data sets using SVG, Canvas, and major web mapping frameworks. He is also fluent with RESTful and GraphQL API design, Django, Rails, Node, and some WordPress experience. Additional programming experience with iOS/Objective-C for iPhone, Flash/ActionScript3, and object-oriented design practices. Familiar with agile software development and SCRUM workflow; experienced with providing estimates. Current side projects include EpoxyJS (data binding extension for Backbone), ConstellationJS (a grid-based geometry toolkit), and the HTML5/Django-based Lassie Constellation admin system.
Hard GraphQL Problems at Shopify
GraphQL Galaxy 2021GraphQL Galaxy 2021
164 min
Hard GraphQL Problems at Shopify
WorkshopFree
At Shopify scale, we solve some pretty hard problems. In this workshop, five different speakers will outline some of the challenges we’ve faced, and how we’ve overcome them.

Table of contents:
1 - The infamous "N+1" problem: Jonathan Baker - Let's talk about what it is, why it is a problem, and how Shopify handles it at scale across several GraphQL APIs.
2 - Contextualizing GraphQL APIs: Alex Ackerman - How and why we decided to use directives. I’ll share what directives are, which directives are available out of the box, and how to create custom directives.
3 - Faster GraphQL queries for mobile clients: Theo Ben Hassen - As your mobile app grows, so will your GraphQL queries. In this talk, I will go over diverse strategies to make your queries faster and more effective.
4 - Building tomorrow’s product today: Greg MacWilliam - How Shopify adopts future features in today’s code.
5 - Managing large APIs effectively: Rebecca Friedman - We have thousands of developers at Shopify. Let’s take a look at how we’re ensuring the quality and consistency of our GraphQL APIs with so many contributors.