RoboCoders: Judgment Day — AI Coding Agents Face Off (Kotlin Edition)
Abstract
Both agents can write Kotlin that runs. Neither can write Kotlin that is RIGHT — until you engineer the context they both inherit. Baruch brings Claude Code on Opus 4.7. Viktor brings JetBrains’ Junie running Gemini Flash 3.5. Same prompts, same hardware (a smart bulb, a camera, two LED light bars), different agents. The demo opens with the most damning beat: in a Kotlin Gradle project, “write a program that turns on my smart bulb” produces Python — until one tessl install jbaruch/kotlin-tutor flips the language, the HTTP library, and the build tooling without a word of the prompt changing. Stage 3 lands the first real aha: a confidence semaphore on Govee H6056 light bars where the cloud API returns 200 OK on commands targeting segments that physically don’t exist, the textbook confidence formula compresses strong matches into the middle band, and the fill direction is upside-down — four bugs, zero exceptions, all silent. Four Tessl plugins (device truth, calibration, actuator patterns, vision foundations) fix every one of them in a single install beat. Stage 4 lands the second aha: decompose into sub-agents using Koog (JetBrains’ Kotlin-native agent framework) and every plugin gain disappears, because Koog sub-agents start with fresh context. The sub-agent-delegation meta-plugin teaches the orchestrator the explicit-handoff pattern (system-prompt skill injection + echo validation) and the pipeline snaps back to correctness. The headline measurement is 27% → 100% on the jbaruch/govee-h6056 plugin’s Tessl eval — measurable, reproducible, on the public registry. This isn’t a framework comparison. It’s a live demonstration that for Kotlin developers in 2026, “AI engineering” means engineering the discipline around your agent: the language defaults, the device facts, the calibration constants, the actuator patterns, and the sub-agent handoff.
Resources
Demo Code
Context Engineering
- Tessl — Agent Enablement Platform — Package manager for agent skills and context.
- Tessl Registry — Browse and install plugins.
- Closing eval run (govee-h6056) — The 27% → 100% measurement.
Kotlin / JVM Stack
- Koog — JetBrains’ Kotlin AI agent framework — Stage 4 sub-agent orchestrator. JVM, multiplatform, MCP integration.
- DJL — Deep Java Library — Face_feature (ArcFace) embeddings + ONNX FER+ emotion classifier, all on JVM.
- JavaCV — OpenCV bindings for Kotlin/JVM. Camera capture + Haar cascade.
- Ktor — HTTP client (CIO engine) + embedded server for the MJPEG preview.
- kotlinx-coroutines —
Flow, structured concurrency,Dispatchers.IOfor the IoT controllers.
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 (~7 req/min sustained).
Models
- DJL face_feature — ArcFace-derived 512-d face embeddings, PyTorch engine.
- ONNX Model Zoo — emotion-ferplus-8 — 8-class FER+ emotion classifier (64×64 grayscale, ~30 MB).
Coding Agents
- Claude Code — Baruch’s agent, running on Opus 4.7.
- Junie — Viktor’s agent, JetBrains-native, running Gemini Flash 3.5.
Conference
- KotlinConf 2026 — Copenhagen, Denmark, May 2026.
Speakers
- Baruch Sadogursky — speaking.jbaru.ch — All talks, slides, and shownotes.
- Viktor Gamov — speaking.gamov.io — Viktor’s speaker profile.
- @jbaruch on Twitter/X
- @gamussa on Twitter/X
Related Talks
- 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. KotlinConf edition rewrites every layer for the JVM audience.