Ryan Wilson-perkin is a Staff Engineer with 13 years of experience focused on improving developer productivity and performance tooling, currently shaping developer and merchant experiences at Shopify from Old Toronto. He blends backend and full-stack expertise—contributing to high-profile open source projects like webpack and pipenv—and has deep Rails and Ruby experience through Shopify gems such as maintenance_tasks and tapioca. Ryan is known for pragmatic engineering: optimizing build serialization and caching, tightening type safety in RBI generation, and improving CLI robustness to make tools more reliable for teammates. His career mixes hands-on systems work with leadership roles at Wave and Shopify, and an early teaching background that explains his knack for making other developers happier and more productive.
13 years of coding experience
11 years of employment as a software developer
Bachelor's Degree Computer Science, Bachelor's Degree Computer Science at University of Guelph
[⚠️ Deprecated] A loosely related set of packages for JavaScript/TypeScript projects at Shopify
Role in this project:
Full-stack Developer
Contributions:66 reviews, 148 commits, 43 PRs in 1 year 11 months
Contributions summary:Ryan primarily focused on enhancing the `@shopify/react-router` package. Their contributions involved adding and modifying the `basename` prop to the `Router` component, ensuring proper functionality on both client and server sides. Further improvements included merging branches and re-exporting functionalities from the `graphql-fixtures` package and addressing testing issues within the `react-form-state` package. Additional code adjustments were made to accommodate the use of newer React testing methods.
Contributions:1 review, 23 commits, 3 PRs in 1 month
Contributions summary:Ryan focused on enhancing the type safety and maintainability of the `tapioca` gem, a tool for generating RBI files. Their contributions centered around extending and refining the ActiveRecord DSL compiler to generate more accurate RBI types for Active Record relations, specifically dealing with "where" clauses and associations. The user introduced new classes, methods, and type definitions to represent where-chain relations and improved the typing of methods like `missing` and `not`, as well as ensuring proper type definitions within those relationships, making the overall generated RBI files more robust and precise.
swissruby-gemsgem-rbisarmysorbet
Find and Hire Top DevelopersWe’ve analyzed the programming source code of over 60 million software developers on GitHub and scored them by 50,000 skills. Sign-up on Prog,AI to search for software developers.