About me

Skill Summary

Technologies: Bazel, Python, Docker, Continuous Integration

Skills: Building, testing, debugging, contradiction analysis

Experience

Lead Build Systems Developer - IBM Quantum

Nov 2023 - Current

  • Moved to a new role as lead build systems developer to focus full time on the build infrastructure.
  • Continued to improve and maintain the bazel build system.
  • Ran feedback sessions with developers to better understand their pain points. Then using contradiction analysis I provided detailed plans on what the path forward would be.

Senior Test Developer - IBM Quantum

Nov 2020 - Oct 2023

  • Improved the CI process for an existing critical software component, reducing CI build times from over an hour down to less than 10min and improved test reliability.
  • Standardized the build and test process for Python language projects.
  • Used contradiction analysis to determine the best course of action for our next generation of software development. I came to the conclusion that we needed a solid foundation to build on, and that would be a monorepo+bazel approach.
  • Independently researched, advocated for, implemented, and deployed a monorepo+bazel migration for our next generation critical software components. This work was done after development had already started, and I needed to maintain parallel build systems across several repositories until the migration was complete.

Lead Test Developer - SSIMWAVE (now part of IMAX)

March 2019 - Oct 2020

  • Took ownership of the company direction with respect to test automation.
  • Increased automated backend regression coverage from less than 1% to approximately 75%, while simultaneously vastly increasing test permutations and individual test assertions.
  • Created tools for internal use to decrease manual test setup time. This provided a 1 click, reproducible, and reuseable way to setup and share test configurations throughout the organization.
  • Reduced release cycle regression test time from several weeks, utilizing multiple full time staff and 4 co-op students, down to approximately two weeks with reduced full time staff focus and only 1 co-op student.
  • Acted as the first responder for post-merge issues; quickly debugging and sorting failures, and contacting those involved.
  • Assisted developers company-wide with Python related questions.
  • Mentored and trained co-op students.
  • Key techs: Python, unittest, Jenkins, ffmpeg, Bazel, Py36:Typing

Product Test Engineer - North Inc (formerly Thalmic Labs)

Jan 2018 - Feb 2019

  • Defined, implemented, and maintained several complete manufacturing test solutions
  • Programmed configurable test stations featuring an easy to use interface, multiple levels of access, different operational modes, and more. All written in Python 3.6.
  • Performed runtime analysis on station software to identify bottlenecks to improve cycle time. One example being taking a semi-automated process from 40min, to full-automated 20min, to 13min optimized.
  • Built a complete Python based library for station software to easily log test data to the manufacturing database, published to an internal PyPI server that I requested. This included tests via pytest, type hinting via Py36 Typing module, and static typing analysis via mypy.
  • Utilized numpy, pandas, and matplotlib to do basic data analysis on manufacturing data.
  • Assisted other teams and individuals with Python related issues
  • Built several one-off tools to help non-programmers gather test & measurement data, featuring a GUI and delivered as a single executable, written in Python.
  • Facilitated DFT reviews with design and production teams.
  • Lead team wide conversations about test station software standardization.
  • Participated in GR&R studies for several process steps.
  • Helped train technicians and co-op students.

Test Developer - D2L Corporation

May 2015 - Dec 2017

  • Initiated, designed, and implemented a new test framework to allow teams using Angular.js or React.js to include automated UI tests in their continuous integration process
  • Devised test plans for the team's projects to aid in regression testing
  • Convinced a team I recently joined to delay ship date by one month to improve product quality, resulting in a great product and company-wide recognition for my efforts
  • Promoted a culture of quality through driving continued adoption of quality, meaningful unit tests and code coverage metrics

Owner - Galvant Industries

2012 - Current

  • Started the open source Python library InstrumentKit which features maintainable automated unit tests using Python Nose and Travis CI
  • Designed several open source products involving prototyping, firmware development using C, testing, debugging, documentation, and post-release updates
  • Performed thorough code reviews of pull requests to ensure that project style, quality, and Python PEP8 coding style standards are met

Graduate Research Assistant - Institute for Quantum Computing

Sept 2011 - Feb 2014

  • Tested and debugged a variety of hardware and software projects
  • Designed a spectrometer with superior specifications and lower cost point than previous\equipment
  • Mentored and trained co-op students

Education

Masters of Science - Physics - University of Waterloo (Sept 2011 - Feb 2014)

Bachelor's of Science - Honours Physics - University of Waterloo (Sept 2007 - Aug 2011)