Markus Eisele

Markus Eisele

@myfear.com

Developer, turned to consulting, developer relations, sales, and landed in marketing. Writing books for #Oreilly. Into Java, Kubernetes and such. Legal called to tell you that I'm not officially speaking for IBM.

2.6K followers547 following2K posts

Pinned

My new book with Alex Soto Bueno and Natale Vinto just dropped: Applied AI for Enterprise Java The practical field guide for Java developers bringing AI to production. Full story (and how it came to life between family, travel, and too much coffee): buff.ly/2iDl9ba #Java #AI #Quarkus #LangChain4j

I wanted more say in the UI a coding model builds. So I explored four styles for one test-results table, with prompts for layout and typography. I'd pick the compact workbench. What would you choose? buff.ly/FSHuUdg #UIDesign

I added keyboard tests to a Qute/HTMX form, including a slow response after I Tab away. Focus stays on the control I reached. How do you test that transition? buff.ly/kCkncpy #Quarkus #Accessibility

We've been discussing tool naming internally as we connect more tools to agents. I wrote up a Java/LangChain4j example, from search parameters to response limits. What conventions does your team use? buff.ly/xkRwutB #Java

The cart design changed from 30 to 90 days. The old tests passed. I revisit that gap, spec drift, and what TLA+ and Lean checked in a Java inventory example. buff.ly/z32rnk6 #Java #AICodingAgents

Jo Nesbø gave me a small search puzzle: typing Nesbo returned nothing. I followed the name into Elasticsearch and found two different tokens. Here's the Quarkus example and the folding fix. buff.ly/XIYUHvS #Quarkus

I wanted to see what survives when checkout crashes between PostgreSQL and Kafka. This Quarkus outbox walkthrough follows the event through commit, replay, and duplicate handling. buff.ly/QMd6UrB #Quarkus #Kafka

Prod credentials plus an agent equals a very expensive way to find out that you never tested your backups.

I tried Apple's local model from Java with JBang and LangChain4j. A few timings, simple instructions, and a tool call gave me plenty to explore. What would you ask it to do? buff.ly/F9l58Iz #Java #LocalAI

Recording at home is messy. I wanted more time for the script, so I trained a Qwen3-TTS LoRA voice on my MacBook. This episode follows the experiments. What do you use for local narration? buff.ly/wJr6SLD #TTS #LoRA

I built a small Quarkus app to follow request IDs through async calls. The external callback needed a return to the saved Vert.x context. Where do IDs disappear in yours? buff.ly/5ppH0RR #Quarkus #Java

Markus Eisele reposted

We had a crazy idea: a virtual Quarkus conference. Two half-days, Feb 2–3, 2027, free and online. In true open source fashion, you pick the name — voting is open for two weeks: github.com/quarkusio/qu... #Quarkus #Java

I tried IBM Bob for a Java 8 to 25 upgrade and added JUnit tests for the stricter URI parsing afterward. I'd like to keep more migration lessons in the build. What do you tend to test first? buff.ly/GzDS5I6 #Java

My Bob Playbook grew from hand-written HTML into a Roq site. I kept the reading-order choices and let Java derive the page lists. Here's what changed. How do you keep yours in sync? buff.ly/IVl1fBb #Roq #Java

I wanted to understand what WebMCP adds to server-side MCP, so I built a Quarkus return page and let Bob use it. Same Java validation, different page effects. Which app action would you try? buff.ly/qrJ2YuB #WebMCP

Richard Fichtner's post got me trying chartjs-java-model with NASA exoplanets. Quarkus owns the data rules; Chart.js draws. How do you split that work? buff.ly/XcwBBET #Java #Quarkus

Quarkus 4.0.0.Beta1 is tagged! Java 21 becomes the minimum, with Jackson 3, Hibernate ORM 8, Jakarta REST 4, and CDI 5 among the changes. Time to test a familiar application against the beta and report any rough edges. I’d start with JSON serialization and persistence tests. buff.ly/GmN4ye6

buff.lyRelease 4.0.0.Beta1 · quarkusio/quarkusMajor changes #55117 - Prepare for UBI 10 #55145 - Micrometer Observation API Support #55147 - Set the minimum Java version to Java 21 #55180 - Introduce SPIFFE client extension #55215 - Rework na...

An operator needs four app commands, not a server shell. I built the narrow path with Quarkus Aesh: one command model over SSH and a protected browser terminal. It includes safety checks, tests, and preview caveats. buff.ly/uzhCrdf #Quarkus

I wanted to see everything around a tiny Bob repair, not the repair itself. A Quarkus ACP client made that concrete: pending permission futures, SSE updates, and a gate `--auto-approve` would skip. buff.ly/9gDqsxv

I still keep example tests. Fifty greens did not prove the rounding rule. jqwik found a combination my CSV never listed, then shrank it to six cents. buff.ly/MDW4XQT #jqwik #Quarkus

I benchmarked IBM Bob with code-review-graph on Open Liberty. The graph path was 18.8% faster, but found 1/10 required call sites; solo Bob found 10/10. Smaller context only helps when it keeps the evidence. buff.ly/5ate4XY #MCP #CodeReview

Bob TV: Episode 2: with yours truly and Max! Tokenmaxxing: How Much Context Does AI Coding Really Need? Tue, Oct 6, 2026 11:00 AM EDT (5:00 PM Europe/Berlin) buff.ly/WCfu7i7 #Register #Free

I wanted the Goblin warning in the console before I trusted a resilience annotation. This walkthrough injects latency and 503s on one Quarkus REST boundary, then proves the caller timeout, retry, and fallback. buff.ly/x1z3vH9 #Quarkus #Java

I wrapped a Quarkus Agroal datasource with J API Proxy and left statements unproxied. Native Image still needed two exact lists: DataSource+ProxyHandle and Connection+ProxyHandle. JVM tests cannot prove that. buff.ly/PPFp0Fo

I wanted two IBM Bob tasks at once without sharing a checkout. Git worktrees isolate files. One constrained Podman container limits the host. Tests decide what merges. buff.ly/twZMs8I #IBMBob #Podman

My #JCON2026 session is live: 'Chasing the Main Thread - Adventures in #AI Assisted Coding' This talk takes you behind the scenes of a daily #creative experiment: writing and publishing one hands-on #tutorial or article on The Main Thread Grab your coffee and hit play: youtu.be/1wSjnnxWdYA

buff.lyChasing the Main Thread - Adventures in AI Assisted Coding | Markus Eisele (EN)This talk takes you behind the scenes of a daily creative experiment: writing and publishing one hands-on tutorial or article every day on the-main-thread.com. In this session, I’ll share the…

I keep reaching for Checkstyle ImportControl when I want a cheap pre-compilation gate on package dependencies. This walkthrough wires it into a Quarkus catalog API and proves it catches the exact import before javac runs. buff.ly/OI13jgD

I wired IBM Bob Shell v2 into GitHub Actions to turn Markdown into a validated GitHub Pages site: pinned TasteSkill, artifact deploy, no generated HTML in Git. buff.ly/EaHB91Z #GitHubPages #IBMBob #CodingAgents

Carrier webhooks are a mapper problem until you ask where agents should touch production code. Quarkus keeps auth and idempotency. QuickJS4j runs an approved normalizer behind a string boundary. buff.ly/HVypaIj #Quarkus #Java

I use JSON when I need to inspect a response. A Java-to-Java call has a different contract. This Quarkus Fory walkthrough keeps both paths clear and tests `application/fory` with real bytes. buff.ly/gnEdcyg #Quarkus #Java #ApacheFory

Markus Eisele reposted

XDEV is coming to 🇺🇸 #IBMTechXchange Enterprise Java is rarely greenfield. @richard.fichtner.dev & Markus Eisele show how IBM Bob and the Quarkus Dev MCP keep AI-assisted work maintainable – demoed live on a production codebase, not a sample app. Bring your own legacy code questions!

I expected a Quarkus startup banner to be decoration. It became a build-time lesson: FIGlet renders during augmentation; runtime picks colored or plain output. I tested the boundary with NO_COLOR and a bad font. buff.ly/1MprIu4 #Quarkus #Java

I moved my Quarkus errors to `quarkus-http-problem` instead of three custom mappers. Framework failures go to the extension, business conflicts stay explicit, and Dev UI shows mapper order. buff.ly/OmKvfRj

I spent real time with FlexGanttFX and wired it to Quarkus for a dock-door planner. The useful rule: the desktop renders proposals, Quarkus owns the schedule, and rejected drags roll back. buff.ly/IJNGIcT

Bob Shell ships a hidden `bob acp` server. I connected it to Zed and used one failing Java check to exercise permissions, plans, diffs, session restore, and MCP handoff. The editor/agent boundary is clearer than I expected. buff.ly/l941ESU