Hi there, I'm

Chris Pyles

I'm a software engineer at Google building distributed systems for automated capacity management.

Experience

  • Google
    May 2022 - Present
  • IXL Learning
    July 2021 - May 2022
  • Microsoft
    October 2020 - May 2022
  • UC Berkeley DSEP
    May 2019 - June 2021

Software Engineer

Google, May 2022 - Present

At Google, I work as an engineer on an internal automated capacity management platform for over 40k services and managing over 430k jobs. It's built as a set of distributed backends written in Python and Go backed by a distributed Spanner database. I redesigned and now own the capacity projection validator which evaluates ~100k capacity plans daily to ensure they meet service owner requirements and do not violate configured constraints before actuation.

I've proposed and led several efforts to reduce technical debt within our system, including cleaning up over 10k lines of dead code from feature flags and cutting the loading time of our demand data charting pipeline by 80% by refactoring out unnecessary data parsing. Another of my previous projects was to create an application for orchestrating automated and manual service moves between service owners, resource managers, and product managers which has been used to move over 10k services.

Technologies: Go, Python, Spanner, SQL, gRPC/Protocol Buffers, TypeScript, Angular

Software Engineer

IXL Learning, July 2021 - May 2022

At IXL Learning, I was part of the Teacher Experience team, building tools that shape how instructors interact with IXL's platform. My most impactful project was developing personalized learning paths tied to students' NWEA MAP test scores — a feature that is now actively used by over 250k students nationwide. I also architected a follow-on project to clean up the technical debt introduced by that feature, pulling hard-coded logic out of the codebase and into flexible database tables. Within my first six months, I planned and led a project to support skill plan pinning for individual classes, which required new database schemas, refactoring of existing infrastructure, and new frontend components — all shipped on schedule.

Technologies: Java, Struts 2, JavaScript, React, Git, GitLab, Jira

Contract Software Engineer

Microsoft, October 2020 - May 2022

At Microsoft, I architected and engineered an open source Python auto-assessment solution called PyBryt that implements a unique autograding structure grounded in the philosophy that intermediate to advanced programming courses should not require students to follow a rigid scaffold for solving problems. I provided engineering support to a series of pilots of PyBryt in courses of up to 1,200 students per semester at UC Berkeley, Imperial College London, and Tel Aviv University. I spent most of the first half of my time at Microsoft working on the initial release of and developing new features for PyBryt.

In the latter half of my time at Microsoft, I shifted focus to driving the adoption of PyBryt beyond its pilot courses (while still working on feature development). I created a GitHub Action to automate the use of PyBryt as a continuous integration tool for student repositories; I then used this Action to orchestrate a full-scale implementation of a real-world grading pipeline using GitHub Classroom for collecting different implementations of algorithms to be used to construct exercises for interactive Microsoft Learn modules. I also authored a blog post and two Microsoft Learn modules on an introduction to and advanced uses of PyBryt geared towards academics looking to adopt the solution.

Technologies: Python, Jupyter Notebooks, Sphinx, Git, Tracing

Lead Developer

UC Berkeley Data Science Education Program, May 2019 - June 2021

I led a team of 8 developers working on 3 concurrent open source projects at a time often using previously-unfamiliar technologies. We used Agile methodologies to organize development cycles and encouraged parallelization of tasks, including performing code review and facilitating weekly meeting standups.

The main project I worked on is an open source Python and R autograding solution, Otter-Grader, that scalably grades students' programming assignments and abstracts away autograding internals for instructors, which has been adopted in several courses at and outside of UC Berkeley and has been used to grade assignments for over 10,000 students at UC Berkeley alone. Part of this work has been creating an open source community for development around GitHub and a public Slack to allow instructors and contributors to communicate effectively and to allow iterations on the package to be a community effort.

Technologies: Python, R, Docker, Azure, Google Cloud, Jupyter Notebooks, PostgreSQL

Education

Georgia Institute of Technology

Master's Degree in Cybersecurity

Estimated Graduation: August 2027 (part-time)

University of California, Berkeley

Bachelor's Degree, Major: Computer Science and Data Science (with Honors), Minor: Demography

August 2017 - May 2021

I graduated from UC Berkeley, earning a Bachelor's degree in Computer Science and Data Science. While at Berkeley, I tried to get involved in the campus communities surrounding my majors; I worked for two years at the Data Science Education Program, a subdivision of UC Berkeley's Division of Computing, Data Science, and Society. At DSEP, I worked not only as the lead developer for their infrastructure team, but also as a contributor for the data science curriculum and, eventually, as a TA for Data 100, a core upper-division data science course.

Skills

Languages

Python logo Python
Golang logo Go
TypeScript logo TypeScript
JavaScript logo JavaScript
SQL logo SQL
Java logo Java
R logo R

Concepts

distributed systems
RPCs
concurrency
microservice architectures
distributed database transactions
performance optimization
fault tolerance
test-driven development

Tools

Docker logo Docker
Spanner
gRPC logo gRPC
Protocol Buffers
Git logo Git
GitHub logo GitHub
GitHub logo GitHub Actions
PostgreSQL logo PostgreSQL
pprof

Open-Source Projects