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:
- Take Spec-Driven Development with Claude Code (live online course with Harshit Tyagi)
- Read Full Stack Testing (book)
- Take Agentic Coding with OpenAI Codex CLI (live online course with Ken Kousen)
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.
Skills covered
- Java
- Native Android Development
- Design Patterns
- Java 8