[devnexus 2026] it’s up to java developers to fix enterprise ai

Speaker: Rod Johnson (@springrod)

See the DevNexus live blog table of contents for more posts


General

  • Personal assistant approaches don’t work in the enterprise
  • Hype can be distracting
  • AI conversation driven by people not interested in/don’t understand the enterprise
  • Some things work; some don’t.
  • Change is fast. ex: Clause over last 6 months

Personal assistants

  • Personal assistants use cases work best
  • Coding assistants are a type of personal assistant
  • Valuable because you are at computer and say yes/no
  • This doesn’t walk in enterprise. Business process/chatbot with public can’t do take backs
  • Broad, flexible, human in the loop, tolerance for error, chat oriented. (By contrast business processes need to be specific, predictable, automated, reliable, workflow oriented)

Claude Code Execution Process

  • Analyze Request
  • Create to do list
  • Work through tasks
  • Test each step
  • Ensure integration

Unavoidable Challenges

  • Non deterministic
  • Hallucinations
  • Prompt engineering is alchemy. Throw things in vs engineering
  • Slow and expensive to run at scale
  • Difficult to test and validate

Avoidable Challenges

  • Top down mandates
  • “AI all the things”/AI for the sake of AI – should be doing incrementally
  • Wrong people controlling AI strategy. Data science group doesn’t always understand the business
  • Greenfield fallacy – business systems/workflows already exist. Domain context exists.
  • “This time is different” – no matter how shiny a new technology is; doesn’t change everything.

Instructive Open Claw Problems

  • Lack of structure – relies on markdown.
  • Token bloat and very high cost
  • Needs to compress context frequently which can change meaning/introduce risk of errors
  • Unpredictable especially as context grows
  • Lack of explainability
  • Exposed infrastructure risk article – egads. This is scary!

How to succeed

  • Attack non determinism – make as predictable as possible by breaking complex tasks into small steps; smaller prompts, less tools in context, mix code in for some steps, create guardrails, (Also saves money because some steps can use a cheaper LLM)
  • Integrate with what works – connect to existing system, leverage current domain expertise/coding skills, build on proven infrastructure, incremental
  • Build structure to LLM Interactions – don’t talk English if can avoid; include as much structure as possible. Ask for format of structured data.

Testing

  • Unit testing can find that you sent the wrong prompt (or implemented wrong)
  • Integration testing – test with real LLM but fake data – ex: test containers

Domain Integrated Context Engineering (DICE)

  • Context engineering more broad than prompt engineering
  • Bridges LLM/business system
  • Helps structure input and output
  • Domain objects
  • Integrate with existing domain models
  • Structure is a continuum from Open Claw (autonomous/unstructured) to old fashioned code. In between is Claude, MCP, agent frameworks and deterministic planning.
  • Embabel is the agent framework/deterministic planning level

What do as Java developers

  • Gen AI works best alongside existing systems
  • Your data/domain models/business rules
  • AI should extend your capabilities not replace them.
  • Think integration, not greenfield
  • Java skills undervalued to this point
  • Every Java developer should know both Java and Python [I do; yay]

Python vs Java

  • Don’t just imitate Python approaches
  • Build better – look at prior art (Python), leverage domain experience, apply architecture experience, bring strengths to Gen AI, create better frameworks, lead
  • Python – great for data science (data science != gen ai), scripting, prototyping
  • JVM – excels at enterprise grade applications

Embabel

  • Directly addresses key Gen AI failure points
  • Key innovation is deterministic planning [Python frameworks do not do this]
  • Goal Oriented Action Planning (GOAP)
  • Predictable/explainable execution
  • Actions and goals create extensible system
  • Includes a server; knows what up to.
  • Knows about all deployed capabilities and can extend
  • Builds up understanding of domain
  • Will become AI fabric of enterprise
  • Framework written in Kotlin; put a lot of effort into making sure easy to use from Java.
  • Most examples in Java and most of users/community are Java
  • Builds on existing stack.

Unfolding Tools

  • While better to have samller steps with less tools, sometimes you need a lot of tools
  • Tools use a lot of context and can confuse the LLM
  • Unfolding saves tokens and improves accuracy
  • Exposes a single top level tools. When invoked it expands to show children. Like Russian nesting dolls
  • Works by rewriting message history within agentic loop

Agentic Tools

  • Like supervisor pattern in Python framework, but more deterministic
  • Eposes single top level tool that coordinates lower level tools
  • Advanced implementations allow controlling order

RAG

  • Currently pipeline RAG. Do query , no feedback, hard to adjust
  • Future is agentic RAG – context aware multi step search with self-correction. LLM has more autonomy. Can do more searches: text, vector, expand chucks, etc

Rod wrote blog post: You can build better AI Agents in Java than Python

My take

After hearing about one shotting and exaggerations on social media, having a more balanced take was great. I especially appreciated the *whys*. I also liked the “what can you do” to use AI more safety problem.

[devnexus 2026] live blog table of contents

See my live blogs from the event

Thursday

Friday

openscad – a cross between programming and cad – with AI

I’m making a birthday present that is a 3D printed object. It’s for someone who has everything she could possibly want so I’m going with something that has meaning. I’ve made simple 3D objects in TinkerCad. I’ve made minor customizations to things on thingiverse. I don’t have the artistic skill to make what I want here. (Not saying what it is because I want to actual present to be a surprise).

I was thinking about paying one of the members of StuyPulse robotics to create a stl file for me. But I also wanted to make it. I asked ChatGPT for ideas in hopes that there was an AI plugin that could help me. There was something even better!

OpenSCAD

ChatGPT is able to create documents in the format used by openscad.org. This is an open source CAD modeler. And the best part is that you use a text based programming language to specify what you want so my hand eye coordination when it comes to art is a non-factor!

For example, this is a part of my final product. I can control all the variables (and the text) in c code. I’m a programmer; I’m good at that. (ChatGPT did not give me the heart; it did get me started with how to get text in the desired location. I am perfectly capabie of entering a Unicode heart myself)

    translate([0,0,base_thickness - text_depth])
        linear_extrude(height=text_depth)
        text(
            "♥︎︎",
            size=24,
            halign="center",
            valign="center",
            font="Liberation Sans:style=Bold"
        );

What do i think of the tool?

I love the rapid preview feature. It’s poor quality rendering (lots of random extra lines), but let me quickly try things to get what I wanted. Then you have to render it which takes forever. Luckily, the tool makes a chime when done because I had plenty of time to start doing something else and forget about it. After that, exporting to an STL was fast.

I looked at reviews online and they were mixed. The people who were unhappy with it felt it wasn’t powerful enough for their needs. It was perfect for mine.

Using AI to help me

Using AI as a pair programmer here was super helpful. Remember I hadn’t even heard of this tool until I started this project. And its not a language I feel the need to become an expert in. AI was able to get me started and suggesting things I might want to do next. It was able to teach me how to change the code for some of the changes. (Which was enough for me to make other changes without AI.) I wound up doing a large number of edit/preview cycles which is how i code – tiny increments and see where things stand. I like that I didn’t one shot the cad because I still feel like I was involved in the coding process. And I did write some code by hand which is satisfying to me. Plus this came way better than if I had tried to do it by hand in TinkerCad. I was able to customize one of the key modules to have a better shape than that AI came up with.

I did three full render/generate stl cycles to see what it looked like and edited by hand until satisfied. The final product is bigger than my personal 3D printer can handle so I sent it to VoodooMfg for printing. (This also allows me to use a material I don’t own so it can be a little stronger). I’ve used them in the past for this type of thing and am satisfied with the result. Also, they are in New York City (Brooklyn to be specific) which means even the cheapest shipping with USPS is pretty fast). Fun fact: many years ago used to be an option to pick up your print in person. It was so cool to see their factory with so many 3D prints!

What I’m paying to print it costs about what I’d have spent on a gift. But this is so much more meaningful!