Joshua Cannon
Build Engineer who cares deeply about “Developer Experience”
Experience
Team Lead - Build Engineer - IBM WatsonX Orders (previously McD Tech Labs)
- Supported the entire engineering org in all things Build Engineering
- Migrated our core build tooling from Bazel to Pants, resulting in:
- >10 Minutes saved on local and PR runs of the static analysis and test pipeline
- Over twenty thousand of lines of BUILD metadata collapsed into 800
- A better developer experience
- Introduced several new static analysis tools to our toolkit to help catch issues early in the SDLC
- Pioneered the ability to dockerize any file with:
- bit-wise reproduction capabilities
- maximum leveraging of the docker layer cache, yielding fast re-builds
- automatic dependency upgrades
- Resident “Pythonista” offering support and solutions to all engineers for our entire codebase
Overall, removed hurdles and blockages that were interrupting an engineer’s ability to focus on writing production-ready application code, while still increasing code quality and security.
Senior Software Engineer - National Instruments
- Led company-wide Python coding conventions and best practices group with am emphasis on automated tooling
- Aided the design and implementation of a new company-wide CI/CD pipeline with a focus on flexibility, performance, and ease-of-use
- Designed and implemented foundational C++ device API engine to replace outdated C-based implementation which resulted in better testing support, cleaner code, and in some cases 4x speed improvement
- Created/Maintained backport library of subset of “modern” C++ STL to be used with older compilers
Technical
- Pantsbuild
Maintainer of the Pantsbuild open source Build system
- Contributed over 300 of bug fixes and feature improvements with a focus on:
- Simplifying the experience of all users of Pants
- Making commands run as quickly as possible
- Upstreaming all of my internal plugins, so the community benefits
- Provided Slack and GitHub support for the entire Pants community
- Programming Languages
- Python: Expert-level experience with a wide swath of the Python ecosystem. From the interpreter and standard-library, to commonly-used libraries, to full-stack development, to tooling for static analysis, packaging, and testing.
Intermediate knowledge of C++, Rust, JS/TS
Education
- 2013-2016
- BS, Computer Science; The University of Texas (Austin)
joshdcannon@gmail.com | GitHub:thejcannon | @thejcannon@fosstodon.org