Put open source to work
July 16–17, 2018: Training & Tutorials
July 18–19, 2018: Conference
Portland, OR

Machine learning for continuous integration

Joseph Gregorio (Google)
11:50am12:30pm Wednesday, July 18, 2018
Artificial intelligence, TensorFlow
Location: Portland 251
Tags: tensorflow
Level: Intermediate
Average rating: ****.
(4.20, 5 ratings)

Who is this presentation for?

  • Software and DevOps engineers

Prerequisite knowledge

  • A basic understanding of statistics (mean, median, etc.) and linear algebra (vectors, matrices, etc.)

What you'll learn

  • Explore Skia
  • Learn how to mine your data to drive improvements in your development process


Your continuous integration process produces torrents of data. Joseph Gregorio explains how to mine that data to drive improvements in your development process.

Joseph offers an overview of Skia—an open source 2D graphics library that provides common APIs that work across a variety of hardware and software platforms—and demonstrates how it uses softmax regression and k-means clustering to improve its software development cycle. Skia serves as the graphics engine for Google Chrome and Chrome OS, Android, Mozilla Firefox and Firefox OS, and many other products.

Testing Skia requires running a large number of correctness and performance tests over a large number of devices and operating systems, including Android, iOS, Windows, Linux, and macOS. The combinatorics involved mean that a huge amount of test data is produced (e.g., 30 million rendered images and 7.5 million performance metrics). Joseph outlines the ways Skia has mined that data using Go and TensorFlow to guard against regressions and discusses how other testing data is used to predict which tests should be run first to speed up development feedback.

Photo of Joseph Gregorio

Joseph Gregorio


Joseph Gregorio is a software engineer working on the Skia graphics library at Google. Joe is the editor of the Atom Publishing Protocol and the coauthor of the URI Templates spec. He has a deep interest in web technologies. He wrote The RESTFul Web column for the online O’Reilly publication XML.com, wrote the first desktop aggregator written in C#, and has published various Python modules to help in putting together RESTful web services such as mimeparse, httplib2, and the google-api-python-client. Joe is interested in Go, Polymer, Web Components, REST, web services, APIs, URI templates, the Atom Publishing Protocol, big data, and any linear combination of such.