Devoxx Belgium 2024
Table of Contents
- AI & ML (10 videos)
- Architecture (5 videos)
- Assistive Technology (1 videos)
- Compute (19 videos)
- Computing/Technology (1 videos)
- Databases (3 videos)
- Developer Experience (119 videos)
- Energy (1 videos)
- Keynote (2 videos)
- Networking (2 videos)
- Observability (2 videos)
- Performance Engineering (17 videos)
- Security (7 videos)
- Sustainability (2 videos)
AI & ML
![]() |
AI-generated recap of Devoxx Belgium 2024 opening keynote : Genesis with Stephan Janssen & friendsThe keynote at Devoxx Belgium 2024 showcased the integration of AI with Java, highlighting innovative tools and projects that are transforming the future of software development. Developers are empowered to embrace change and experiment with local AI models, seamless Java-AI integration, and distributed processing, creating a new era of AI-powered Java applications. |
![]() |
Crafting Intelligent Applications with Quarkus/LangChain4j by Georgios and ClementThis video presentation introduces Quarkus and LangChain4j, a Java-based toolkit for building AI-infused applications. It showcases how to leverage large language models, implement patterns like Retrieval Augmented Generation (RAG), and integrate AI services into a production-ready application using Quarkus. |
![]() |
RAG: from dumb implementation to serious results by Guillaume LaforgeThis talk explores techniques for implementing Retrieval Augmented Generation (RAG), a method to enhance language models with external data. It covers various approaches to document ingestion, retrieval, and prompt augmentation, as well as advanced techniques like function calling and agent-based RAG to handle more complex queries. |
![]() |
Open Models: The Secret Weapon for Next-Generation Software by Remigiusz SamborskiThe speaker discusses the emergence of open models, which are large language models that can be customized and deployed locally for increased security and privacy. He showcases Google's Gemma models, which offer different variants optimized for various use cases, and demonstrates how to experiment with and fine-tune these models using Google's tools and frameworks. |
![]() |
Pushing LLMs over the Edge: Exploring the Limits of the Possible by Mario Fusco, Lize RaesThis talk explores the limits of large language models (LLMs) by building a complex shopping assistant agent that utilizes various tools and techniques, including state machines, specialized agents, and security measures. The presenters demonstrate how LLMs can be pushed to their limits, highlighting the challenges and opportunities in developing reliable and secure AI-powered applications. |
![]() |
Transforming Banking with Advanced AI: GenAI, RAG, and Multi-Agent Systems by Kevin SuysThe video discusses transforming banking with advanced AI techniques like GenAI, RAG, and multi-agent systems. It covers topics such as data quality, retrieval augmented generation, chunking, and the evolution of AI models, highlighting the importance of modularity and benchmarking for specific use cases. |
![]() |
Podman AI Lab: For developers to build AI Applications with LLMs running locally by Philippe MartinThe video presents Podman AI Lab, an extension of Podman Desktop that enables developers to build and test AI applications with large language models (LLMs) locally on their machines. The speaker demonstrates how to use Podman AI Lab to create a search API that leverages an LLM to enhance the search functionality of the Podman Desktop website. |
![]() |
Developing Cloud-Native Java AI applications with DJL and LangChain4J by Sébastien Blanc, Alex SotoThe presenters showcase the use of Java and AI technologies, including DJL, LangChain4J, and various AI models, to build cloud-native applications. They demonstrate examples of AI-powered features such as language understanding, task automation, and conversational agents, highlighting the benefits and challenges of integrating AI into Java-based systems. |
![]() |
Easy RAG with LangChain4J and Docker by Julien DuboisThis talk provides a comprehensive overview of using LangChain4J, a Java-based framework for simplifying the integration of AI models, to implement the Retrieval Augmented Generation (RAG) pattern. The speaker demonstrates step-by-step how to ingest data, create vector embeddings, and use a language model to answer questions by leveraging the ingested data, highlighting best practices and the benefits of using LangChain4J's easy-to-use abstractions. |
![]() |
Build an Agentic RAG system using Langchain, Ollama and Milvus by Stephen BatifolThe speaker introduces an agentic retrieval-augmented generation (RAG) system using Langchain, Ollama, and Milvus, a vector database. He showcases the system's ability to handle multi-turn conversations, query planning, and external tool integration, addressing the limitations of basic RAG approaches. |
Architecture
![]() |
Hexagonal Architecture in Practice, Live Coding That Will Make Your Applications More Sustainable byThe video presentation discusses the benefits of using the Hexagonal Architecture pattern to develop more sustainable applications. It emphasizes the importance of separating the business logic from the technical concerns, allowing the core domain to evolve independently and be easily testable. |
![]() |
Architecting for Tomorrow: A Pragmatic Perspective by Marcel SchutteThe talk explores the evolution of the software architect role, from the traditional 'ivory tower' approach to a more pragmatic, collaborative, and adaptable approach. The speaker highlights the importance of embracing change, effective communication, and a balance between stability and evolvability in modern software architecture. |
![]() |
Turning Uncertainty into Success: How a Modern Approach can Thrive in a Conservative EnvironmentThis talk presents how a modern, agile approach can thrive in a conservative environment, using a case study of a project for a large energy company. The speakers discuss how they navigated the complex business challenges, outdated technology, and traditional work practices to deliver a successful, future-proof solution that met the client's evolving needs. |
![]() |
Thinking Like an Architect by Gregor HohpeThe talk explores the role of architects in organizations, emphasizing their ability to connect different levels, provide visual models, sell options, and tackle complexity. The key is for architects to act as 'IQ amplifiers', making everyone around them a little bit smarter through their unique perspective and approach. |
![]() |
Platforms: Build abstractions, not illusions by Gregor HohpeThe talk explores the concept of platforms, highlighting how they enable more innovation and diversity by providing standardized abstractions rather than constraining solutions. The speaker emphasizes the importance of building platforms that surprise users with unexpected capabilities, rather than just anticipating and meeting their needs. |
Assistive Technology
![]() |
Be My Eyes - Leveraging Generative AI to help the blind and visually impaired people by DanushkaThe presenter discusses a project that leverages generative AI to create a portable device to assist blind and visually impaired people. The device uses a camera, text-to-speech capabilities, and integration with streaming data platforms to provide real-time assistance and monitoring for the users. |
Compute
![]() |
Exo: Run your own AI cluster at home by Mohamed BaioumyThe video discusses Exo, an open-source library that allows users to run AI clusters on everyday devices like phones, laptops, and even Apple Watches. The presenter demonstrates how Exo can be used to aggregate multiple devices and run large language models, highlighting the benefits of democratizing access to AI and the challenges in building a system that can efficiently utilize consumer-grade hardware. |
![]() |
A Kafka Producer’s Request: Or, There and Back Again by Danica FineThis talk provides a detailed breakdown of the process of producing data to a Kafka cluster, highlighting the various stages and configurations that developers should be aware of to optimize their Kafka producers. The speaker emphasizes the importance of understanding Kafka internals to avoid treating it as a black box and to be better equipped to troubleshoot issues when they arise. |
![]() |
The next phase of Project Loom and Virtual Threads by Alan BatemanThis talk discusses the next phase of Project Loom, including improvements to virtual threads and the introduction of structured concurrency. The speaker covers topics such as addressing pinning issues, enhancing serviceability and troubleshooting features, and introducing a new structured task scope API for simplifying concurrent programming. |
![]() |
Data Streaming? I don't even know her by Julien ContarinThe speaker discusses the evolution of data streaming, highlighting the role of Apache Kafka in modern event-driven architectures. He also presents Confluent's vision for a unified data platform that bridges the gap between operational and analytical systems, leveraging technologies like Apache Flink and Apache Iceberg. |
![]() |
Squeezing Mushrooms into Bytes : Mario's NES Memory Magic by Clément de TastesThis talk explores the creative techniques and constraints faced by video game developers in the 8-bit era, focusing on the Nintendo Entertainment System (NES) and the classic game Super Mario Bros. It also delves into the optimization strategies used in the 3D game engine Quake 3, highlighting the ingenious reverse square root function that was significantly faster than the standard math library implementation. |
![]() |
Practical LLM Inference in Modern Java by Alfonso² Peterssen, Alina YurenkoThe presenters demonstrated how to implement a fast LLM inference engine in pure Java, with no dependencies, that can outperform C-based solutions. They showcased the engine's performance, integration with LLaMA-forge, and the ability to run locally without cloud-based models, highlighting the benefits of Java's modern APIs and GraalVM. |
![]() |
Jlama: A Native Java LLM inference engine by Jake LucianiJake Luciani introduces Jlama, a pure Java-based LLM inference engine that aims to provide a fast and scalable solution for large language models. The talk covers the technical details of Jlama, including its use of the Transformer architecture, quantization techniques, and parallelization strategies to optimize performance on CPU-based systems. |
![]() |
Software archaeology - Learning from the landing on the moon! by Tobias VossThis talk provides a fascinating historical overview of the Apollo Guidance Computer (AGC) used in the Apollo missions to the Moon, highlighting its technical details, software architecture, and the remarkable achievements of the engineering team behind it. The presentation emphasizes the importance of robust design, iterative development, and the role of abstraction and virtualization in the success of this pioneering embedded system. |
![]() |
Genesis Keynote by Stephan JanssenThe keynote discusses the rapid changes in the software industry, particularly the rise of AI and its impact on Java development. It highlights efforts by the Java team to improve the language and ecosystem, including the module system, library ecosystem, and tools for new developers. |
![]() |
From Science Fiction to Garage Science: My Journey Building a Farnsworth Fusor with AI by NazoordeenThe speaker discusses their journey of building a Farnsworth Fusor using AI tools like Claude, Whisper, and Globe to overcome the overwhelming amount of information required for such a project. They emphasize how AI can be used as a thought partner to accelerate research and development, while also addressing the energy impact of such extensive AI usage. |
![]() |
Hello, Quantum World! by Jules MayThe talk provides an introduction to quantum computing, explaining the fundamental concepts of superposition, entanglement, and quantum algorithms, and demonstrating a quantum simulator to showcase the potential applications of this emerging technology in fields like cryptography, optimization, and artificial intelligence. |
![]() |
Building & Managing Container Images at Scale with Cloud Native Buildpacks by Terence Lee, FuchsThis talk discusses how Cloud Native Buildpacks can help organizations efficiently build and manage container images at scale, providing features like reproducible builds, caching, and security updates without having to rebuild applications. The speakers demonstrate the benefits of Buildpacks compared to traditional Dockerfiles, highlighting their modular and composable nature, as well as their ability to streamline software supply chain security. |
![]() |
Concurrency in Spring Boot Applications: Making the Right Choice by Andrei ShakirinThis talk provides an overview of the various concurrency approaches available in Spring Boot applications, including Futures, Completable Futures, Reactive Programming, and Virtual Threads. The speaker discusses the pros and cons of each approach and provides recommendations on when to use each one based on the specific use case and requirements of the application. |
![]() |
A Free Alternative to Docker: Podman by Florent BenoitPodman, a free and open-source alternative to Docker, is a fast, lightweight, and secure container runtime that offers a seamless experience for developers and IT professionals. The presentation showcases Podman's key features, including its rootless mode, compatibility with OCI images, and integration with Kubernetes, as well as the Podman Desktop application, which provides a user-friendly interface for managing containers and deploying applications to local and remote Kubernetes clusters. |
![]() |
Deep Dive : Bootiful Spring Boot 3.x by Josh LongThe video presented a deep dive into Spring Boot 3.x, covering topics such as modular and secure application development, integration with AI models, and leveraging advanced Java 21 features like virtual threads to improve scalability and performance. The speaker demonstrated the power of Spring's ecosystem and the benefits of using Java for building modern, efficient, and production-ready applications. |
![]() |
Bring the action: using GraalVM in production by Alina YurenkoThis talk provides an in-depth exploration of using GraalVM's Native Image feature in production environments. The speaker discusses the benefits of Native Image, such as faster startup times, reduced memory usage, and improved security, and walks through practical strategies for integrating it into existing Java applications and optimizing its performance. |
![]() |
Escape from the Planet of the Collections by Stuart Marks, Maurice NaftalinThis talk explores design issues around Java collections, including the challenges of encapsulation, custom collections, and the controversy around immutable collection types. It also discusses future plans for the Java Collections Framework, such as addressing the 32-bit barrier and the impact of Project Valhalla. |
![]() |
Meet Chicory, exploit the power of WebAssembly on the server side! by Andrea PeruffoThis talk introduces Chicory, a runtime for WebAssembly written in pure Java. It showcases how Chicory can be used to execute WebAssembly modules within a Java application, allowing for secure and extensible server-side functionality. |
![]() |
Java's Concurrency Journey Continues! Exploring Structured Concurrency and Scoped Values by EmbregtsThis talk explores Java's journey with concurrency, from the introduction of threads to the latest developments in structured concurrency and scoped values. The speaker demonstrates how these new features can improve the reliability, maintainability, and efficiency of concurrent code, and discusses the potential future directions of Java's concurrency support. |
Computing/Technology
![]() |
A Brief History of Data by Tim BerglundThis presentation provides a comprehensive historical overview of the evolution of data and computing, tracing the key milestones from the early days of data collection and automatic computation to the rise of mainframes, client-server architectures, and the current era of data streaming and event-driven systems. The speaker highlights the recurring patterns of disruption and paradigm shifts that have shaped the data landscape, emphasizing the importance of understanding this historical context to navigate the constantly evolving world of data and computing. |
Databases
![]() |
Dealing with JSON in the relational world by Andres AlmirayThe talk discusses the various ways to store and work with JSON data in relational databases, including the use of specialized JSON data types and the ability to query JSON data using SQL. The speaker also introduces the concept of JSON-Relational Duality, which allows developers to seamlessly work with both JSON and relational data within the same database. |
![]() |
Jakarta Data and Jakarta Persistence by Gavin KingGavin King discusses the evolution of Jakarta Data and Jakarta Persistence, highlighting the improvements in type safety, query capabilities, and the overall design of these specifications. He explains how the new approaches aim to address the shortcomings of traditional repository patterns and provide a more transparent and flexible way to interact with relational data. |
![]() |
Atomicity and Consistency Across Databases and Messaging Systems by Andrei ShakirinThis talk explores the challenges of achieving atomicity and consistency across databases and messaging systems, presenting the classical outbox pattern and a variation called the 'emergency drop' as solutions. The speaker discusses the pros and cons of these approaches, highlighting the trade-offs and the potential for message duplication, and suggests alternative strategies based on the specific business requirements. |
Developer Experience
![]() |
Cracking the Code Review by Paco van BeckhovenThe talk covers best practices for conducting effective code reviews, including creating review-friendly pull requests, providing constructive feedback, and leveraging tools to automate and improve the code review process. The speaker also discusses strategies for addressing common challenges, such as lack of engagement and bike-shedding, to promote a collaborative and efficient code review culture. |
![]() |
Developer Productivity Engineering: What's in it for me? by Trisha GeeThis talk explores the concept of Developer Productivity Engineering (DPE), a software development practice used by leading organizations to maximize developer productivity and happiness. The speaker discusses various pain points, such as long build and test times, inefficient troubleshooting, and flaky tests, and presents solutions using acceleration technologies, test distribution, and performance monitoring to improve the developer experience and increase overall organizational efficiency. |
![]() |
Continuations: The magic behind virtual threads in Java by Balkrishna RawoolThis talk explores the magic behind virtual threads in Java, focusing on the key role of continuations in enabling the high scalability of virtual threads. The speaker demonstrates how continuations can be used to implement virtual threads and a simple generator, providing insights into the behavior and performance benefits of virtual threads compared to traditional platform threads. |
![]() |
Harmonizing Code and Melody: making electronical music in a matter of speaking! by Jan Van WassenhovThis talk presents Music Agent, a system that combines code and AI to generate original electronic music compositions. The system uses autonomous agents with specialized roles to handle the different steps of the music creation process, from conceptualization to song writing, arrangement, and final production. |
![]() |
AI and Code Quality: Building a Synergy with Human Intelligence by Arthur MagneThe talk explores the impact of AI on code quality and how to leverage human intelligence to build a synergy with AI tools. It highlights the importance of incorporating engineering practices and company context to ensure AI-generated code aligns with organizational standards and best practices. |
![]() |
Privacy in Practice with Smart Pseudonymization: Lessons from the Belgian Public Sector by VerslypeThe talk discusses three techniques for smart pseudonymization developed by Smalls, a Belgian ICT service provider, to protect personal data in the public sector. The techniques include format-preserving pseudonymization, blind pseudonymization, and oblivious join, which aim to improve privacy and data security while enabling necessary data processing and sharing. |
![]() |
Project Panama in Action: Building a File System by David VlijmincxIn this talk, the speaker demonstrates how to use Project Panama to integrate C libraries into Java projects. They showcase building a file system using the FUSE library, highlighting the process of creating down calls, up calls, and leveraging tools like JExtract to simplify the integration. |
![]() |
Wired 2.0! Create your ultimate learning environment by Simone de GijtThe speaker discusses the importance of creating an optimal learning environment by understanding the role of emotions, memory, and AI in the learning process. They emphasize the need for critical thinking and peer accountability when integrating AI tools into one's learning and development. |
![]() |
Words as weapons: The dark arts of Prompt Engineering by Jeroen EgelmeersThis talk explores the dark arts of prompt engineering, where attendees learn about the risks and potential misuse of language models through techniques like prompt injection, prompt leaking, and prompt jailbreaking. The speaker emphasizes the importance of having a human in the loop to verify the outputs and take responsibility for the outcomes, as the technology is rapidly evolving. |
![]() |
Let’s use IntelliJ as a game engine, just because we can by Alexander ChatzizachariasThe speaker explores using IntelliJ IDEA, a popular Java IDE, as a game engine by developing various mini-games that showcase the capabilities of the IntelliJ plugin platform. The presentation demonstrates the speaker's creativity and technical expertise in pushing the boundaries of what an IDE can be used for, emphasizing the importance of having fun and experimenting with new ideas in software development. |
![]() |
Mayday Mark 2! More Software Lessons From Aviation Disasters. by Adele CarpenterThe speaker explores lessons software professionals can learn from aviation disasters, highlighting the importance of human-centric design, understanding the limitations of human cognition, and the challenges of interacting with complex, redundant systems under pressure. The talk covers key aviation accidents, such as Air France 447 and British Midland 92, to illustrate the pitfalls of automation and the need to balance technology with the needs and capabilities of human users. |
![]() |
Java Language Futures by Gavin BiermanThe presentation explores the direction of the Java programming language through Project Amber, highlighting features like records, sealed classes, pattern matching, and data-oriented programming. It emphasizes the goal of making Java more productive and expressive, while maintaining compatibility and focusing on surfacing programmer intent. |
![]() |
Reading code by Marit van DijkThis talk explores the importance of reading code, a skill often overlooked by developers. The speaker discusses strategies and tools, including structured exercises, to help developers better understand and navigate unfamiliar codebases, drawing insights from research on cognitive processes and code comprehension. |
![]() |
Structured Concurrency: Managing the Hierarchical Cancelation and Error Handling by James WardThis talk discusses structured concurrency, a programming model that simplifies concurrent execution by providing a hierarchical cancellation and error handling mechanism. The speaker demonstrates various use cases and implementation examples in different programming languages, highlighting the benefits of structured concurrency over traditional unstructured concurrency approaches. |
![]() |
Deep dive into modern frameworks Reactivity🔬⚛️ by Sylvain DedieuThis talk provides a deep dive into the concept of reactivity in modern front-end frameworks. The speaker explores the different approaches to implementing reactivity, including value-based, observer-based, and signal-based strategies, and discusses how they are implemented in popular frameworks like Angular, React, and Vue. |
![]() |
Internationalization puzzles – or how to gamify a training. by Martijn van IerselThis talk presents an engaging approach to teaching internationalization concepts through a series of gamified puzzles designed for developers at the speaker's company. By leveraging the popularity of programming challenges like Advent of Code, the speaker has created a hands-on, problem-solving-based workshop that aims to build developers' confidence in addressing real-world internationalization issues. |
![]() |
Running open large language models in production with Ollama and serverless GPUs by Wietse VenemaThis talk explores how to build and deploy applications that leverage open large language models, such as Gemma, using tools like Ollama and serverless GPUs on Google Cloud Run. The speaker also demonstrates techniques for giving these language models more autonomy and agency to better handle complex queries by integrating code generation and execution capabilities. |
![]() |
Avoiding career pitfalls — A well-grounded software engineer by Martin StefankoThe speaker, Martin Stefanko, a principal software engineer at Red Hat, shares insights on cultivating a strong engineering foundation, setting achievable career goals, developing communication and soft skills, avoiding burnout, and finding mentorship to support continued growth as a software engineer. He emphasizes the importance of continuous learning, public speaking, and leveraging social networks to connect with experienced professionals in the industry. |
![]() |
If Streams Are So Great, Let’s Use Them Everywhere... Right?? by Maurice Naftalin, José PaumardThe presentation explores the use of streams and collections in Java, highlighting their strengths and weaknesses, and providing examples of how to effectively utilize them for improved readability and efficiency. The speakers also discuss the challenges of using exceptions with functional programming patterns and introduce the map-multi method as a solution. |
![]() |
Privacy in Practice with Smart Pseudonymization: Lessons from the Belgian Public Sector by VerslypeThis talk presents three techniques for smart pseudonymization developed by Smalls, a Belgian ICT service provider for the public sector. The techniques, including format-preserving pseudonymization, blind pseudonymization, and oblivious join, aim to protect personal data in test and production environments while maintaining the functionality of legacy applications and enabling secure data sharing for research purposes. |
![]() |
Valhalla - Where Are We? by Brian GoetzProject Valhalla is a deep cut that reimagines the relationship between the Java language and the underlying memory, with the goal of unifying objects and primitives, enabling new numeric types, and providing the best of both worlds in terms of abstraction and performance. The talk covers the challenges and progress made in introducing value classes, null-restricted types, and other features to achieve these goals while maintaining compatibility and a sensible programming model. |
![]() |
Reading code by Marit van DijkThis talk explores the importance of reading code, a skill that developers often overlook. The speaker discusses strategies and tools for effectively reading and understanding code, including structured exercises, memory aids, and leveraging AI assistants. |
![]() |
Avoiding career pitfalls — A well-grounded software engineer by Martin StefankoThis talk by Martin Stefanko covers essential strategies for software engineers to build a successful career, including cultivating a strong engineering foundation, setting achievable goals, developing communication and soft skills, avoiding burnout, and seeking mentorship. The speaker shares personal experiences and practical advice to help attendees navigate the challenges of professional growth in the software industry. |
![]() |
Structured Concurrency: Managing the Hierarchical Cancelation and Error Handling by James WardThis talk explores the concept of structured concurrency, a way to simplify and manage concurrent tasks by creating a hierarchy of scopes and child tasks. The speaker demonstrates various implementations in different programming languages, highlighting the benefits of structured concurrency in areas such as error handling, cancellation, and resource management. |
![]() |
The Best of Java Shorts Show: 100 Snippets in 50 Minutes by Adam BienAdam Bien, a popular Java YouTuber, presents 100 Java code snippets in 50 minutes, showcasing a wide range of Java features and techniques, from file handling and concurrency to custom JVM and cloud-native development, all without using external libraries or frameworks. |
![]() |
Hunting with Stream Gatherers by Piotr PrzybylThe presenter, Piotr Przybyl, discusses the concept of 'stream gatherers' in Java, a preview feature introduced in Java 20 and 23. He demonstrates how stream gatherers can be used to transform and process data streams in a more flexible and efficient manner, addressing limitations of the existing Java Stream API. |
![]() |
Valhalla - Where Are We? by Brian GoetzThe video discusses Project Valhalla, a deep reimagining of the Java language and runtime to unify objects and primitives, enabling flatter and denser memory layouts. The presentation covers the goals, challenges, and progress made in this 10-year effort, including the introduction of value classes and null restriction, and the optimization opportunities they unlock. |
![]() |
Hunting with Stream Gatherers by Piotr PrzybylThe talk explores the use of stream gatherers, a preview feature in Java 23, which provide a more flexible and powerful way to process data streams compared to traditional stream operations. The speaker demonstrates how stream gatherers can be used to solve various data processing challenges, such as finding unique words by length, handling palindromes, and detecting fluctuations in data, while highlighting the performance benefits of using virtual threads. |
![]() |
Crafting the Ultimate Docker Image for Spring Applications by Pasha FinkelshteynThe video discusses strategies for crafting the ultimate Docker image for Spring applications, including leveraging build stages, layer optimization, and advanced techniques like class data sharing and checkpoint restoration to achieve fast startup times. The speaker explores the tradeoffs between image size, deployment speed, and startup performance, providing a comprehensive overview of the various approaches available to developers. |
![]() |
Running open large language models in production with Ollama and serverless GPUs by Wietse VenemaThis talk demonstrates how to build and deploy an application that uses an open large language model, such as Gemma 2, and provides tools to give the language model more autonomy in deciding how to respond to queries. The speaker also discusses the use of serverless GPUs on Google Cloud Run to enable fast inference speed and secure execution of generated code. |
![]() |
Automated Accessibility Testing by Anna MaierThis talk provides an overview of automated accessibility testing, covering the definition of accessibility, the Web Content Accessibility Guidelines, and the limitations of current automated testing tools. The speaker also presents examples of writing custom accessibility tests and discusses how AI can be used to enhance accessibility testing. |
![]() |
Beyond REST: Using Full-Stack Signals for Real-Time Reactive UIs by Leif ÅstrandThis talk explores the challenges of building real-time reactive user interfaces and proposes a solution based on the concept of shared UI state, using a full-stack signal-based approach. The speaker demonstrates a simple real-time polling application and discusses the key principles and techniques for implementing real-time updates in a scalable and maintainable way. |
![]() |
Evaluating Open-Source Local LLMs: A Comparative Analysis with Proprietary Giants for Developer AppThis presentation explores the potential of open-source local large language models (LLMs) and small language models (SLMs) for developer applications, comparing their performance and capabilities to proprietary giants like OpenAI and Anthropic. The speaker highlights the advantages of using local models, such as improved security, flexibility, and cost-effectiveness, and presents the results of their comparative analysis on coding tasks. |
![]() |
Java-Centric Web Development: The Advantages of a Single Stack Approach by Matthew HawkinsThe presentation discusses the advantages of a Java-centric web development approach, highlighting the benefits of a single technology stack to address the challenges of modern application development, such as choice overload and team collaboration issues. The speaker showcases a tool called Web Forge that allows Java developers to create responsive and scalable web UIs without the need to learn additional technologies. |
![]() |
Panel Discussion: LangChain4j, a year later. by Stephan Janssen, Guillaume LaforgeThis panel discussion covers the development and progress of LangChain4j, a Java-based framework for building applications using large language models. The panelists, who are prominent figures in the Java ecosystem, discuss their favorite feature integrations, the impact of LLMs on software development, and the future of this technology in the Java community. |
![]() |
The Best of Java Shorts Show: 100 Snippets in 50 Minutes by Adam BienAdam Bien, a Java YouTuber, presents 100 Java code snippets in 50 minutes, showcasing a wide range of Java features and techniques, from built-in utilities to custom solutions, highlighting the versatility and power of the Java language in a concise and engaging manner. |
![]() |
Elevating Developer Experience and Productivity with Platform Engineering by Shinya YanagiharaThe talk explores the concept of platform engineering, highlighting its importance in enhancing developer experience and productivity. It covers key aspects of platform engineering, including alignment, building blocks, culture, delivery, and developer experience, emphasizing the significance of developer happiness and well-being in the software development process. |
![]() |
Young Minds : Designing Engaging Child-Friendly Tech by Isra Chahrazed GoumiriIsra Chahrazed Goumiri presents strategies for designing engaging, child-friendly technology that captures the attention of young learners. She discusses techniques like scaffolding, gamification, and hybrid learning approaches to optimize screen time and create interactive, hands-on STEM experiences that inspire the next generation of computer scientists. |
![]() |
Testing done right: From bugs to brilliance by Wouter BauweraertsThis talk explores the importance of testing in software development, emphasizing the need for comprehensive testing strategies, from unit tests to behavior-driven development. The speaker discusses the benefits of test-driven development, the different types of tests, and how to effectively integrate testing into the development process, particularly in the context of microservices architectures. |
![]() |
Build Smarter Knowledge Management Systems with AI Technology by Corrado De BariThe presentation discusses building smarter Knowledge Management Systems using AI technology, including the use of vector search, embeddings, and language models. It covers the integration of these technologies with the Oracle database and the Spring AI framework, as well as the deployment of such applications on the Oracle AI Microservices Backend Platform. |
![]() |
Oh No, Not Another Chatbot - Java and AI for Real Business Use Cases by Sandra AhlgrimmThis presentation showcased how Microsoft is deeply involved in the Java community, contributing to open-source projects and providing tools and services to help developers build AI-powered applications. The presenters demonstrated a real-world business use case where AI was used to automate the process of listing items for sale, highlighting the ease of integrating AI into existing applications. |
![]() |
Generic or Specific? Making sensible software design decisions by Bert Jan SchrijverThe speaker discusses the trade-offs between generic and specific software design decisions, emphasizing the importance of considering factors like risk, complexity, and organizational dynamics when choosing the appropriate approach. The talk provides practical tools and guidelines to help developers make sensible design choices that balance flexibility and maintainability. |
![]() |
Welcome to the AI jungle! Now what? by Kevin DuboisThe talk explores the current landscape of AI, the importance of open-source in democratizing AI, and the need for a platform-based approach to operationalizing AI in organizations. The speaker showcases various open-source projects and demonstrates how developers can leverage these tools to integrate AI into their applications, even on local machines. |
![]() |
Introducing Code Assist: Build Applications Faster with AI by Marc Gueury, John KarasoulosOracle Code Assist is an AI-powered code companion that aims to boost developer productivity and enhance code consistency. The tool offers features like code generation, unit test creation, code explanation, and a chat-based interface to help developers write better code faster. |
![]() |
From ML to LLM: on-device AI in the browser by Nico MartinThe talk explores the capabilities of on-device AI in the browser, showcasing techniques for running machine learning models, language models, and retrieval-augmented generation directly on the client-side. The speaker demonstrates various applications, including real-time speech recognition, hand gesture control, and language generation, highlighting the performance, privacy, and scalability benefits of bringing AI to the web. |
![]() |
Psst! A Sneak Peek at StableValue and SegmentMapper by Per MinborgThis talk introduces two new Java features - StableValue, which provides a way to initialize values with deferred immutability and performance benefits, and SegmentMapper, which simplifies working with flat memory by allowing structured data to be mapped to and from memory layouts. The speaker demonstrates how these features can be used to improve the performance and simplicity of common Java programming patterns. |
![]() |
What is multimodal RAG, and can we build a village with it? by Alexander ChatzizachariasThe presenter demonstrates a multimodal system using Retrieval Augmented Generation (RAG) to create a peaceful village inhabited by orcs in the fictional world of Mordor. The system integrates text, image, and audio modalities to generate interactive conversations, paintings, and music, showcasing the capabilities of large language models and multimodal techniques. |
![]() |
Avoid common LLM pitfalls by Mete AtamelThis talk discusses common pitfalls of using large language models (LLMs) and provides practical solutions to address them. The speaker covers topics such as pre- and post-processing, hallucination, outdated data, chaotic outputs, expensive inputs, output measurement, and safety concerns, offering frameworks and techniques to mitigate these challenges. |
![]() |
Test Automation with Selenium 5 and Java by Boni GarcíaSelenium, a powerful browser automation library, has evolved significantly over the past 20 years. This talk explores the latest advancements in Selenium 4, including the introduction of Selenium Manager for automatic driver and browser management, and the upcoming WebDriver BiDi protocol for enhanced browser interaction capabilities. |
![]() |
If Dorian Gray was a developer: A call to action towards future wellbeing by Georgios DiamantopoulosThe speaker discusses the alarming trend of spinal and joint degeneration among technology professionals due to prolonged sitting and lack of movement. He proposes a call to action for proactive measures to maintain physical well-being, emphasizing the importance of regular movement, postural awareness, and a balanced approach to technology usage. |
![]() |
Modern Java in Action by Nicolai ParlogThe talk covers modern Java features like records, sealed interfaces, pattern matching, and structured concurrency, demonstrating their usage through a GitHub crawler example. The speaker also showcases tooling improvements like the Java launcher, module system, and packaging capabilities to create native installers. |
![]() |
Ask the Architect by Stuart Marks, Alan Bateman, Per Minborg, Gavin Bierman, Brian GoetzThe video discusses the decision-making process behind the evolution of Java, including the removal of the security manager, the status of preview features like string templates, and the considerations around deprecating older APIs. The panelists also address questions about project management, the history and future of programming languages, and the ongoing improvements to the Java documentation system. |
![]() |
So you think you can mesh? Scaling ING's service mesh by Jens KatThe talk discusses how ING, a global bank, has scaled its service mesh to handle over 180 million requests per day. It highlights the three key planes of the service mesh - governance, control, and data - and how ING has automated various processes to make the service mesh more resilient and adaptable to changes in technology and requirements. |
![]() |
Productivity is Messing Around and Having Fun by Trisha Gee, Holly CumminsThis talk explores the relationship between developer productivity and developer joy, highlighting the importance of finding a balance between automating tedious tasks and leaving room for creativity, problem-solving, and play. The speakers emphasize the need to measure productivity holistically, focusing on metrics like satisfaction and well-being, rather than solely on lines of code or other narrow metrics. |
![]() |
15 Essential Do’s and Don’ts with Apache Kafka by Stephane DerosiauxThis talk provides a comprehensive overview of the common challenges and best practices when using Apache Kafka, focusing on the client-side aspects. The speaker covers topics such as naming conventions, data replication, client configurations, schema management, and data quality, offering practical solutions to address these common issues in Kafka-based architectures. |
![]() |
Programming’s Greatest Mistakes by Mark RendleThis talk by Mark Rendle explores some of the most notable programming mistakes throughout history, from the Y2K bug to the Pentium floating-point error and the rise of enterprise software development. With a mix of humor and technical insight, Rendle highlights how even the most experienced developers can make costly mistakes, and how those mistakes can have far-reaching consequences. |
![]() |
Pure Java Enterprise AI/LLM Integration (EAI 2.0) by Adam BienThe video discusses the integration of Java Enterprise applications with Large Language Models (LLMs) and the challenges involved, such as cost, scalability, compliance, and security. The speaker proposes architectural patterns and best practices, including the use of Java's built-in capabilities, serverless computing, and the advantages of the Pure Java approach. |
![]() |
Hack your life firmware (and other tips and tricks) by Emmanuel BernardThe speaker, Emmanuel Bernard, discusses strategies for improving one's personal and professional life, including productivity techniques like the Getting Things Done method and mindfulness meditation. He also shares personal experiences and insights on navigating life's challenges and finding a balance between work and personal priorities. |
![]() |
LGTM: Prepping a Mature Open-Source Project for GraalVM by Michaël DemeyThis talk discusses how the mature open-source project iText prepared for GraalVM, a technology that compiles Java source code into native executables. The speaker describes the challenges of supporting multiple platforms and the strategies used, including source-level translation and binary wrappers, as well as the process of integrating iText with GraalVM. |
![]() |
How JavaScript Happened: A Short History of Programming Languages by Mark RendleThis talk traces the history of programming languages, exploring how key innovations and ideas from languages like Fortran, ALGOL, Lisp, and C++ have contributed to the development of JavaScript. It highlights how JavaScript is a culmination of 70 years of programming language evolution, with each language adding unique features and concepts that have shaped the modern web development landscape. |
![]() |
The Chameleon Architect by Robin CustersThe presentation explores the evolving role of the software architect in the digital age, highlighting the need for multi-skilled 'chameleon architects' who can effectively communicate with business stakeholders, sell their ideas, apply critical thinking, and manage their time. The speaker delves into specific strategies and frameworks to help architects navigate the challenges of the modern software landscape. |
![]() |
Postcards from the Peak of Complexity by Brian GoetzThis talk explores the complex and iterative process of designing and implementing major Java features, highlighting the challenges of balancing innovation and conservatism, and the importance of navigating the 'peak of complexity' to achieve a simple and sustainable solution. The speaker shares insights from the development of features like lambdas, modules, and Project Valhalla, emphasizing the need to avoid the temptation of shipping overly complex solutions and instead focus on gradual simplification. |
![]() |
Empathic Mentoring for Developers - Why Should You Care, and How? by Dervis MansurogluThe speaker discusses the importance of empathic mentoring for developers, emphasizing the need for mentors to understand their own history, emotions, and values in order to build trust and effectively guide their mentees. He provides practical tips on how to approach mentoring, including the importance of psychological safety, growth mindset, and long-term planning. |
![]() |
Pkl: Safe and Maintainable Config for Java Apps and Infrastructure by Ryan Knight, James WardThe video discusses Pkl, a new configuration language that helps make configuration safe, reusable, and high-productivity. The presenters demonstrate how Pkl can be used for application configuration, infrastructure as code, and Kubernetes deployments, providing type safety, schema validation, and reusable components. |
![]() |
Enabling teams for happier and more productive engineers by Tim Van RoeyenThe talk explores how enabling teams can help reduce cognitive load and improve developer experience for engineers. By adopting team topologies practices, the speaker's organization saw a 30% increase in productivity and deployment quality, highlighting the benefits of enabling teams in optimizing IT landscapes. |
![]() |
Open sourcing a library: how hard can that be? by Johan HuttingThe speaker discusses the process of open-sourcing a Java library, covering the challenges, benefits, and practical steps involved. He shares his experience with open-sourcing a library for reading Diablo game save files, including navigating licensing, documentation, and deployment to Maven Central. |
![]() |
The Pearls and Pitfalls of DateTime by Mahmoud AbdelghanyThis talk explores the complexities and challenges of working with date and time data in software development. The speaker covers various APIs, formatting issues, time zone management, and the importance of understanding the underlying mechanisms to avoid common pitfalls when dealing with date and time-related tasks. |
![]() |
Pattern Matching in Java: Past, Present, Future by Angelos BimpoudisThis presentation explores the evolution of pattern matching in Java, from its introduction in JDK 16 to the future plans, including the integration with sealed classes, records, and the potential for deconstructors in classes. The speaker highlights how pattern matching enhances type safety, code readability, and the potential for safer and more composable data transformations. |
![]() |
AI-Powered Development: Hands-On Techniques for Immediate Impact by Lize RaesThe talk covers the use of AI-powered techniques to enhance software development, including leveraging language models for tasks like code generation, documentation, and testing. The speaker also discusses the potential impact of AI on the software development lifecycle, the challenges and considerations to keep in mind, and the future outlook for AI-powered development. |
![]() |
Building Ai Agents with Shell Scripts by Laurent DoguinThe speaker discusses the use of shell scripts to build AI agents, highlighting the advantages of using tools that allow agents to reason and execute tasks directly, rather than relying on pure language models. The talk covers the evolution of AI agents, the benefits of using tools, and demonstrates a practical implementation using the New Shell tool and the OpenAI API. |
![]() |
Crafting intelligent GitHub Bots by Guillaume Smet, Georgios AndrianakisThe presenters demonstrate how to create intelligent GitHub bots using the Quarkus framework, showcasing use cases such as language detection, sentiment analysis, and code extraction from screenshots. They highlight the benefits of automation and the integration of AI capabilities to streamline developer workflows and improve project management. |
![]() |
Will AI Assistant make developers redundant? by Marit van DijkThis talk explores the impact of AI assistants on software development, discussing how they can improve productivity and the challenges they pose in terms of code quality, security, and maintaining code written by AI. The speaker argues that while AI assistants can automate certain tasks, they do not replace developers entirely, and emphasizes the importance of critical thinking and good development practices in the age of AI-powered tools. |
![]() |
The Cycling Tour – Java's Fraught Relationship with Cyclic Object Graphs by Stuart MarksThe talk discusses Java's fraught relationship with cyclic object graphs, exploring issues that can arise in module dependencies, class hierarchies, static class initialization, object graph equality and hash code, and serialization/deserialization. The speaker provides diagnostics and mitigation strategies, and suggests that future serialization frameworks may address these challenges. |
![]() |
Maven Marvels: Project Generation at Warp Speed by Giovanni van der ScheldeThis talk explores the Maven Archetype plugin, a flexible and customizable tool for generating project templates. The speaker demonstrates how to create and use archetypes to streamline project creation, highlighting the benefits of standardization and the challenges of maintaining archetypes within an organization. |
![]() |
Looking at Music, an experiment with Kotlin, JavaFX, MIDI, and Virtual Threads by Vik DelporteThis presentation showcases a music-focused application called Melody Matrix, built using Kotlin, JavaFX, MIDI, and Virtual Threads. The project explores the capabilities of Java for desktop applications, highlighting the power of JavaFX and the latest advancements in the Java runtime, such as Virtual Threads, to create innovative and engaging music-related experiences. |
![]() |
Indispensable Principles of Crafting Complex Interfaces by Dean SchusterThis talk explores the challenges of designing complex interfaces that cater to both novice and expert users. The speaker provides principles and strategies for creating efficient, functional, and visually appealing interfaces that balance the needs of different user groups, emphasizing the importance of user testing, content optimization, and leveraging design frameworks. |
![]() |
Bootiful Spring Boot 3.x by Josh LongThis presentation showcases the powerful capabilities of Spring Boot 3.x, including its modular architecture, event-driven messaging, AI integration, and GraalVM native image support. The speaker demonstrates how to build a robust and scalable dog adoption service with advanced features, highlighting the efficiency, scalability, and speed of the resulting application. |
![]() |
DataFrame: Kotlin's Innovative Approach to Data Structures by Roman BelovThis talk explores Kotlin's innovative DataFrame library, which provides a powerful and flexible approach to data manipulation and visualization. The presenter demonstrates how Kotlin Notebooks can be seamlessly integrated with Spring applications, enabling dynamic exploration and prototyping of data-driven features. |
![]() |
DevOps for Java Developers (or maybe against them?!) by Baruch SadogurskyThe talk explores the relationship between DevOps and Java developers, questioning whether DevOps is truly a tool for developers or a conspiracy by Ops people to make developers work harder. The speaker delves into the history, challenges, and solutions around improving developer productivity, including techniques like parallel builds, caching, and predictive test selection. |
![]() |
Spring AI: Seamlessly Integrating AI into Your Enterprise Java Applications by Christian TzolovThe video discusses how to seamlessly integrate AI into enterprise Java applications using Spring AI. It covers topics such as prompt engineering, conversation memory, function calling, and the use of vector stores to efficiently retrieve relevant data for the AI model. |
![]() |
TDD & generative AI - a perfect pairing? by Bouke NijhuisThe presentation explores the potential of combining test-driven development (TDD) and generative AI, demonstrating a tool that automates the process of writing tests and generating code to pass those tests. The speaker highlights the benefits of this approach, including the ability to add new features by writing more tests, and the importance of verifying the output of the AI to ensure it meets the desired requirements. |
![]() |
Practical GraphRAG - Making LLMs smarter with Knowledge Graphs by Michael HungerThe talk discusses practical ways to make large language models (LLMs) smarter by leveraging knowledge graphs. It presents a framework called GraphRAG that combines vector search, graph data structures, and LLMs to provide more contextual and explainable responses to user queries. |
![]() |
Serialization: A New Hope by Viktor Klang, Brian GoetzThis talk proposes a reimagination of Java's serialization mechanism, shifting the responsibility to the class author for defining the external data representation using language constructs like constructors and patterns. The new approach aims to address the issues with the existing serialization system by providing a more explicit, extensible, and secure solution. |
![]() |
The State of Server Side Java Webapps by Maarten MuldersThe presentation discusses the state of server-side Java web applications, highlighting the advantages of server-side rendering over single-page applications, including better initial loading times, improved search engine optimization, and enhanced accessibility. The speaker also covers different architectural approaches and implementation examples for server-side Java web apps, emphasizing the need to make conscious choices based on the project's requirements and constraints. |
![]() |
Replacing the Gearbox (while Driving Down the Motorway) by Dan HaywoodThe video discusses the challenges and strategies involved in migrating a large, modular monolith application from an older framework (Apache Isis) to a newer one (Causeway), while maintaining business continuity and ensuring a smooth transition. The presenter shares various techniques, such as using Maven profiles, Git work trees, and Open Rewrite, to manage the migration process effectively. |
![]() |
The Current State of Apache Maven 4 - Development by Karl Heinz MarbaiseThe presentation provides an overview of the current development of Apache Maven 4, including the Maven ecosystem, architecture changes over time, and improvements in Maven 4. The speaker discusses the separation of the build POM and the consumer POM, as well as other enhancements and performance considerations. |
![]() |
Kotlin 2.0 and beyond by Anton ArhipovThis talk provides an overview of the evolution of the Kotlin programming language, highlighting key features and improvements introduced in Kotlin 2.0 and beyond. The speaker discusses the language's transition from a prototype to a more robust and performant compiler, as well as upcoming features aimed at enhancing data-oriented programming and the type system. |
![]() |
Top REST API Design Pitfalls by Victor RenteaThe speaker discusses common pitfalls in designing RESTful APIs, emphasizing the importance of versioning, contract management, and separation of concerns between read and write models. He also highlights the significance of error handling, client-centric design, and the trade-offs involved in adopting patterns like CQRS and microservices. |
![]() |
Unleashing the power of Angular: Navigating the latest releases and transformations by Loïc MagnetteThis talk explores the latest Angular releases and transformations, highlighting new features like the improved control flow syntax, defer view for lazy loading, and the introduction of signals - a powerful new state management mechanism. The speaker demonstrates how these advancements can enhance developer experience, improve performance, and pave the way for a 'zone-less' Angular, while also providing insights into the future direction of the framework. |
![]() |
Developer Experience : From Hype to Reality by Soroosh Khodami, Makan SepehrifarThis talk explores the concept of developer experience, highlighting the need to balance the expectations of developers and managers. The presenters discuss four key aspects - predictability, cohesion, accountability, and observability - to help organizations achieve an optimal developer experience and overcome the challenges of scaling and complexity. |
![]() |
AsyncAPI & Springwolf - Automated documentation (and more) by Raphael De Lio46This talk explores AsyncAPI, a specification for defining asynchronous APIs, and SpringWolf, a Spring Boot library that automatically generates documentation for AsyncAPI-based applications. The speaker discusses the challenges of communication and coordination in modern software architectures, and how AsyncAPI and SpringWolf can help address these issues by providing a standardized way to define and document asynchronous APIs. |
![]() |
Harmonizing Code and Melody: making electronical music in a matter of speaking! by Jan Van WassenhovThis talk explores a novel approach to creating electronic music by harmonizing code and melody. The presenter demonstrates a multi-agent system called 'Music Agent' that leverages language models and Sonic Pi to generate complete songs, album covers, and lyrics, allowing developers to explore their creativity through coding. |
![]() |
Design Patterns Revisited in Modern Java by Venkat SubramaniamThe video discusses how design patterns have evolved with the advancement of Java, highlighting the use of optional, lambda expressions, and data-oriented programming to improve code design and reduce complexity. It emphasizes the importance of choosing the right tool for the problem at hand and not being overly attached to a single programming paradigm. |
![]() |
DevoxxGenie: Your AI Assistant for IDEA by Gunter RotsaertThis talk presents DevoxxGenie, an AI assistant plugin for the IntelliJ IDEA IDE, which integrates with both cloud-based and local language models to provide enhanced coding assistance. The speaker demonstrates the plugin's features, including code explanation, feature implementation, and unit testing support, and discusses the trade-offs between cloud and local language models. |
![]() |
From monolith to multi-services, how a platform engineering approach transforms your business ? byThis talk discusses how a platform engineering approach can transform a business's architecture from a monolith to a multi-service model. The speaker shares their experience at Doctolib, a healthcare company, and how they have implemented platform engineering principles to improve developer productivity, reliability, and collaboration across their teams. |
![]() |
Unpoly - Single Page Experience with Server-Side Rendering by Patrik DuditšUnpoly is a JavaScript library that enables server-side rendering while providing a single-page application experience. The talk demonstrates Unpoly's features, including partial page updates, caching, form handling, and integration with third-party libraries, showcasing how it can simplify the development of responsive web applications. |
![]() |
Endpoint versioning made simple by Bouke NijhuisThis talk presents a simple and effective approach to endpoint versioning, where a single global version number is used to manage changes across an entire API. The speaker demonstrates a custom library that enables this global versioning mechanism, with minimal impact on the codebase and easy integration for consumers. |
![]() |
Building resilient applications with Durable Execution by Giselle van DongenThis talk introduces a new approach called 'durable execution' that aims to simplify the development of resilient applications by abstracting away the complexity of handling infrastructure failures, retries, and consistency management. The speaker demonstrates how the 'restate' tool can be used to implement durable, fault-tolerant workflows without the need for additional infrastructure components like message queues, workflow orchestrators, or state management systems. |
![]() |
ES|QL FTW! by Piotr PrzybylThis talk introduces the new ESQL (Elastic Search Query Language) feature in Elastic Search, a powerful and intuitive SQL-like language for querying and analyzing data stored in Elastic Search. The speaker demonstrates how ESQL can be used from Java applications, showcasing its integration with JDBC-like APIs and the impressive performance advantages it offers over the traditional Elastic Search query DSL. |
![]() |
Memory API: Patterns, Uses Cases, and Performance by José Paumard, Remi ForaxThe presentation covers the Java Memory API, including patterns, use cases, and performance considerations. The speakers discuss the Memory API's features, such as memory access, allocation, and deallocation, and how it addresses the limitations of the previous Byte Buffer API. |
![]() |
Bringing GenAI to the Modern Enterprise. A production use-case. In Serverless Java! by Dan DobrinThis session discusses how to bring generative AI to the modern enterprise, covering a production use case and implementing it using serverless Java. The presentation covers architectural decisions, best practices, and advanced topics like data management, observability, and optimization. |
![]() |
Cruising Along with Java: Benefiting from the Modern Features by Venkat SubramaniamThis talk provides an overview of modern Java features, including type inference, text blocks, records, sealed classes, and pattern matching with switch expressions. The speaker highlights the benefits and best practices for using these features to write more concise, expressive, and maintainable Java code. |
![]() |
Java meets AI: Build LLM-Powered Apps with LangChain4j by Deandrea, Andrianakis, EscoffierThis talk covers the integration of large language models (LLMs) into Java applications using the LangChain4j toolkit and the Quarkus LangChain4j framework. The presenters demonstrate various use cases, including a summarizer, a chatbot, and text extraction from images, while also discussing key concepts such as prompt engineering, memory management, and security considerations. |
![]() |
Javaflame - Capture function arguments, visualize them in a flamegraph by Lucas de Carvalho BuenoJava flame is a tool created by Lucas de Carvalho Bueno that captures function arguments and visualizes them in a flame graph. The tool provides a comprehensive view of the application's execution, allowing developers to understand the relationships between function calls and the values passed between them, without the need to modify the application's code. |
![]() |
jbang - Unleash the power of Java by Max Rydahl Andersenjbang is a powerful tool that simplifies the process of running and distributing Java applications, enabling developers to cut through the 'Gordian knot' of Java's complex ecosystem. By providing a streamlined installation process, support for various Java versions, and the ability to run Java scripts and applications without the need for traditional build tools, jbang aims to make Java more accessible and approachable for developers of all levels. |
![]() |
A better Jupyter Experience for Java Developers - JTaccuino unveiled by Jose Pereda, Sven ReimersThe video presents a new Java-focused notebook tool called JTaccuino, which aims to provide a better Jupyter experience for Java developers. The tool offers features like code completion, syntax highlighting, error marking, interactive data display, and support for the latest Java features, all within a live and open-source environment. |
![]() |
Unlocking Seamless Collaboration: Design-First APIs for Components by Lucien ImminkThis talk explores the concept of 'design-first' APIs for UI components, emphasizing the importance of communication and collaboration between designers, developers, and stakeholders to create reusable, framework-agnostic components. The speaker introduces the custom elements manifest, a standardized approach to documenting and automating the development of web components, as a solution to improve the development and integration of UI components across teams and projects. |
![]() |
A Developer's Tale: Migrating an Angular app from version 10 to 18 by Loïc MagnetteThis talk discusses the journey of migrating an Angular application from version 10 to version 18, highlighting the challenges, best practices, and tools that can be used to make the migration process smoother. The speaker shares their personal experience and provides practical advice on how to approach the migration step-by-step, emphasizing the importance of automated testing and planning the update process. |
![]() |
The Joy of Testing by Victor RenteaThe talk explores various techniques and best practices for improving the quality and expressiveness of software testing, including parameterized tests, mutation testing, approval testing, and behavior-driven development with tools like Cucumber. The speaker emphasizes the importance of early testing, shared understanding between developers and business stakeholders, and creating a culture of joy and collaboration around testing. |
![]() |
Tabby, my free "Copilot" by Rafik FerroukhThe video presents Tabby, a free and open-source AI code assistant tool as an alternative to proprietary solutions like GitHub Copilot. The speaker highlights Tabby's customization capabilities, support for various languages, and the importance of open-source AI tools in the landscape of generative AI technologies. |
![]() |
From native code gems to Java treasures with jextract by Ana-Maria MihalceanuThis talk explores how the jextract tool can be used to generate Java bindings for native code libraries, allowing Java developers to seamlessly integrate with a wide range of native APIs. The speaker demonstrates the process of generating bindings for C, Python, OpenGL, and Rust libraries, highlighting the benefits of the Foreign Function and Memory API and the flexibility of the jextract tool. |
![]() |
Wait no more, here comes Maven 4! by Robert Scholte, Maarten MuldersThis video discusses the upcoming release of Maven 4, highlighting the changes and improvements it will bring, including the separation of the build POM and the consumer POM, the introduction of the bill of materials (BOM) packaging, and the move to Java 17 as the required runtime for Maven. The presenters encourage the audience to test Maven 4 on their projects and report any issues, as the goal is to make the transition as smooth as possible. |
![]() |
Falling in love with json(net) by Jakub MarchwickiThis presentation explores the benefits of using the Json.NET library to manage and streamline the handling of JSON data in software development. The speaker demonstrates how Json.NET can simplify the creation and deployment of complex JSON-based configurations, such as cloud monitoring dashboards, through features like templating, variable substitution, and built-in validation. |
![]() |
Run your favorite games everywhere with WASM: the BlazorDoom use case by Yassine BenabbasThis talk explores the potential of WebAssembly (Wasm) for porting games to the browser, using the BlazorDoom use case as an example. The speaker demonstrates how to leverage Wasm's interoperability with JavaScript to create a web-based version of the classic game Doom, highlighting the ease of porting existing C/C++ code to the browser. |
![]() |
Java 23 - Better Language, Better APIs, Better Runtime by Nicolai ParlogThis talk covers the new features and improvements in Java 22 and Java 23, including un patterns, the foreign function memory API, multi-source file programs, markdown in Java, and generational ZGC. The speaker also discusses the deprecation and removal of certain Java technologies, and the importance of the class file API in improving the Java ecosystem. |
![]() |
From naive to advanced RAG: the complete guide by Cédrick Lunven, Guillaume LaforgeThis presentation provides a comprehensive guide on retrieval-augmented generation (RAG) techniques, including naive and advanced approaches. It covers various aspects of RAG, such as ingestion, querying, ranking, and evaluation, and highlights the importance of prompt engineering, model selection, and data lifecycle management. |
![]() |
Devoxx Belgium 2024 #SafeTravels 🎤 😎Devoxx Belgium 2024 is the premier conference where the future of tech takes center stage. From cutting-edge workshops and panels on AI, cloud, and the latest industry trends to vibrant networking and knowledge-sharing, this event promises to ignite the minds of attendees and drive innovation forward in the heart of Europe. |
![]() |
Enhancing Productivity and Insight: A Tour of JDK Tools Progress Beyond Java 17 by MihalceanuThis talk provides an overview of the key changes and enhancements to the JDK tools since Java 17, covering topics such as improved productivity, enhanced API documentation, and advancements in development and deployment tools. The speaker highlights the introduction of new features like the `--linter` option, the `@EditorSnippet` tag, and the integration of Markdown in documentation comments, as well as the expanded capabilities of tools like jshell and jpackage. |
![]() |
The road to Gradle 9 by Alex Semin, Louis JacometThe presenters discuss the upcoming Gradle 9 release, focusing on improving build comprehensibility and scalability. They also provide an overview of ongoing initiatives, such as isolated projects and declarative Gradle, which aim to enhance developer productivity and build system flexibility. |
Energy
![]() |
Outsmarting the energy grid with AI by Peter DefreyneThis presentation outlines a novel AI-based solution for optimizing energy management in homes with complex energy systems, such as solar panels, electric vehicles, and smart appliances. The solution leverages real-time data, forecasting, and constraint optimization techniques to generate personalized schedules that minimize energy costs and maximize the use of renewable energy, while also considering user preferences and constraints. |
Keynote
![]() |
Mario Fusco : 20 years younger 🤩 💈 ✂️In this video, Mario Fusco, a 50-year-old developer, undergoes a dramatic transformation, getting a stylish haircut and makeover during a conference keynote. The transformation is a surprise for his wife, and the audience is entertained by the process and the resulting youthful and hip appearance of Mario. |
![]() |
Devoxx Belgium GenesisDevoxx Belgium Genesis, a captivating video that takes viewers on a thrilling journey of technological exploration. Through a concise yet impactful presentation, the video showcases the seamless integration of various systems, culminating in a mesmerizing countdown sequence that culminates in an enthusiastic audience response. This abstract-style summary captures the essence of the video's content, inviting conference attendees to delve deeper into the innovative and engaging world it presents. |
Networking
![]() |
HTTP/3 and QUIC: Who, what, where, when and, WHY? by Robin MarxThe video provides an in-depth overview of HTTP/3 and QUIC, highlighting the key features, challenges, and trade-offs involved in the evolution of internet protocols. It explores the technical complexities and security considerations that drive the development of these new protocols, emphasizing the importance of balancing performance and security in the ever-changing landscape of the internet. |
![]() |
Modern & secure adaptive streaming on the Web by Katarzyna DuszaThe presentation covers the modern and secure adaptive streaming on the web, including topics such as segmentation, adaptive bitrate, DASH protocol, and encrypted media extensions. The speaker demonstrates the practical implementation of these techniques through live coding examples and provides resources for further exploration. |
Observability
![]() |
Synthetic Monitoring and E2E Testing: 2 Sides of the Same Coin by Carly RichmondThis talk explores how synthetic monitoring and end-to-end testing can be unified using a common toolset, such as Playwright, Elastic Synthetics, and GitHub Actions. The speaker highlights the benefits of this approach, including improved collaboration between teams, better visibility into application performance, and the ability to catch issues earlier in the development cycle. |
![]() |
The Science of Signals: Mastering Telemetry for Observability by Alex Van Boxel, Maximilien RicherThis talk covers the history and evolution of different monitoring signals, including metrics, logs, and traces, and how the open-source project OpenTelemetry provides a unified approach to instrumenting applications and collecting these signals. The speakers also discuss best practices for managing the cost and cardinality of these signals, as well as a live demo of using OpenTelemetry to instrument a Spring application. |
Performance Engineering
![]() |
Performance oriented Spring Data JPA & Hibernate by Maciej WalkowiakThis talk explores performance optimization techniques for Spring Data JPA and Hibernate, covering topics such as connection management, eager fetching, and the use of projections to avoid over-fetching data. The speaker provides practical insights and code examples to help developers improve the performance of their applications that rely on these popular frameworks. |
![]() |
Core Web Vitals: How to make your angular app feel like a dream by Nicolas FrizzarinThis talk explores how to optimize Core Web Vitals, specifically focusing on Angular applications. It covers the different metrics that make up Core Web Vitals, such as Largest Contentful Paint (LCP), Cumulative Layout Shift (CLS), and Interaction to Next Paint (INP), and provides practical solutions to improve these metrics in Angular applications. |
![]() |
Core Web Vitals: How to make your angular app feel like a dream by Nicolas FrizzarinThe talk covers the importance of Core Web Vitals, specifically in the context of Angular applications. It discusses the various metrics that make up Core Web Vitals, such as Largest Contentful Paint (LCP), Cumulative Layout Shift (CLS), and Interaction to Next Paint (INP), and provides practical solutions to optimize these metrics in Angular projects. |
![]() |
Accelerating performance of Java applications on Arm64 by Dave NearyThis talk covers the performance improvements in Java applications on Arm64 architecture, including the use of intrinsics, SIMD instructions, and optimizations for memory barriers. The speaker also provides guidance on tuning the Java Virtual Machine (JVM) and operating system configurations to maximize performance, particularly for cloud-based deployments. |
![]() |
JVM in the Age of AI: Babylon, Valhalla, TornadoVM and friends by Artur SkowronskiThis presentation provides an overview of the current state of Java Virtual Machine (JVM) and its capabilities in the age of Artificial Intelligence (AI). It covers various projects and technologies, such as GraalVM, Valhalla, TornadoVM, and Project Panama, that aim to enhance the performance and interoperability of JVM with modern AI frameworks and hardware accelerators. |
![]() |
Zero Waste, Radical Magic, and Italian Graft – Quarkus Efficiency Secrets by Holly CumminsThis talk explores the efficiency secrets of the Quarkus framework, highlighting how it challenges assumptions, leverages build-time optimizations, and provides a developer-friendly experience while achieving high performance and low resource consumption. The speaker delves into techniques such as moving work to build-time, utilizing an efficient index, and providing optional magic to optimize for both machine and human efficiency. |
![]() |
Trash Talk - Exploring the JVM memory management by Gerrit GrunwaldThe presentation explores the fundamentals of memory management in the Java Virtual Machine (JVM), covering various garbage collection algorithms and techniques, including non-moving and moving collectors, generational collectors, and concurrent garbage collection. The speaker provides a comprehensive overview of the different garbage collectors available in the JVM, their trade-offs, and guidelines on how to choose the appropriate collector based on the application's requirements. |
![]() |
Java Performance Update 2024 by Per MinborgThe presentation provides an update on Java performance improvements, covering topics such as new OpenJDK projects, performance metrics, optimization strategies, and recent enhancements in Java 24 and 25. The speaker discusses various techniques like inlining, loop unrolling, hoisting, and vectorization that the Java compiler uses to optimize code performance. |
![]() |
Garbage Collection in Java: The progress since JDK 8 by Stefan JohanssonThis presentation provides an overview of the different garbage collection algorithms available in Java, including their focus areas and performance characteristics. The speaker also discusses the significant improvements in garbage collection performance since Java 8, with a focus on throughput, latency, and memory usage, as well as success stories from real-world deployments. |
![]() |
1BRC – Nerd Sniping the Java Community by Roy van Rijn, Gunnar MorlingThis talk explores a viral coding challenge called the 1BRC (One Billion Rows Challenge), where participants were tasked with processing a 30GB file with one billion temperature measurements as fast as possible using Java. The presenters discuss the various optimization techniques employed by the community, including leveraging parallel processing, memory-mapped files, and low-level bit manipulation, to achieve impressive performance results in the range of 300 milliseconds for processing the entire dataset. |
![]() |
Migrating Spring Boot apps to GraalVM by Alina Yurenko, Daniel Garnier-MoirouxThe video covers the process of migrating Spring Boot applications to GraalVM, a high-performance JDK that allows for faster startup times and reduced memory usage. The presenters discuss the benefits of using GraalVM, the challenges of working with reflection and other dynamic Java features, and provide strategies for testing and optimizing the performance of GraalVM-based applications. |
![]() |
Lean Spring Boot Applications for the Cloud by Patrick BaumgartnerThe presentation explores techniques to optimize Spring Boot applications for the cloud, including JVM and Spring Boot optimizations, dependency management, and leveraging different runtime environments like GraalVM and OpenJ9. The speaker demonstrates significant improvements in startup time, memory usage, and throughput by applying various optimizations and strategies. |
![]() |
Project Leyden: Improving Java’s Startup Time by Per Minborg, Sébastien DeleuzeProject Leyden aims to improve Java's startup time and warmup by shifting computational work earlier or later in time, while preserving Java's dynamic features and compatibility. The presenters demonstrated how Leyden's ahead-of-time caching can provide significant startup time improvements of up to 4x for Spring Boot applications, without major changes to the programming model. |
![]() |
Pushing Java to the Limits: Processing a Billion Rows in under 2 Seconds by Thomas WuerthingerThis talk provides a deep dive into optimizing Java performance for processing a billion rows of data in under 2 seconds. The presenters, Thomas Wuerthinger and Roy Groenen, discuss their experiences participating in the 1 Billion Rows Challenge, exploring techniques such as using the GraalVM compiler, bit manipulation, and branchless programming to achieve remarkable performance improvements. |
![]() |
Measure, don’t guess: benchmarking stories from the trenches by Mario Fusco, Francesco NigroThe presenters discuss the importance of benchmarking in software development, highlighting the pitfalls and best practices. They provide several examples of common mistakes and lessons learned when using the Java Microbenchmark Harness (JMH) tool to measure performance at the micro and nano-second scale. |
![]() |
Find and fix performance issues in your code usign Digma by Roni DoverThis talk presents a tool called Digma, which aims to help developers find and fix performance issues in their code using observability data. The speaker demonstrates how Digma can automatically detect and prioritize performance problems, allowing developers to address issues proactively rather than reactively. |
![]() |
Micro Benchmarking - The Art of Realizing One is Wrong by René SchwietzkeThis talk provides a deep dive into the art of micro-benchmarking, exploring the challenges and pitfalls associated with accurately measuring performance in Java. The speaker emphasizes the importance of understanding the underlying hardware, JVM internals, and the impact of data and code structure on benchmark results, cautioning against the common trap of drawing unreliable conclusions from micro-benchmarks. |
Security
![]() |
Securing LLM-Powered Applications: Overcoming Security and Privacy Challenges by Brian Vermeer, LizeThe talk discusses strategies for securing LLM-powered applications, highlighting potential security and privacy challenges. It covers techniques like prompt injection, SQL injection, and unauthorized function calls, and provides solutions such as input sanitization, strict system messages, and programmatic flow control to mitigate these risks. |
![]() |
Building a Lightning Fast Firewall with Java & eBPF by Mohammed Aboullaite, Johannes BechbergerThe presentation introduces the use of Java and eBPF (extended Berkeley Packet Filter) to build a high-performance, secure, and efficient firewall for Linux systems. The speakers demonstrate how eBPF, a technology that allows for the programmability of the Linux kernel, can be leveraged to create custom networking and security solutions that can be easily deployed and updated, providing a more modern software development workflow compared to traditional kernel module approaches. |
![]() |
Breaking AI: Live coding and hacking applicattions with Generative AI by Brain VermeerThis talk explores the use of generative AI tools in software development, highlighting both the benefits and risks. The speaker demonstrates live coding with AI-powered tools like GitHub Copilot, showcasing how they can improve productivity but also introduce security vulnerabilities if not used responsibly. |
![]() |
A Passwordless Future! Passkeys for Java Developers by Deepu SasidharanThe video discusses the concept of a passwordless future using passkeys, a new authentication method based on public-key cryptography. It covers the underlying technologies, the registration and authentication flows, the advantages of passkeys over traditional passwords, and some of the current challenges in adopting this technology. |
![]() |
Code Security Reinvented: Navigating the era of AI by Joseph KatsioloudesThe talk explores how AI can revolutionize code security by empowering developers to write safer code, detect vulnerabilities, and leverage the world's security knowledge. The speaker demonstrates practical AI-powered tools and techniques that can help bridge the gap between security professionals and software developers, ultimately improving the security of the open-source software we all depend on. |
![]() |
Monitoring Java Application Security with JDK tools and JFR Events by Ana-Maria MihalceanuThis talk provides a comprehensive overview of using JDK tools and JFR events to monitor the security of Java applications. The presenter demonstrates how to leverage various JFR security events, including security property modifications, TLS handshakes, and X509 certificate validations, to gain insights into the security posture of a Spring Boot application, both in a local environment and when deployed to the cloud. |
![]() |
Spring Boot testing: Zero to Hero by Daniel Garnier-MoirouxThis talk covers the various techniques and tools available for testing Spring Boot applications, from unit tests using MockMVC and WebClient to integration tests with TestContainers. The speaker also discusses best practices for managing test contexts, mocking dependencies, and testing asynchronous processes and security configurations. |
Sustainability
![]() |
Your frontend is ☠️ ⚠️ Let's measure its impact with CO2.js by Ko TurkThis talk discusses the environmental impact of front-end development and how to measure it using the CO2.js library. The speaker presents various strategies and principles for creating more sustainable web applications, including optimizing image sizes, reducing network connections, and choosing eco-friendly cloud providers. |
![]() |
Architecting a Sustainable Future by Jan-Hendrik KuperusThis talk discusses the importance of sustainability in the tech industry, highlighting the significant energy consumption and carbon emissions associated with data centers and the exponential growth of AI. The speaker proposes various strategies and techniques, such as observability, demand shaping, demand shifting, and light switch ops, to help architects and developers build more sustainable software systems. |