Jason Gedge

jason ‹at› gedge.ca thegedge jason-gedge @thegedge

Work Experience

Logo for Gadget

Founding Engineer


– Present

Some of the bigger things I've worked on:

  • Took our background actions project from 50 to 100%, with a focus on correctness (introducing idempotency into our retryable bits) and infrastructure (booting up a new temporal cluster).
  • Created an automated, zero-downtime migration for moving customers between database storage strategies.
  • Migrated our monorepo from yarn to pnpm.
  • Swapped out Monaco for CodeMirror, along with creating our own language server and LSP client to provide autocompletion, diagnostics, and all the things you'd expect out of an advanced editor.
  • Load testing scenarios using Grafana's k6
  • Added a scheduling trigger for Gadget actions (basically, cron jobs).
  • Added real-time streaming to our log viewer.
  • Migrated us from one database provider to another with no data loss and within our 30 minute maintenance window.
  • A steward of the platform and codebase. That meant ensuring the platform was kept up and running, and that the codebase was kept up to date and organized according to our principles.
  • User-defined HTTP routes for Gadget apps (comparable to AWS Lambda).
  • Created a library  providing typesafe React bindings for Gadget (lots of advanced TypeScript).
  • Initial implementation of @gadgetinc/mobx-quick-tree  (reduced node event loop blocks).
  • V1 of our Shopify connection (managed syncing, webhooks, and oauth for Shopify apps).
  • Designed and implemented a planner (topographical sort) for Gadget's nested actions.

Less technical things I'm involved with:

  • Sharing my knowledge and context of the system to help accelerate all members of our team.
  • Lots of informal mentoring via pairing, code review, and internal conversations.
  • Interviewing candidates to assess technical skill (and a small amount of sourcing).
Logo for Shopify

Staff Production Engineer



  • Helped build and influence the design of packwerk , an open-source tool for enforcing boundaries in Ruby/Rails codebases.
  • Building tools, patterns, and educational materials to enforce software architectural boundaries on Ruby/Rails projects.
  • Designed and built an intra- and inter-cluster eBPF-based ping mesh for network observability in our Kubernetes platform. Required digging into the TCP stack implementation of linux (bootlin  helped a lot for easy source code navigation)
  • Built a data pipeline to isolate performance regressions in the Shopify platform.
  • Continued to help build our organization with regular interviews (~1 per week).

Senior Software Engineer



  • Designed and helped develop Fraud Protect for Shopify Payments (a warranty system for protecting Shopify merchants against fraudulent chargebacks).
  • Designed and helped implement a new model for expressing order risk (known as "risk assessments").
  • Started interviewing on a regular basis for the R&D organization, primarily pair programming.

Software Engineer



  • Designed an approach for asynchronous label purchasing.
  • Created a regional failover setup for our shipping service (using AWS Route 53).
  • Automated our shipping service's infrastructure with Terraform.
  • Moved our shipping service from classic EC2 to VPC EC2 with zero downtime.
  • Improved performance of our shipping rates/label service through profiling.
Logo for YouTube

Software Engineer In Test



  • Created new and expanded existing test infrastructure (e.g, static analysis, automated HTML validation, creating and validating test seams for functions with complex responses).
  • Move the local development environments to the cloud, with a service that had pre-warmed environments and leasing capabilities.
  • Improved the stack by dependency refactoring, reducing build times, build size, and resource consumption.
  • Expanded YouTube's primary local development environment with new functionality, also building out new service fakes to improve boot time.

Education

Logo for University of Alberta

M.Sc., Computing Science



Logo for Memorial University

B.Sc. (Honours), Pure Mathematics and Computer Science



  • Graduated with a 4.0 GPA and first-class honours.
  • Dean's list recipient all years.
  • Awarded the "University Medal for Academic Excellence" in both Mathematics and Computer Science.
  • Led my ICPC programming competition  team to the northeast North American regional twice.
  • Thesis: Automatic Panorama Construction: An In-Depth Look into Image Stitching

Publications

Theses

  • Gedge, J. (2011) Underwater Stereo Matching and its Calibration. Department of Computing Science, University of Alberta. Master of Science. University of Alberta archive 
  • Gedge, J. (2008) Automatic Panorama Construction: An In-Depth Look Into Image Stitching. Department of Computer Science, Memorial University of Newfoundland. Bachelor of Science (Honours).

Refereed Conference Publications

  • Gedge, J., Gong, M., and Yang, Y-H. (2011) Refractive Epipolar Geometry For Underwater Stereo Matching. Proceedings of the Eighth Canadian Conference on Computer and Robot Vision. IEEE Xplore 
  • van Rooij, I., Evans, P., Muller, M., Gedge, J., and Wareham, T. (2008) Identifying Sources of Intractability in Cognitive Models: An Illustration using Analogical Structure Mapping. In B.C. Love, K. McRae, and V.M. Sloutsky (eds.) Proceedings of the 30th Annual Meeting of the Cognitive Science Society. Cognitive Science Society; Austin, TX. 915—920. PDF 
  • Gedge, J., Hedlund, G., Rose, Y., and Wareham, T. (2007) Natural Language Process Detection: From Conception to Implementation. Newfoundland Electrical and Computer Engineering Conference. ResearchGate 

Technical Reports

  • Evans, P., Gedge, J., Muller, M., van Rooij, I., and Wareham, T. (2008) On the Computational Complexity of Analogy Derivation in the Structure-Mapping Framework. Technical Report 2008-03, Department of Computer Science, Memorial University of Newfoundland. PDF 

Skills

Languages

C / C++GoJavaPythonRubyRustShell (bash, zsh)SQLTypeScript / JavaScript

Technologies

CSSDockerHTMLKubernetesPostgreSQL / MySQLReactRedisTemporalTerraformWeb APIs

Skills

Computer GraphicsComputer VisionDebuggingMathematicsSoftware / API DesignWriting

The bars measure how confident I feel in various skills and technologies. A low rating is due to not using the skill recently, but I'm a quick learner!