Monorepos are powerful tools to drive code standardization and boost engineering velocity. Moreover, they allow for centralized enforcement of platform standards and simplified dependency management, allowing developers to focus almost exclusively on business logic. All of this comes at the investment cost of dedicated staffing and tooling to overcome technical limitations of version control, build systems and release pipelines.
Learn how DoorDash augmented Gradle’s capabilities to provide a better local development and CI experience for our large codebases. Leveraging Gradle’s composite build feature, we developed some custom tooling that allowed us to build a project graph and accurately compute affected targets for a given change. Subsequently, we’ll talk about options we explored to distribute our builds using Jenkins over Kubernetes as well as an in-house remote execution service, and their trade-offs.
This talk will walk you through our journey building and operating our Gradle-based Kotlin backend monorepo for libraries and servers, over two years. We will expand upon key technical choices that we made, their tradeoffs, and what we think our future direction will be.