Finding Patterns: From Middleware to Modern AI--airhacks.fm podcast 📎
discovering patterns in middleware, writing the POSA book, Java adoption at Siemens, and the limits of LLMs and AGIis available for download.
discovering patterns in middleware, writing the POSA book, Java adoption at Siemens, and the limits of LLMs and AGIis available for download.
Java projects are still plagued by outdated habits: excessive layers, unnecessary abstractions, more YAML/XML than code, tests for obvious things like getters, "Stats and Ticket-d riven Development" and systems where everything is configurable but nothing varies, leaving business logic buried under unnecessary complexity. It’s time to focus on code again. This session will demonstrate how modern Java 25 and standards can help us to reduce unnecessary complexity. The focus is on shipping real business logic with greater simplicity and maintainability.
Two Time Machines: Revisiting the 45th Episode After 9 Years, Java 25 Scripting With Zero Dependencies, Java vs. Kotlin in 2025, Web Components and Standards Without Frameworks, Multiple Datasources With Different Permissions for AI Agents, Connection Pools and JPA Cache in Serverless Environments, Why XA Transactions Are a Bad Idea, JavaFX Revival With Official Oracle Support, EJBs vs. CDI Pooling and Jakarta EE 12 Native Pooling Plans, BCE Design and AI Rails for AI Agents, Jakarta Data and Delta Spike Evolution, Docker Swarm vs. Kubernetes vs. OpenShift for Java Developers, Server Push With WebSockets and SSE in the MCP Era, Role-Based Access With MicroProfile JWT and @RolesAllowed, Scala vs. Rust vs. Java 25 Analysis, Why LLMs Understand Java Better Than Other Languages, zsmith Agent Harness in Pure Java 25, LangChain4j With Quarkus and Native Compilation, Zero-Dependency JUnit Runner Under 1 Second, JAX Frankfurt, AirHacks Munich Airport Workshop December 2026, Summer AirHacks Online, JCon Cologne, Devoxx Greece, JavaOne, Devoxx London, Geekon Krakow
Subscribe to airhacks.fm podcast via: spotify| iTunes
Binary translators, JVMs, and the Android Runtime, traced from a ZX Spectrum in Manchester to Linux kernel performance work at Google.is available for download.
Application metrics and monitoring in Java EE, ServerSockets vs higher-level alternatives, SSE, WebSockets, DAO anti-patterns, JPA historisation, SLSB tuning, Docker, Kubernetes, OpenShift and more
Kotlin in Java EE, JasperReport alternatives, custom REST headers, two persistence units in CDI, JPA internals, JWT authentication, Web Components, offline-first PWAs and more
Any questions left? Ask now: gist.github.com/AdamBien/4c2a1c099321bac29ecb6ebc262ae196 and get the answers at the next airhacks.tv. Some questions are also answered with a short video: 60 seconds or less with Java
LLMs know Java's normative APIs, specifications, and implementations. That changes how you write code. Code structure, naming conventions, and adherence to standards directly affect what LLMs generate. Well-structured, zero-dependency Java produces more consistent, more predictable LLM output and scales to big projects. Starting from a blank project, each step demonstrates how code organization, standard API usage, and consistent patterns influence LLM-assisted development. The same principles that make code readable for developers also make it processable for LLMs. No slides. No theory. Just code. Questions welcome at any time.
Subscribe to airhacks.fm podcast via: spotify| iTunes
From JBoss Cache and Infinispan to migrating Ruby on Rails monoliths to Java microservices at Square, co-designing MCP with Anthropic, building the Goose coding agent, and founding the Agentic AI Foundationis available for download.
Java 25 source-file mode turns a single file into an executable command. No compilation, no build tool, no .java extension. Here is how to create a zhello script:
zhello (no extension) with the shebang #!/usr/bin/env -S java --source 25void main() method that calls IO.println("hello, world")chmod +x zhellosudo cp zhello /usr/local/bin/The entire script:
#!/usr/bin/env -S java --source 25
void main() {
IO.println("hello, world");
}
BCE pattern from 1992: top-level packages named by context not by layer, at most 3 sub-packages: Boundary, Control, Entity, @Transactional belongs only on the Boundary — one button push equals one use case equals one transaction, Hibernate Validator skipped in favor of custom Control-layer validation for precise 400-error handling, zero-dependency MCP server by Mr. Aldo from France: built with BCE and zero-dependency principles, Agent Smith live demo: zero-dependency Java 25 agent framework in ~130KB single JAR, transcriber agent with episodic memory and agent delegation, GPU Llama / TornadoVM: Apple Metal support for running Mistral and DevStral locally, plans to run Agent Smith without cloud, Z ecosystem: ZDate, ZJDocFind, ZUnit single-file test runner in ~300 lines with parallel execution, ZB build tool — all zero-dependency Java 25 scripts, LLMs understand standards better than frameworks — enables lean code generation without external dependencies, Enterprise Fire April 1st skill: converting Hello World to 73 classes with all patterns, hexagonal architecture appears for the first time on AirHacks, upcoming AirHacks Live summer workshops on spec-driven Java development and front-ends without dependencies
Do you have any more questions? See you at: airhacks.live
Subscribe to airhacks.fm podcast via: spotify| iTunes| YouTube
Apache PLC4X as the JDBC of industrial automation, native protocol drivers versus OPC UA, founding ToddySoft for commercially supported open source industrial products, Apache IoTDB and TsFile for time series storage, and Industry 4.0 use cases on the shop floor.is available for download.
Topics for the 145th airhacks.tv:
@Transactional in the boundary vs. control layer for bulk processing and synchronous API callsquarkus-hibernate-validator? Alternatives to manual validationSee you every first Monday of the month at https://airhacks.tv 8pm CET (UTC+1:00). Show is also announced at: meetup.com/airhacks.
Ask questions during the show via twitter mentioning me: https://twitter.com/AdamBien (@AdamBien),using the hashtag: #airhacks or built-in chat at: airhacks.tv. You can join the Q&A session live each first Monday of month, 8 P.M at airhacks.tv
Subscribe to airhacks.fm podcast via: spotify| iTunes|
Migrating a German bank to AWS in 2012, the evolution from CloudFormation JSON to CDK, declarative state management, Terraform trade-offs, CDK stacks as atomic deployment units, regulated industries and compliance, and the CDK Book.is available for download.
Quarkus energy efficiency benchmarks, greener Java, serverless SnapStart, JVM tuning, SBOM generation, and cheese fondueis available for download.
Java 25 script files (JEP 512: Compact Source Files and Instance Main Methods and JEP 458: Launch Multi-File Source-Code Programs>) are self contained, but can specify a classpath in the shebang.
The Log.user, for example, is located in zcl.jar and can referenced with the following shebang:
#!/usr/bin/java --class-path=zcl.jar --source 25
void main() {
Log.user("Hello, duke");
}
zunit is a zero-dependency, single-file Java 25 Script test runner.
It discovers *Test.java source files and runs each directly via java --source 25.
No compilation step, no JUnit, no build tool required — just run zunit.
A GreeterTest.java example:
void main() {
var greeting = Greeter.greet("World");
assert Objects.equals("Hello, World!", greeting) : "expected 'Hello, World!' but got: " + greeting;
}
Each test is a self-contained Java source script with a void main() method.
Any thrown exception or non-zero exit code indicates test failure.
Each test gets its own JVM — full execution isolation with zero shared state.
Run it with:
zunit to auto-detect and run all tests, zunit -cp:zbo/app.jar for an explicit classpathzb && zunit to build with zb first.zunit is available from: github.com/AdamBien/zunit
The corresponding airails.dev skill is available from: github.com/AdamBien/airails/tree/main/java/zunit
Subscribe to airhacks.fm podcast via: spotify| iTunes|
Haskell and pure functional programming, building temperature sensor monitoring systems, enterprise service-based architecture and JavaServer Faces, Snyk's origins as an NPM dependency scanner, supply chain security and expansion to Java, static code analysis and container scanning and AI flow analysis, security as part of the development lifecycle, vibe coding risks and MCP server toxic flows, modern Java simplicity vs legacy enterprise verbosity, JBang for Java scripting, Java developers thinking about production readiness from the startis available for download.
The talk covers how to build Java applications that auto-scale, are highly available, and run without traditional infrastructure overhead.
building a UI framework in Java, Web Components and Java 25is available for download.
Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS
the history of the Teletype Model 33 and Telex, evolution from Java Enumeration to Iterator to Iterable, legacy collections Vector and Hashtable synchronization overhead, Java 8 lambdas and streams, default methods for compatible interface evolution, Brian Goetz's Spliterator design, Eclipse Collections and Rich Iterable, C# LINQ as competing influence, lazy intermediate vs eager terminal stream operations, why streams cannot be consumed twice, primitive specializations IntStream LongStream DoubleStream, Spliterator characteristics sized and subsized for parallel optimization, Amdahl's law in parallel stream setup, ArrayList vs LinkedList for streams, streams from non-collection sources like BufferedReader.lines and String.lines, limitations of streams for reactive processingis available for download.
Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS
8-bit game hacking, early J2EE, Java, Kaizen and Kaikakuis available for download.
Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS
Java, serverless, compliance, IaC and AWS CDKis available for download.
"Java 25 scripting is more capable than anticipated and produces shorter code than Python equivalents, LLMs know Java specs by heart due to publicly available specifications and stable APIs, grounding LLMs on JAX-RS and CDI specs eliminates hallucinations, BCE architecture works well with LLM code generation, junior developers can leverage LLMs to learn faster than ever before, Java 26 brings HTTP/3 client and structured concurrency and vector API, web components are the fastest UI technology being native to browsers, zero-dependency Java scripts replace Python and shell scripts, AI Rails skills system allows modular reuse of Java source code, java.util.logging with System.Logger facade is recommended over external logging frameworks, Java 9 JPMS was the main migration blocker from Java 8, measuring AI usage percentage as KPI is as problematic as code coverage metrics, brownfield projects benefit most from LLM assistance with good templates"
Ask questions during the show via twitter mentioning me: https://twitter.com/AdamBien (@AdamBien),using the hashtag: #airhacks or built-in chat at: airhacks.tv. You can join the Q&A session live each first Monday of month, 8 P.M at airhacks.tv
JavaONE talk: Java EE heavyweight or lightweight Mythbusters and the comparison to Spring, How to build a progressbar with HTML 5, JAXB deprecation in Java9, Virtual DOM vs createElement performance, Reference Implementations of EE4J, Issue with org.eclipse.ee vs. javax.*, Impact of Java SE release strategy to EE4j or JavaEE, EJB Timer synchronization in cluster, DB Views vs. JPA for reports, Architectural considerations with REST and Redis, Critique of the "Roller blogger engine" Java EE clone, Accessing SFSB from SLSB, SFSB and scalability, State and async JAX-RS
Any questions left? Ask now: gist.github.com/AdamBien/5c85d2a2d3b2079fc5d55209dd8fcc61 and get the answers at the next airhacks.tv. Some questions are also answered with a short video: 60 seconds or less with Java
Ask questions during the show via twitter mentioning me: https://twitter.com/AdamBien (@AdamBien),using the hashtag: #airhacks or built-in chat at: airhacks.tv. You can join the Q&A session live each first Monday of month, 8 P.M at airhacks.tv
---Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS
the Agent to Agent (A2A) specification, Java SDK, LLMs, agents and Quarkusis available for download.