Developed from scratch an end-to-end implementation of Regression Test Selection (RTS): selecting only the test suites that could have possibly been affected for a given set of code changes/pull request.
•
Using static analysis of the codebase and historical test execution data, generated relations among test suites, source files, and types. Used these relations and a commit’s changes to select only the relevant test suites.
•
Implemented test selection and relation generation within C3 Type System (Java), and integrated with current testing framework in Jenkins CI pipeline.
•
Reduced average test execution time per build from 6+ hours to 2 hours, thereby reducing average build time from 10+ hours to 6 hours.
Shoreline provides real-time monitoring and automated incident management on their customers’ computing fleet. On the execution and platforms team, I helped extend the service from AWS to include Azure and implemented performance optimizations.
I increased the efficacy of fleet-wide metric queries and linux commands by pruning the data sent from
backend to Shoreline agents running on each computing instance to include only the necessary data. I reduced large-scale metric queries execution time from 4-5 seconds to less than 1 second for a 200-agent environment.
In my main project, I expanded Shoreline’s target cloud providers by developing new Azure agent to run on Azure VMs, in addition to AWS EC2 instances. I Implemented resource discovery of VM’s, including both registering and de-registering a VM host, along with its relevant tags and attributes, in the Shoreline database. For deregistration, I used a gRPC connection with protocol buffers for communication across microservices. I adapted metrics collection for Azure VMs, and added tests to CI/CD pipeline to ensure every code change additionally gets tested on Azure platform.