Keeping your Gradle builds in top shape

Which tasks are the slowest running tasks? Who has the slowest builds on my team? Which task is getting the most cache misses?
These questions and more can be easily answered with the new Gradle Enterprise API.
Come learn about how to automatically check your build's cacheability and find out who on your team is suffering the most painful builds.

Presented at Droidcon San Francisco June 2nd 2022 and Droidcon Berlin July 6, 2022

Slides available here.

Video available here.


This talk covers why cache misses happen, how to diagnose them, and why Gradle can't always automatically fix them for you. We'll also dive under the hood of the Android Cache Fix plugin to figure out some of the dirtiest cache misses in the Android ecosystem and why they still exist.
Presented at Droidcon Berlin Oct 20, 2021 and Droidcon London Oct 29, 2021

Slides are available here.

Video is available here.


In this episode, we talk about Gradle Doctor with its author Nelson Osacky. Gradle Doctor finds and fixes performance problems and errors in your Gradle build. The tool works as a Gradle plugin - emitting prescriptions for all the problems found. Nelson tells us how he came up with the idea behind this tool, and what the future is for Gradle Doctor.


Perspectives from a Gradle Solutions Engineer

This talk covers some of the most common build issues causing slow Gradle builds from seeing many different builds as a Gradle Solutions engineer. This also covers future performance improvements to the Gradle Build tool regarding ease of use and performance.
Presented at Droidcon America Online Nov 16, 2020
Video is available here
Slides here


Beyond Modularization: Scaling your Android Build with Gradle

Tips and tricks on how to scale your Android build with Gradle.

How to measure performance improvements and gain insights using Gradle Enterprise.

Watch the talk here
Slides are here


Build scans provide some very useful information about Gradle Builds. Build time, configuration time, task execution time. Scans even show garbage collection time, time spent downloading dependencies, time spent in annotation processors? What can you do with all this data?

In this talk I'll share how to surface actionable information from your Gradle build immediately to developers without using the build scan plugin or Gradle Enterprise.
Watch the talk here.
Android Makers April 20, 2020
SpeakerDeck Slides


Back in the day Java dependency injection frameworks were purely runtime based like Spring and Guava. Dagger 1 introduced a compile time component as well as compile time safety and Dagger 2 took the concept even further. Now we're going back to runtime with Dagger Reflect in an effort to improve local developer build speeds. This talk will cover the reasons for building dagger reflect, how it works under the hood, how to use it in your project as well as how it is developed.

Video Here. Slides here.

Given at DroidCon Berlin - 2 July 2019


This talk covers what Gradle task caching is, some details about how we use our remote build cache at SoundCloud, and how we massively improved the effectiveness of our cache by solving remote build cache misses.

Video here. Slides here.

Given at Gradle Night Berlin - 8 April 2019


Can Kotlin Save me from my Groovy Buildscripts

This talk covers migrating your build.gradle files from Groovy to the new Kotlin DSL. It also covers some advantages and disadvantages of doing so as well as how the DSL works under the hood.

Recording is here. Slides here.

Given at DroidCon Berlin, 27, June 2018


How to scale UI testing from 1 Espresso test to hundreds and get results quickly with little infrastructure in a small startup.

Slides here.

Given at BerlinDroid, 29 Nov 2017