Engineering the Future of Software
November 13–14, 2016: Training
November 14–16, 2016: Tutorials & Conference
San Francisco, CA

Clone, clone, make: A better way to build

Dan Heidinga (IBM)
4:50pm–5:40pm Tuesday, 11/15/2016
Location: California West Level: Beginner
Average rating: ***..
(3.25, 4 ratings)

Prerequisite knowledge

  • A basic understanding of Git concepts and software development pipelines

What you'll learn

  • Learn how a simple slogan revolutionized how IBM's J9 Java VM team creates the software that powers your Java applications
  • Explore lessons learned from rearchitecting IBM's build pipeline around simplicity


IBM’s Java team found themselves with a problem: their highly performant, cross-platform JVM was too hard to build. Multiple languages, source control systems, and custom tools were required to produce a source drop, with still more required to compile product binaries. Coupled with long test cycles, developers were spending more time babysitting changes through the build pipeline than developing features.

Something needed to be done, so the slogan “clone, clone, make” was born—emphasizing that building software should be as simple as cloning one or two source repositories and running make.

Dan Heidinga explains how a simple slogan revolutionized how IBM’s J9 Java VM team creates the software that powers your Java applications and shares lessons learned from rearchitecting IBM’s build pipeline around simplicity, in the process, becoming a key enabler for driving innovation throughout the product stack. Join Dan to learn how the team ruthlessly simplified IBM’s build pipeline, migrated source control systems, and battled a decades worth of technical debt, all while open sourcing parts of the virtual machine as the Eclipse OMR project.

Photo of Dan Heidinga

Dan Heidinga


Dan Heidinga is J9’s Virtual Machine team lead and has been involved with virtual machine development since 2007. Dan represented IBM on both the JSR 292 (invokedynamic) and JSR 335 (lambda) expert groups and leads J9’s implementation of both JSRs. He’s spent entirely too long staring at Java bytecode while maintaining the verifier and still enjoys an occasional detour into Smalltalk development.