Cameron Gorrie

Software architect, problem solver, mentor

Email sastraxi@gmail.com, or call 647.551.9485

Selected work experience

Top Hat (Director of Engineering / Principal Developer)
Apr 2019 to present
As part of the leadership team of the Product & Engineering department, my duties have been diverse. In addition to the following selected items I spend my time mentoring ICs, coaching team and technology leads, designing software architecture and documentation, (re-)building processes, and leading group sessions (such as premortems and design jams).
In 2019, I designed (via RFC) and drove the implementation of an "ABAC" authorization service that provides the role flexibility our institutional partners had been asking for. This service has enabled several new features that helped us sell to institutions rather than individual professors.
In 2020, I directed our initiative to bring video streaming to our classroom offering. This meant building a WebRTC-based proof-of-concept, evaluating different vendors, contract negotiation, post-sales relationship management, and building knowledge about video inside of our team. I also helped write our virtual classrom service (touching django, mysql, business logic, message broker events, etc).
In 2021, I transitioned to an individual contributor role at the Staff level with a specific focus on frontend performance and developer experience. I lent my time to the marketing team, finishing our redesign of our external-facing Catalog. I wrote tests, fixed bugs, improved accessibility, built admin tools for the back office, improved end-user performance, and updated our Cloudformation templates to allow the site to be rooted at both old and new URLs while the re-brand was occurring.
In 2022, I continued my frontend focus on the staff engineering team while supporting 5+ other (product) teams. I optimized the (shared) critical boostrap path of our webapps, improving many of the core web vitals of our apps by ~17% (P75). I rewrote a (pytest) test harness that used sqlite to use postgresql (for prod parity) while improving DX. I discovered and fixed many bugs in our frontend shared infrastructure, reducing bundle size for all apps by about 30%. I co-lead two "tiger" teams, bringing together domain experts to reduce cognitive overhead in our frontend code and migrate to a new source of truth for course data, developing a deep understanding (and opinions) in the react state management space.

Lighthouse Labs (Mentor, lecturer)
May 2018 to Apr 2019
Students in the web development immersive program at Lighthouse embark on a 10 week program to learn how to build software using Javascript, React, Ruby on Rails, and PostgreSQL. As a mentor, I helped students get "unstuck" and tried to transfer some of my high-level knowledge and instil best practices. I also prepared example code and gave lectures to complement the course material (an example).

Robin Media (CTO, co-founder; acquired)
September 2016 to August 2018
In late summer 2016, we set out to take on companies like Ticketmaster and StubHub with a consumer-centric, demand-side approach to ticketing: ticket reservations. We iterated on this approach for a year and a half (including participating in the Techstars Music 2017 accelerator in Los Angeles) before pivoting and switching to a B2B event concierge approach.
Management responsibilities included managing the development team, splitting product management duties with our design lead, performing user interviews and crafting narratives, sprint planning, and working with my co-founders to craft company vision. In addition, I led development efforts, building proof-of-concept systems, choosing the right technologies, making the right choices regarding "technical debt", and making sure our products were deployed properly and in an automated fashion via Kubernetes.

Street Contxt (Software developer)
March to September 2016
Part of a development team responsible for maintaining and adding features to a research exchange/marketplace web application aimed towards investment banks. Technologies used include Scala/Java, Solr, PostgreSQL, Apache Spark, Webpack, React, Knockout.
The majority of my time here was spent optimizing our search infrastructure as well as ensuring that our emails were not flagged as spam or low-quality.

LyricFind (Team lead)
June 2012 to March 2016
Project manager/software team lead (of 8) for a music lyric licensing provider. Successfully delivered a project to rebuild our backend system (Spring MVC/MariaDB/Solr), precipitated by a fundamental business direction shift.
Management responsibilities included interviewing/hiring full-time and co-op developers, setting short- and medium-term development goals, motivating and challenging the team, leading collaborative design sessions, building time projections and gathering requirements/scope from the CEO/CTO in order to deliver their vision. UI and UX design and prototyping for multiple internal data entry systems.

Other substantial projects I've worked on include Live Lecture (an education-focused video streaming platform built with Python and Wowza), DCS Infosys (a project to digitise the records of the Department of Computer Science at the University of Toronto), and JSCOOP (a Java/Eclipse implementation of the SCOOP paradigm from Eiffel; screencast available here).

Selected projects

pgshpostgres tools for local development (github)
sendy videocollect video greetings from your friends (github)
colleqsocial coding in your IDE (wip)

Selected technical skills

Front-endReact, Gatsby, Webpack, GraphQL (Apollo, urql), Typescript, Webpack / Babel, styled-components, performance profiling
Back-endNode.js, Java, Python, PostgreSQL, MySQL, Prisma, Graphile, Redis, ElasticSearch, email deliverability
TestingJest, JUnit, Selenium, Cypress
ProductJira, Confluence, Trello, Productboard
Devops*nix proficiency, Ansible, Docker, Kubernetes, Google Cloud Platform, Netlify, Heroku
AI / MLOpenCV, scikit-learn, NumPY, NLTK

Education

University of Toronto
September 2006 to August 2010
H.B.Sc. with Distinction, Computer Science
Specialty in Artificial Intelligence, Parallel Processing

References

Available by request.