AI doesn't change software engineering fundamentals. It only magnifies them. 🔍
At @DevoxxUK, @trisha_gee pointed out that weak tests, slow builds and questionable metrics won't disappear just because code got easier to write. They actually became painfully obvious...
Ironically, now that the code got cheap, everything around it suddenly costs more - pipelines under pressure, longer feedback loops and teams optimizing for the wrong things.
Curious what AI will expose first in your delivery process? Trisha Gee explains: https://t.co/AUXtnRVLcs
Nobody fully understands the code anymore... 😐
That’s what Sander Hoogendoorn, CTO at @ibood, worries about most.
Now that AI is part of the team, the biggest danger has become drifting into what he calls 'technical death' - when keeping existing software alive consumes all your time and nobody really knows how it works anymore.
We caught him at @DevoxxUK and asked him a few questions: https://t.co/HGQAD7TZUZ
At @DevoxxUK, Vojin Jovanovic and Mihailo Markovic, engineers from @Oracle, showed how they used autonomous AI agents to generate and run tests for 1,000+ JVM libraries to collect GraalVM reflection metadata. The agents iteratively improved coverage using static analysis, coverage reports and profiling, pushing dynamic access coverage to around 90%, without anyone writing tests by hand.
If you’re curious how they pulled this off, read here: https://t.co/MHR5x87CjN
This year @DevoxxUK we asked a simple question: can we use local models as AI code assistants? 🤔
The answer? Yes… and no! You should definitely check out the recording though and see what worked (like MCP, Skills.MD, and more) as well as what to know about local LLMs for devs :)
🎥 https://t.co/Xc2Uj0UpVj
A massive thank you to our incredible Program Team! You dedicated countless hours to rating, reviewing & debating hundreds of talk submissions to build this year's agenda. Curating a schedule that balances deep technical insights with the latest industry trends is no small feat.
The heart of DevoxxUK isn't just the tech, it's the people. 🧡
Huge shoutout to our 2026 volunteer crew! You dealt with the long hours, the many questions & the occasional AV gremlin with a smile on your faces. You made @TheBDC feel like home for hundreds of developers.
Next @virtualJUG live: The best way to fetch multiple to-many relationships with #Java by @vlad_mihalcea
Dive into the most efficient strategies for retrieving complex data structures, for scenarios where you need to store the result set in a cache.
https://t.co/RbUefjho0i
What if memory extraction, management and retrieval were the function of one unified layer instead of several LLM tool-calls?
This was the main point of a recent talk I gave at @DevoxxUK.
When you build an agentic app that depends on memory, a common approach is to define a tool per source. For instance, a search_slack tool first. Then another one for Notion. Then Drive, then meeting transcripts etc. Each new source brings its own retrieval tool, and the agent's tool surface grows one source at a time.
Over time, the LLM starts moving from a reasoning engine to a router. Plus, each tool definition also eats valuable context. The other day, I read an interesting paper summary about tool selection degrading with scale, especially when the tool descriptions are very similar. All of these points in one direction - LLMs shouldn't have to sift through many tools when it wants retrieval.
Here's the interesting idea. What if memory search and retrieval were the function of one unified layer instead? The LLM issues a single query. Behind the scenes, the layer handles retrieval across sources, deduplication, ranking, and provenance. With this, the source becomes metadata on a retrieved memory, not something the LLM uses for routing. This makes your LLM 𝘀𝗼𝘂𝗿𝗰𝗲-𝗮𝗴𝗻𝗼𝘀𝘁𝗶𝗰 𝗯𝘂𝘁 𝗻𝗼𝘁 𝘀𝗼𝘂𝗿𝗰𝗲-𝗯𝗹𝗶𝗻𝗱.
And it's not just retrieval that needs to be answered when working with memory. There are two other primary challenges: 𝗺����𝗺𝗼𝗿𝘆 𝗲𝘅𝘁𝗿𝗮𝗰𝘁𝗶𝗼𝗻 𝗱𝘂𝗿𝗶𝗻𝗴 𝘂𝘀𝗲𝗿 𝗶𝗻𝘁𝗲𝗿𝗮𝗰𝘁𝗶𝗼𝗻 𝗮𝗻𝗱 𝗺𝗲𝗺𝗼𝗿𝘆 𝗹𝗶𝗳𝗲𝗰𝘆𝗰𝗹𝗲 𝗺𝗮𝗻𝗮𝗴𝗲𝗺𝗲𝗻𝘁
A unified layer can potentially handle all three challenges. Extraction happens asynchronously in the background. Lifecycle - data expiry, deduplication, consolidation - becomes a property of the layer rather than something the agent has to reason about. Retrieval becomes a single trusted surface.
There are still a lot of ideas to think through properly - permissions across sources, how aggressive consolidation should be, and when fresh source data should override stored memory. But I like this architectural direction :).
I also had the pleasure of redelivering "Anatomy of Memory in Humans & AI Agents" with my colleague Raphael De Lio (@RaphaelDeLio). Interesting to see how much overlap there is between how human memory is organised and what actually works for agents.
Had a great time at Devoxx. Looking forward to future talks. Massive thanks to the incredible Redis team at the booth! Big thanks to Ricardo Ferreira who spent hours preparing this talk and gave me great tips, which were super useful.
Photo credits: Ebuka Mordi and Dimitris Doutsiopoulos
Containers are the default path to prod. That also makes the supply chain a major risk.
At @DevoxxUK, the interest in Docker Captain @maeddes's Docker Hardened Images talk was a clear signal that devs are actively looking for better ways to handle container security.
The @DevoxxUK photos are now live! Make sure to like and share them, and credit our amazing photographer, @dDoutsiopoulos.
Once again, he has captured the magic of Devoxx UK.