GitHub

223 Pull Requests
in 11 Days

The recipe for building real software with AI agents.

Drive a fleet of agents by day, a few deep plans by night. Merge the wins over coffee. ☕

  • Builder's playbook
  • GitHub Copilot
  • Real software · real metrics
Julien Dubois
Principal Manager, Developer Relations at GitHub / Microsoft
github.com/jdubois · julien-dubois.com

Who am I?

Julien Dubois

Julien Dubois

Principal Manager, Developer Relations at GitHub / Microsoft

Java Champion GitHub / Microsoft JHipster 22k+ AI × code
  • Creator of JHipster · 22,000+ ⭐
  • 200+ international talks (Devoxx, SpringOne, Microsoft Build…)
  • Today: shipping real projects by managing AI agents

💭 The project I never had time to build

I always wanted a real developer UI for Spring Boot.

🔭 The itch

  • Every Spring app is a black box in development
  • Actuator gives you raw JSON, not a console
  • I wanted health, metrics, security and tracing in one embedded UI

🧱 The catch: it's massive

  • ~40 panels, each = backend + frontend + tests
  • Deep integration across a dozen JVM subsystems
  • By hand, one experienced dev: 6.5–8.5 months
I'd shipped a slice of this in JHipster years ago, but only for generated apps. A real console for any Spring Boot app sat on my wishlist for years. Too big to justify, until I stopped writing the code myself.

⚡ Then I did it in 11 days

223
pull requests merged
11
calendar days · v1 in < 2 weeks
~20
PRs merged per day
83k
lines of code shipped
The agents did the scaffolding, the panels and the tests. I did the judgement.

🖥️ What I built: BootUI

A production-grade Spring Boot 4 starter that adds an embedded, local-only developer console to your app.

🧩 Multi-module & deeply integrated

  • 5-module Maven build · Spring Boot 4 / Java 17
  • Actuator, Spring Security, Flyway/Liquibase, Hibernate
  • Micrometer/OTLP, GraalVM, OSV scanning, ArchUnit
  • Maven Central publishing · full CI

🎛️ ~40 feature panels

  • An embedded Vue 3 SPA, packaged in the starter
  • Each panel = endpoints + view + tests
  • Health, metrics, security advisor, vulnerabilities, tracing…
  • The biggest source of structural repetition

📐 The measured facts · v1.0.0

Derived from git history, PR metadata and code metrics, not time-tracking logs.

~264
commits on main
~223
squash-merged PRs (to #239)
~50k
Java lines · ~461 files · ~81 test classes
~52
Vue components · ~40 panels · ~35 e2e specs
~83k
total tracked source lines
~116
test suites (~81 Java + ~35 Playwright)
~5,800
doc lines + a VuePress site
5
Maven modules · 1.0.0 released

👥 One human driver + the Copilot agent (~44 commits), with dependabot, github-actions & one collaborator.

01

Calculating the performance gains

11 days of agents vs. the honest by-hand estimate.

Part 01 · The proof

✅ With AI: the bottom line

Built through a tagged 1.0.0 release by one developer driving the GitHub Copilot coding agent.

~11 days
calendar time, to 1.0.0
~80–110 h
actual human hands-on effort · ≈ 2 intense solo weeks
~20 / day
merged PRs · ~223 in ~11 days

🔍 With AI: the evidence

📈 Velocity

  • ~223 merged PRs / ~10.8 days (~264 commits)
  • Commit clock runs ~05:00 → midnight most days
  • Consistent with parallel async tasks, not continuous typing

🤖 Authorship pattern

  • "Copilot" is a named commit / PR author (~44 commits)
  • Repo ships copilot-instructions.md + per-panel conventions
  • The workflow was explicitly agent-oriented

🚢 Even on release day

  • VuePress docs site + Overview scanner dashboard
  • Token charts, a proxied-Hikari fix, a docs refactor
  • Polish that is itself several days of solo work

🧭 Where the human time went

  • Writing prompts, reviewing & merging ~223 PRs
  • Resolving CI failures (Spring Boot 4, Flyway 11, OTLP)
  • Review-and-orchestrate, not write-every-line

🛠️ Without AI: the honest estimate

One experienced Spring Boot + Vue developer, no AI codegen, through the same polished 1.0.0.

6.5–8.5
months of full-time work · ~28–36 weeks
~1,100–1,450
hours of hands-on effort
~40
feature panels = the dominant cost

🗂️ Without AI: where ~7 months goes

Estimated weeks per phase · one senior developer, no AI codegen.

Estimated work without AI, by phase Project setup and architecture: 1–1.5 weeks. Frontend foundation: 1.5–2 weeks. Core panels: 5–6 weeks. Complex integrations: 12–16 weeks. Safety and security: 1–1.5 weeks. Testing: 3–4 weeks. CI/CD and release: 1–1.5 weeks. Documentation: 2.5–3.5 weeks. Integration and polish: 2–3 weeks. All bars start at zero on the same 0 to 16 week scale. Solid amber reaches the lower estimate; lighter ends extend to the upper estimate. Project setup & architecture 1–1.5 wk Frontend foundation 1.5–2 wk Core panels (~15) 5–6 wk Complex integrations (~20 panels) 12–16 wk Safety & security 1–1.5 wk Testing 3–4 wk CI/CD & release 1–1.5 wk Documentation 2.5–3.5 wk Integration & polish 2–3 wk

Lighter bar ends show the ranges.

Overall estimate~28–36 wk ≈ 6.5–8.5 mo

⚖️ The verdict: with vs. without AI

With AI: project figures. Without AI: a solo-work estimate for the same 1.0.0 release.

Calendar time
Calendar time with and without AI With AI: about 11 days. Without AI: an estimated 6.5 to 8.5 months. Both bars start at zero on a 0 to 9 month scale, using 30-day months. With AI ~11 days Without AI ~6.5–8.5 months
Human effort
Human effort with and without AI With AI: about 80 to 110 hours. Without AI: an estimated 1,100 to 1,450 hours. Both bars start at zero on a 0 to 1,500 hour scale. With AI ~80–110 hours Without AI ~1,100–1,450 hours

Lighter bar ends show the ranges. Calendar scale uses 30-day months.

Throughput

~20 PRs/day, parallel
vs. a few features/week, serial

Human's role

Architect + reviewer
vs. author of every line

40 panels

Near-free to replicate
vs. repetition as the biggest cost

02

How to run it yourself

Six ingredients for agentic engineering.

Part 02 · The recipe

Agentic engineering, not vibe coding

~$2,000 of tokens across the sprint — about $9 per merged PR. That's the cheap part. The real question is when you pay for the code.

🎲 Vibe coding — low up front

  • No specs, no harness: you start shipping immediately
  • You pay in retry loops, and again six months later reverse-engineering code nobody understands
  • That's the maintenance tax — invisible on day one

🏗️ Agentic engineering — pay first

  • Specs, tests and CI cost you real days before the first agent runs
  • They keep your agent iterating toward a solid solution, rather than rushing out an incorrect answer
  • The harness takes real investment up front, but skipping it costs more later
1
Ingredient

Pick the right model for the task

🧠 Workhorse

GPT-5.5 Extra-High reasoning handles most of the work, ~90% of tokens served from cache.

🎯 The tricky parts

Claude Opus 4.8 and Gemini 3.1 Pro. Three strong models, cross-checking each other to find the best fix.

⚡ The easy stuff

A smaller model or "Auto" mode for simple, mechanical tasks. Fast and cheap.

💰 The whole bill

~2.7B
total tokens
~95%
served from cache
120M
fresh input · 15M output
~$2,000
total cost
2
Ingredient

Write the specifications

📜 Technical standards · AGENTS.md

  • Set the conventions once: stack, build, test, style
  • Repository instructions define the rules, not every task's procedure
  • Per-panel conventions so 40 panels come out consistent

🎯 Complete, clear business specifications

  • What to build, where, what "done" looks like
  • Acceptance tests the implementation must pass, even when using a skill
  • Small, self-contained, no hidden dependencies
The spec is the product now. The better the brief, the less you babysit.
3
Ingredient

Build the test harness

✅ A build + test they can run

  • One command runs compile, unit and e2e: green or red
  • Agents run the checks after using skills and tools, before opening a PR
  • No tests = you can't trust the output

🛡️ CI is the trust layer

  • ~116 test suites · ~81 Java + ~35 Playwright
  • CodeQL + e2e gate every PR to main
  • This is what lets you merge ~20 PRs/day safely
4
Ingredient

Equip your agents

From my recent BootUI sessions: reusable skills for the workflow, Java code intelligence when needed.

📚 Skills: reusable workflows

  • Impeccable — craft beautiful Web designs, fix accessibility issues
  • orchestrate — coordinate advisor audits across sessions
  • agent-merge — PR review, CI and conflict follow-ups
  • bootui-release — a custom skill written specifically to guide a BootUI release

🔎 Java LSP: occasional code intelligence

  • Ask the language server about symbols, not just matching text
  • Used to explore advanced Java modules and inspect code during review
  • The project needs to be indexed by the language server first

Recorded examples, 9 August–8 September 2026, plus the custom release skill; not a claim about the original sprint.

5
Ingredient

Split the work, run agents in parallel

🧩 Make it parallel-ready

  • ~40 near-identical panels = perfect to fan out
  • One task per agent: small scope, clear goal
  • One branch / worktree each, no collisions

🚀 A fleet, not one chat

  • GitHub Copilot App: many agents live on one machine
  • Mobile app: agents in Docker containers, on the go
  • Your throughput isn't your keyboard. It's your briefs.
The whole point is parallelism. Don't babysit one agent. Run ten.

🧑‍✈️ The mindset shift

I didn't open my IDE. I wasn't the developer. I was the manager.

🧑‍✈️ You · the manager
🎛️ Panels
clone the ~40 feature panels
🔌 Integrations
the deep JVM subsystems
🎨 Frontend
the embedded Vue SPA
🏗️ CI & docs
release, tests, VuePress

Many agents in parallel. You brief, review, merge.

You don't type faster. You ship what used to take months.

6
Ingredient · The daily loop

Drive the daily loop

⚡ most of the work: you, driving the fleet
9am11am2pm5pm7pm↻
☕ MergeLand last night's deep plans
Spec & launchBrief tasks, fan out the fleet
DriveReview, merge, re-task, live
DriveMost PRs land by evening
🌙 QueueA few deep plans for the night
↻ Repeat×~11 days → v1.0.0

Day: the engine

Hands-on all day: spec, launch, review, merge, re-task. Most of the ~20 PRs a day land right here.

Evening: hand off

Queue a few deep, long-running plans before you step away.

Night: the bonus

A handful of deep autonomous runs finish by morning. The minority, not the engine.

📋 The six ingredients of agentic engineering

1Pick the right model for the task — balance capability, speed and cost.
2Write the specifications — repository rules, scoped tasks and acceptance criteria.
3Build the test harness — runnable tests and CI checks before merge.
4Equip your agents — skills for workflows, tools for code intelligence and execution.
5Split the work, run agents in parallel — one task and branch each; you brief, review and steer.
6Drive the daily loop — drive by day, let a few deep plans run overnight, merge the results over coffee.
If there's one slide to screenshot, this is it.

🖥️ Build with GitHub Copilot App

The app we've been using throughout the BootUI project.

Your workspace for AI coding agents

  • Plan tasks and run agents in parallel, in isolated worktrees
  • Let agents edit code and run tests; inspect their diffs and review PRs
  • Keep planning, implementation and maintenance in one place
Scan to download GitHub Copilot App from its official GitHub page
Download GitHub Copilot App
One more thing…

BootUI isn't just my case study

A local developer console for Spring Boot 4 (MVC & WebFlux) and Quarkus.
Add the matching dependency, run in development mode, then open /bootui.

🔎 See inside your app

  • HTTP routes, beans, config, caches, SQL traces, messaging and JVM diagnostics
  • New bootui CLI: query the same diagnostics from scripts or a terminal

🩺 Advisors that tell you what's wrong

  • Security, memory, databases, Hibernate, REST, architecture and native-image readiness
  • Live CVE checks against the OSV feed for your actual dependency tree

🤖 And it makes your agents smarter

  • Opt-in MCP server: agents read runtime diagnostics and run advisors
  • Pairs with Coffilot in the Copilot App to build, run and scan your app
<!-- Spring Boot MVC starter · use only in development --> <dependency> <groupId>com.julien-dubois.bootui</groupId> <artifactId>bootui-spring-boot-starter</artifactId> <version>1.16.0</version> </dependency>
GitHub

Find my conference talks

Scan the QR code for current talks, slides and workshop information.

julien-dubois.com/conferences
Scan to open Julien Dubois's conference talks page