Principal Software Engineer, Puppet
Jan 21, 2021
Deployed a Backend System
Improved workflows
Wrote a New API
Wrote Ruby Code
Reduced Developer Cycle Time
Built a New Microservice
+ 4
As part of my team's open source maintainer responsibilities, we review and merge community contributions across ~70 public repositories. A major part of this work was maintaining complex CI scripts on a private Jenkins instance with limited resources. The weak CI system meant a lot of churn and rework as problems only surfaced after merges or through customer reports.
To address these issues we formed a small task force (myself and two senior engineers) and re-built the entire CI process on top of Github Actions with a custom service on GCP to provision ephemeral compute resources for our required system integration tests. The new CI pipelines use a mix of docker containers and full GCP-hosted VMs (for licensed systems) for system integration testing. Now all our public Open Source repos have fully automated CI responses within 20 minutes, nightly scheduled builds and less than 2% overall failure rates for about 20 USD per day. Through full integration with Honeycomb we get real-time, easy to query insights across service and test health.
Throughout the project I drove technical direction, system and API design, cloud strategy (services, environments, deployment), collaborated on project management with the engineering manager, and assisted my team members to skill up on the new technologies.
Skills and technologies used: Ruby, sinatra, RSpec, terraform, GCP (Cloud Build, Cloud Run, Container Registry, Firestore, Compute Engine, Cloud Storage, networking), Swagger/OpenAPI, Honeycomb, Github Actions, system-level testing, CI/CD