RoboCoders: Judgment Day — AI Coding Agents Face Off (JNation Extended Cut)

JNation 2026 Video Coming Soon
A presentation at JNation 2026 in May 2026 in Coimbra, Portugal by Baruch Sadogursky and Viktor Gamov

Abstract

Three hours, six stages, three AHA moments. The 180-minute extended cut of the talk that ran 45 minutes at KotlinConf 2026 four days ago — same dual-agent showdown (Claude Code on Opus 4.7 vs JetBrains’ Junie on Gemini Flash 3.5), same Kotlin/JVM stack, same hardware (smart bulb, camera, two LED light bars), but with the runway to actually teach what’s happening underneath. Stage 0 lands the opening salvo: in a Kotlin Gradle project, “write a program that turns on my smart bulb” produces Python — and when you ask for Java instead, you get Java that calls Python via ProcessBuilder. One tessl install jbaruch/kotlin-tutor flips the language, the HTTP library, and the build tooling without a word of the prompt changing. Stages 1-2 show face detection and identity recognition working almost — with a live audience-member enrollment beat, occlusion stress tests, and the calibration boundary visible to the room. Stage 3 is the first AHA: a confidence semaphore on Govee H6056 light bars where the cloud API returns 200 OK on commands targeting phantom segments, the textbook confidence formula compresses strong matches into the middle band, the fill direction is upside-down, and three more language-agnostic misses (rate-limit ignorance, color-space mismatch, retry-storm-amplifies-rate-limit) pile on — seven silent failures, all simultaneously, all without a single exception. Four Tessl plugins fix every one of them in a single install beat, with an extended walkthrough of what’s actually inside each plugin. Stage 4 is the second AHA: decompose into sub-agents and every Stage-3 gain disappears — six distinct delegation failure modes (fresh context, plus three new for the extended cut: context-window pollution, echo-skill spoof, interleaved tool-call corruption). The sub-agent-delegation meta-plugin restores correctness with explicit-handoff plus echo-validate-plus-sentinel-probe plus single-writer-per-actuator serialization. Stage 5 — new for the extended cut — is the receipt: a live tessl eval run on jbaruch/govee-h6056 showing 27% → 100% with-context lift, on-screen, no extra hardware. The deep dive walks one positive scenario, one negative scenario, and one near-zero-lift scenario the speakers call out honestly as not pulling its weight. Headline thesis for the JVM audience: “AI engineering” isn’t a tool choice. It’s the discipline around the agent — the language defaults, the device facts, the calibration constants, the actuator patterns, the sub-agent handoff, and the eval suite that measures whether any of it is actually working.

Resources

Demo Code

Context Engineering

Tessl Plugins Demonstrated

Kotlin / JVM Stack

Hardware Used

  • Shelly Duo GU10 RGBW — Smart bulb with local REST API (~30 ms LAN latency).
  • DJI Osmo Pocket 3 — 1” sensor USB webcam for face detection.
  • Govee Flow Plus Light Bars H6056 — Segmented LED bars via cloud API. The extended cut surfaces the ~10 req/s sustained cap (silently enforced — no 429) and the HSV-with-gamma rendering quirk that makes pure-RGB yellow look green.

Models

Coding Agents

  • Claude Code — Baruch’s agent, running on Opus 4.7.
  • Junie — Viktor’s agent, JetBrains-native, running Gemini Flash 3.5.
  • Claude Agent SDK — Sub-agents documentation — The source for Stage 4’s “the only channel from parent to subagent is the Agent tool’s prompt string” — the bug-by-design that the sub-agent-delegation meta-plugin works around.

Conference

Speakers

  • RoboCoders: Judgment Day @ KotlinConf 2026 — The 45-minute cut, four days earlier in Copenhagen. Same hardware, same dual-agent setup, same first two AHAs. The JNation extended cut adds three new Stage-3 failure modes (rate-limit, color-space, retry-storm), three new Stage-4 delegation failure modes (pollution, spoof, interleaving), and an entire new Stage 5 on live tessl eval run lift measurement.
  • RoboCoders: Judgment Day @ Arc of AI 2026 — The Python original. Same thesis, different stack: dlib + transformers + Claude Agent SDK orchestrator instead of DJL + JavaCV + Koog.