Skip to Content
View all events

Building Java Systems with Spec-Driven Development

Published by O'Reilly Media, Inc.

Implementing specifications, proofs, and guardrails

What you’ll learn and how you can apply it

  • Establish a durable project context and architectural guidance for AI-assisted development
  • Use behavior-driven development and specification by example to collaborate effectively with stakeholders and product owners
  • Apply proven Java testing tools and verification techniques to safely guide AI-generated code

Course description

Learn disciplined, verifiable, AI-assisted software development practices using modern Java tooling and spec-driven development (SDD) with Java Champion Daniel Hinojosa. By placing executable specifications at the center of the development lifecycle, SDD allows AI to iteratively build applications under disciplined, automated guidance.

In this two-hour course, you’ll explore why behavior-driven development (BDD) and domain-driven design (DDD) provide natural foundations for SDD. Using Cucumber as the source of truth, you’ll derive implementation plans, maintain a durable domain context, and leverage AI to generate code across multiple architectural layers. You’ll focus on guardrails and layered verification using modern Java tooling. Throughout the session, you’ll build features live using Java, JUnit, Cucumber, Rest-Assured, Testcontainers, Selenium, and ArchUnit and see how AI can accelerate delivery while increasing confidence through layered verification of behavior, architecture, and system boundaries.

If you don’t have access to all recommended tools or subscriptions, you’re still encouraged to participate. All workflows and exercises will be demonstrated live so you can follow the process, observe the techniques, and apply them in your own environment later.

This live event is for you because...

  • You’re a developer, tester, or stakeholder.
  • You work with Java and are getting into AI, or you are already using AI and you want to lessen the slop.
  • You want to become an engineer who uses AI, but responsibly.

Prerequisites

Prerequisites:

  • Experience creating and running Java projects
  • Familiarity with AI and tooling
  • Familiarity with a terminal
  • A local development setup or GitHub Codespaces environment (see below)

For local development setup:

  • A favorite IDE (preferably VS Code or IntelliJ IDEA)
  • An AI coding agent, such as Claude or Codex
  • JDK 21 or higher
  • Maven 3.9.x
  • Docker or Podman
  • Git

For GitHub Codespaces

  • GitHub account
  • A Claude or Codex coding agent account

Recommended follow-up:

Schedule

The time frames are only estimates and may vary according to how the class is progressing.

Concepts (60 minutes)

  • Presentation: State of AI-assisted development; spec-driven development; behavior-driven development; domain-driven design; vertical iterations and proofs; essential Java tools
  • Break

Execution (60 minutes)

  • Hands-on exercises: Setup; build the memory bank and use skills; write the spec; run the agent
  • Presentation: Industry comparison; creating a development “Constitution”
  • Q&A

Your Instructor

  • Daniel Hinojosa

    Daniel Hinojosa is a programmer, consultant, instructor, speaker, and author. With nearly 30 years of experience, he does work for private, educational, and government institutions. He loves JVM languages like Java, Groovy, and Scala (he was named a Java Champion in 2020), but he also works with non-JVM languages like Haskell, Ruby, Python, LISP, C, and C++. He’s an avid Pomodoro Technique practitioner and makes every attempt to learn a new programming language each year. Daniel is the author of Testing in Scala and the Beginning Scala Programming Video Series, both for O’Reilly. In his downtime, he enjoys reading, swimming, building with Legos, and cooking.

    Xlinksearch

Skills covered

  • Java
  • Native Android Development
  • Design Patterns
  • Java 8