Hey, I'm Spencer.
I'm a web developer and University of Toronto Computer Science 2017 graduate. I've been working primarily as a frontend web developer since I started programming, and have built a passion for frontend infrastructure and tooling. I like optimizing developer workflows by understanding and using modern tools, writing plugins, and contributing back to open source.
I've worked at:
Yolk Inc from August 2018 to December 2020.
- Using expert-level knowledge of the web platform and related technologies (Node.js, React, TypeScript, GraphQL, Docker), I was responsible for configuring infrastructure and establishing best practices for building web applications across the company, in addition to feature development.
- Led efforts to make the development experience simple, fast, and correct. Established a monorepo architecture, designed a CLI to launch applications for development in Docker Compose, configured a parallelized continuous integration pipeline using CircleCI, among other tools which power localization, linting, testing, and building across the codebase.
- Led efforts to adopt a federated GraphQL API using Apollo on the server and client.
- Encouraged collaborative, documented architecture and design decisions using RFCs.
Microsoft from July 2017 to August 2018.
- OneDrive web team, serving both OneDrive for consumers and OneDrive for Business.
- Built the web frontend for the "Restore your OneDrive" feature, using React, TypeScript, and Highcharts.
- Drove the adoption of optimized developer workflows, using Jest and webpack. Improved inner dev loop performance by 10x.
EventMobi during Summer of 2014, and from May 2015 to August 2016.
- Used AngularJS to build API-driven user interfaces.
- Drove the adoption of developer workflows with a faster inner dev loop, replacing a Grunt task runner-based system with webpack.
- Co-architected an offline-enabled, hybrid web/mobile app using Cordova, React, and Redux. Solved problems related to network reconnection, cache invalidation, and cross-platform offline storage.
I like contributing back to open source to help identify and fix issues found by myself and the developer community. Some examples:
- [webpack] Enabled the ability to use webpack hot module replacement in web workers.
- [react-native] Added the ability to automatically open the Chrome debugger on Linux and Windows.
- [next.js] Debugged and documented an issue preventing Next.js from working with pnpm.
- [jscodeshift] Collaborated to drive TypeScript support.
- [Ackee] Added support to deploy to Vercel.
- [rushstack] Feature request to support a workflow with isolated Docker containers.
I'm also familiar with:
SQL and NoSQL databases, Python, Java (on desktop and Android), Pebble smart watch, C.
I am currently open to Toronto-based opportunities. If this sounds interesting, please reach out to me at email@example.com.