Highly opinionated developer looking to make codebases and teammates better. Experience in monoliths and microservices, monorepos and manyrepos. Builds features and fixes build tools.
Experience
2022 — Now
2022 — Now
San Francisco Bay Area
2020 — 2021
2020 — 2021
Berkeley, California, United States
* Built ETL tool to gather metrics from CI system's reliability and performance, reducing failure rate on CI jobs by nearly 50% in 2 months
* Rewrote most existing infrastructure-as-code, separating out infrastructure deployment from service deployment, improving deployment maintainability and reliability
* Authored and deployed the first Helm-managed service on Kubernetes at the company, kickstarting the push for Kubernetes-based deployments elsewhere
* Rebuilt fragile and/or highly interconnected portions of the build system in Bazel to reduce surprises while writing code
* Initiated push to use a binary package manager for internal and external artifact delivery. Deployed, configured, and managed the binary package manager
* Managed release process, from cutting branches to deploying test bed environments to performing security scans of release candidates
2018 — 2020
2018 — 2020
San Francisco Bay Area
At some point in late 2017 or early 2018 it became clear that I was no longer a quality engineer but rather a software engineer developing features for the core product.
* In conjunction with my time as a quality engineer, evolved from a bash know-its-all to a highly-opinionated Java developer.
* Wrote the curriculum for a yearly software engineering best practices reading group. The goals of the group are to make interns and new hires more productive in their codebases in a short period of time.
Helped build a distributed database enabling customers to synchronize data across different instances of the Gotham data analysis platform. This data sharing (called Nexus Peering) is resilient to network failures and tracks data history across different data and security models.
* Rewrote database schema allowing Nexus Peering to track non-Gotham source systems
* Improved reliability and performance of end-to-end Nexus Peering test infrastructure by 8% and around 25%, respectively
* Worked to standardize the way developers set up local environments
2015 — 2018
2015 — 2018
San Francisco Bay Area
* Managed test infrastructure for a specialized, distributed database. Test failures would result in blocking releasing of the core product.
* Learned Java while in this role
* Expanded my knowledge of the core product codebase to a point where it was unclear to people (including myself) whether I was a developer or a quality engineer.
* Learned to interact with AWS, Jenkins, and other third party infrastructure.
* Wrote several features in the core product to improve its debug-ability.
* Wrote many bug fixes to the core product, most discovered by the test infrastructure.
End date is very rough and specifies more when I felt like my day-to-day role changed from mostly quality work to mostly development work.
2014 — 2014
San Francisco Bay Area
• Tested data analysis software as a member of the RQE team.
• Performed end-user and final pass testing before releases to ensure shipped product met performance and functionality requirements.
• Documented new features and functionality and wrote workflows to ensure proper test coverage in the future.
• Refactored many old testing workflows to be deterministic, repeatable, and, most importantly, readable.
• Designed and developed a plugin to visualize MLB’s PITCHf/x pitch data to demonstrate the platform's ability to visualize such data.
Education
University of Chicago