about me
Skill Summary Link to heading
Technologies: Bazel, Python, Docker, Continuous Integration
Skills: Building, testing, debugging, contradiction analysis
Experience Link to heading
Lead Build Systems Developer - IBM Quantum Link to heading
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. This solid foundation allowed several teams to rapidly and confidently test, integrate, and deploy our generation-3 runtime code, culminating in our impressive CLOPs performance improvement announcement as part of QDC 2024.
- 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 Link to heading
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 (acquired by IMAX) Link to heading
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 (acquired by Google) Link to heading
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 Link to heading
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 Link to heading
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 Link to heading
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 Link to heading
Masters of Science - Physics - University of Waterloo (Sept 2011 - Feb 2014)
Bachelor’s of Science - Honours Physics - University of Waterloo (Sept 2007 - Aug 2011)