American Fork, UT | 2017–2018
Senior Software Quality Assurance Engineer (Team Lead)
Moved into this position to improve QA processes, coordinate and build out the test automation suite, and mentor junior team members and interns. Improved development and QA engineer coordination and implemented ways to reduce time spent by engineering on outside requests. Continued to serve as the point of contact for Customer Experience team escalations to engineering.
- Reduced time needed for accurate regression testing by ~50% through the improvement and increase of QA engineer involvement early in the development lifecycle, the targeting of critical areas of new and existing functionality, and the identification and stressing of historically problematic areas of product functionality.
- Decreased QA ticket pickup times by improving ticket visibility and the customization and standardization of Jira issue workflows.
- Reduced escalations to engineering by ~75% by providing non-engineering employees with self-service functionality to submit, search for, and report on engineering tickets.
- Implemented and drove a consistent bug triage process involving internal stakeholders from each department.
Senior Software Database Quality Assurance Engineer
Hired to assist with backend testing, with a focus on data validation and test automation.
- Jump started architecture and development of test automation frameworks for RESTful APIs.
- Served as point of contact for Customer Experience team escalations to engineering.
Salt Lake City, UT | 2011–2015
Quality Assurance Manager
- QA Team: 8–12 full-time employees and contractors, 2 sites (UT and CA), QA Engineers (Junior, Mid, Senior)
- Doc Team: 2–3 full-time employees and contractors, 1 site (UT), Technical Writers (Junior, Senior)
Promoted to this role after the current manager left the company. Continued to advocate for product and corporate quality improvements, mentor QA engineers and developers on QA processes and best practices, and to build a culture of quality across the entire company. Aided in the transition from traditional software delivery to a SaaS platform including modifying engineering workflows from one application instance per engineer or tester to two shared non-production environments across the company.
- Decreased the number of post-release defects discovered by ~90% through improved regression test selection, increased awareness of and focus on real-world application usage, and an improved focus on product quality from the earliest stages of a change forward.
- Reduced final regression test pass length by 91.6% (36-person weeks to 3-person weeks) through:
- Selectively testing areas of high-visibility or criticality as well as areas with a history of being excessively buggy
- Carefully selecting areas of the application suite to test which were directly or indirectly impacted by changes
- Testing a sample subset of unchanged functionality to validate continued expected behavior
- Developed and implemented an 85% reduction of the time (26 days to under 4 days per issue) between development completing work on a code change and QA beginning to validate the change by:
- Involving QA engineers early in the design, scoping, and development process
- Writing initial test cases for a code change as soon as scope and behavior was determined rather than upon developer handoff to QA
- Increasing internal training on testing methodologies and internal products
- Increased visibility and accountability of code and test quality for both technical and non-technical stakeholders through:
- Obtaining team lead, manager, and executive buy-in for implementation of TDD processes and training
- Implementing formal peer reviews of all code changes
- Improving and standardizing custom Jira workflows, reporting, and availability across the company
- Engaged QA staff in the SaaS platform release window and validation process, as well as post-release monitoring to provide ongoing feedback for the first few days after deployment to the executive team. This also allowed for increased and improved communication between Engineering, Operations, and Support teams.
- Encouraged and modeled improvements in cross-team and cross-department communications, especially with support and services teams to better understand customer needs and areas of pain, which provided more insight into real-world product usage for use in code changes and test scenarios.
Senior Software Quality Assurance Engineer (Team Lead)
Stepped up to this role without being asked to when the current team lead left the company. Continued to improve and execute existing testing processes and to mentor junior team members. Took over and completed development of prototype automation framework in Junit and Sikuli from departed team lead.
- Produced test plans, test strategies, and product and project risk assessments for executive-level visibility into development and testing progress.
- Increased inter-team trust and communication through the implementation of a positive, collaborative, and productive post-mortem process and forum involving all stakeholders and involved technical individuals after major failures for root cause analysis and process improvement while eliminating finger pointing and inter-departmental politics from the discussion.
- Traced complex problems from application behavior, errors, and log files through to identification of environment configuration problems or bugs in code with proposed patches submitted to development.
Senior Software Quality Assurance Engineer
Recruited to aid the growing QA and documentation team with developing and formalizing testing processes. Performed black box and exploratory testing on NLP-based analytics reporting platform. Mentored intern and junior team members.
- Reduced test environment reset time by 96.7% (~5 hours to under 10 minutes) for an on-premise environment configuration on multiple Linux versions and Windows consumer and server products and supported underlying databases.
- Developed and implemented reliability, scale, load, and performance testing procedures and guidelines across the complete product suite including goals and expectations for release criteria as well as post-release defect levels.
Transitioned to a development role to fill a needed position on a two-person team. Contributed to all parts of the product codebase.
- Designed and implemented a stand-alone configuration tool for real-time monitoring enterprise software.
- Produced bug fixes and implemented new features in Quest Management Xtensions for MOM, an enterprise operations management software package using C++ and C#.
- Designed and wrote SNMP based management packs for QMX for MOM.
Quality Control Engineer
Hired to build and maintain test lab hardware and operating system imaging processes for multiple flavors of Linux, MacOS, Unix, and Windows, including hardware and operating system versions that were several years beyond the product’s end of life date.
- Architected and built an automation framework and toolset and an internal test case management suite resulting in a savings of more than $80,000 over the cost of a commercial solution.
- Designed and implemented imaging and deployment solutions for all platforms resulting in an environment reset time decreasing 90% (~10 hours with heavy involvement to under 1 hour with minimal involvement).
- Edited and validated user manuals and lengthy and complex API documentation as part of each product release.