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
  • Sub-specialization in human-computer interaction
  • Thesis: "Enhancing Interfaces for Scholarly Peer Review"
  • Awarded the NSERC Julie Payette Research Scholarship given to the top 24 applicants in Canada
  • Won best project in haptic design course (see prototype)
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