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
Concepts
Tools
Open-Source Projects
Otter-Grader
Otter-Grader is a Python-based server-optional autograding solution that can grade both Python and R assignments.
Utilized: Python, R, Docker, Jupyter Notebooks, GitHub Actions
PyBryt
PyBryt is a Python auto-assessment tool designed to avoid the rigidly-structured unit test based autograding format of conventional autograders.
Utilized: Python, Jupyter Notebooks, Git, Sphinx, Tracing
fica
fica is a Python package for managing and documenting configuration files. It can be used to define a type-safe structure for a configuration object and, in conjunction with Sphinx, create simple, formatted documentation for each value.
Utilized: Python, Metaprogramming, Sphinx
Contrastinator
The Contrastinator is a small utility for building color palettes with helpers such as a color contrast calculator and random palette generation. It's a serverless Angular single-page application.
Utilized: Angular, TypeScript, Node.js
Amaze
Amaze is a small maze game that generates random mazes for you to solve and uses depth-first search to find the solution to the maze. It's a serverless Angular single-page application.
Utilized: Angular, TypeScript, Node.js
datascience
datascience is a pedagogical Python package for data science. I worked on the use of interactive plots created with plotly and expanded the mapping functionality with folium.
Utilized: Python, plotly, folium