Employment
Senior Software Engineer
Aspect
Mar 2023 - Present
- Built the Google Cloud version of our flagship Workflows product: a self-hosted complete bazel CI solution with autoscaled optimized CI runners, delivery, warming, support for Buildkite, CircleCi, GitHub Actions, and GitLab CI platforms, managed buildbarn, external OIDC authentication, and graceful preemption
- Built our anthropomorphic robot Marvin (GitHub bot) who provides customers helpful feedback about bazel builds directly on pull requests
- Supported many customers deploying Workflows to their cloud, optimizing for performance and cost, answering bazel questions, and troubleshooting infrastructure
- Added build provenance attestation support to Publish to BCR (Google contract)
Software Engineer
Aspect
Nov 2021 - Mar 2023
- Contracted by Google's Angular team to migrate the angular.io documentation website to bazel, significantly reducing build times (~2m cached)
- Created the Publish to BCR GitHub app to support adoption of bzlmod and converted several of Aspect's rulesets to bzlmod
- Completed rules_js migrations for two large clients
- Contributed to the bazel OSS community by building out early toolchains and rules in bazel-lib including jq, yq, and write_source_files, and did early work on rules_js patching, lifecycle hooks, and parsing pnpm lockfiles (I wrote a functioning yaml parser in starlark)
Software Development Manager
Allocadia
Mar 2021 - Oct 2021
- Led my full-stack feature team of four engineers through cycles of feature discovery, exploration and design, and build, espousing domain driven principles, iterating to value, leading by example, and acting as a technical leader and people manager
- Worked closely with PM and UX to conduct primary research with customers and engage in strategic roadmap discussions to shape the direction of the product
Software Developer
Allocadia
Oct 2015 - Mar 2021
- Full-stack development on a legacy Java/AngularJS marketing performance management solution
- Led features in a greenfield project using an event-based microservice architecture built in Java 11 and Angular 2+ with TypeScript, using a bazel monorepo
- Implemented design system componentry, shared libraries for importing large datasets, test infrastructure, inter-service communication patterns, tactical DDD implementation, and more
Education
Master of Science in Computer Science
University of British Columbia
2013 - 2016
Bachelor of Science in Computer Science
University of Manitoba
2007 - 2012
- First class honours, co-operative option
- Engaged in robotics research publishing "Would you do as a robot commands?" in iHAI 2013 (see paper)
- Competed in FIRA 2011 robotics competition in Taiwan, breaking the existing record for the small humanoid robot marathon event