Jonathan Harel
Przemek Bielicki
Vadym Kazulkin
Paweł Kowalski
The best time to talk with speakers and attendees
Jaroslav Tulach
Pavel Marek
Jacek Kunicki
Ties van de Ven
Tiffany Jernigan
Marcin Grzejszczak
The best time to talk with speakers and attendees
Abdel Sghiouar
Andrii Rodionov
Grzegorz Milka
Jarek Ratajski
VEGAN *Delicate vegetable curry with tofu on jasmine rice
Penne Bolognese + salad
*Roasted turkey in cherries + rice + salad
Adam Bien
Ignasi Marimon-Clos i Sunyol
Wojciech Pituła
Anton Keks
The best time to talk with speakers and attendees
Martin Stefanko
Vadzim Prudnikau
Jarosław Pałka
Michał Jonko
Patrycja Wegrzynowicz
The best time to talk with speakers and attendees
Philippe Duval
Alexandre Touret
Jakub Marchwicki
Johan Janssen
Zbyszko Papierski
The best time to talk with speakers and attendees
Ondro Mihalyi
Sebastian Gebski
Rafal Foltynski
Jan Martiška
The best time to talk with speakers and attendees
Sergei Kurnevich
Sergiu Ilie
Keren Kenzi
Tomas Rehak
Bartłomiej Kuczyński
HEVRE, Meiselsa 18 Street
The best time to take coffee or juice
The best time to talk with speakers and attendees
To Be Announced
Join other attendees and share ideas, talk about the recent challenges, or find solution for a problem. During this session you can connect with other like-minded people in a space designated for certain languages, technologies, and interests.
1. Suggest a topic
Look for large white sheets of paper, and tell everyone what is on your mind! You can also tweet using #topicforgeecon hashtag. Vote for topics (mark it with line/x/heart) and like tweets to show others you’re interested.
2. Choose a room and have fun
We will group similar topics and assign a room. Topics will be pinned before room entrance (list of topics and rooms will be also posted using attendees slack channel - slack.geecon.cz), so you will be able to join others also interested in eg. Kotlin, JVM tuning, Machine learning or testability.
HEVRE, Meiselsa 18 Street
VEGAN *Stuffed zucchini + roasted potatoes + salad
Chicken in thyme sauce + rice + salad
Roasted pork in chanterelle + boiled potatoes + salad
VEGAN *Delicate vegetable curry with tofu on jasmine rice
Penne Bolognese + salad
*Roasted turkey in cherries + rice + salad
Russian dumplings and spinach + salad
Fish in leek sauce& potato wedges + salad
*Chicken in capsicum sauce + barley + salad
Software, like board games, needs instructions. Should I draw a card or play my card first? Will the connection be reused, or should I use a connection pool? In heroic tales, a protagonist needs directions from elder scrolls to user magical artifacts and complete their mission. In this talk, Ignasi will explain his journey from neglecting docs to considering them an important step on the software delivery cycle. Ignasi will share tips ant tricks he’s been collecting over the years and focus on which habits he adopted to make sure he doesn’t forget docs. Ignasi will also share the types of audience and cases where documentation can save time and money to your organization. After discussing the importance of documentation within several teams, Ignasi will try to counter the usual arguments and excuses those who don’t document often use. No, the code is not the documentation, the code doesn’t tell the whole story. You can have a strong type system restricting how to call an API and still be an unusable API: “Hmm, I need a Token here, where do I get it?”. Join Ignasi for a talk about board games, child tales, and embarrassing PRs. This talk targets beginner/daily user/experts alike.
Ignasi Marimon-Clos i Sunyol
Back-End (JVM) developer for over 20 years. Java developer turned Scala developer. While working on Healthcare of Electoral systems, Ignasi focused on software engineering and quality assurance. He later expanded his interests into profiling and distributed systems. In recent years, his energy revolves around observability.
In the realm of Java programming, understanding memory management and garbage collection mechanisms cannot only be helpful for optimizing performance and resource utilization but also in general will help you to use the right garbage collector for your application. This session will be about memory allocation, object lifecycle, and garbage collection strategies within the Java Virtual Machine (JVM). Attendees will gain insights into memory allocation strategies, object retention policies, and various garbage collection algorithms like generational and concurrent collection. So when you are interested in getting more knowledge about which garbage collector to use best for your application or about memory management in the JVM, this session is for you.
Gerrit Grunwald
Gerrit Grunwald is a software engineer that loves coding for around 40 years already. He is a true believer in open source and has participated in popular projects like JFXtras.org as well as his own projects (TilesFX, Medusa, Enzo, SteelSeries Swing, SteelSeries Canvas, JDKMon). Gerrit blogs regularly at http://harmonic-code.org, he is an active member of the Java community, where he founded and leads the Java User Group Münster (Germany), he is a JavaOne rockstar and a Java Champion. He is a speaker at conferences and user groups internationally and writes for several magazines.
In the past few years GraalVM got widely adopted by the Java ecosystem, and now it's hard to imagine starting a new project, especially for the cloud, without at least considering going native. However, taking a new technology to production requires research and preparation. What is the best way to build and deploy such native executables? Once deployed, how can I monitor them? Can I test them as I do with regular Java applications? What if startup is less important, how do I optimize for peak performance and latency? How do I use frameworks and libraries? This session will cover all of those steps and illustrate them with examples. We'll also have plenty of time for questions – bring them all!
Alina Yurenko
Alina is a developer advocate for GraalVM at Oracle Labs, a research & development organization at Oracle. Loves both programming & natural languages, compilers, and open source.
Let's talk about breaking down walls between departments and creating killer cross-functional teams! In my talk, we'll dive into why it's crucial to mix different skills and backgrounds for for getting great stuff done. We'll spill the beans on picking the right combo of talents and using diversity to foster creativity. Whether you're into tech, product, or something in between this talk is for you. Join us and dive into the future of teamwork in a hybrid world.
Tomasz Manugiewicz
Tomasz Manugiewicz is the General Manager of Grand Parade Poland. An engineer at heart. A speaker by passion. He has delivered speeches at the largest European IT conferences, also as a keynote speaker. He has had presentations for brands such as Devoxx Belgium, Devoxx Poland, Agile Tour London, Agile Central Europe, DevDays Europe, and many more. In the IT sector since 2006. He worked as an Engineering Manager and, at the beginning of his path, when he was a Java Engineer, he helped to create the first Polish online banking systems. He also worked for international global corporations, including in the banking and ICT telecom sectors. Tomasz is an Agile enthusiast and coach - conducted his first Agile Transformation in 2009. He is a co-author of the leadership book 'The LiGHT BOOK2 - Leaders' insights for leaders based on true stories'. At the AGH University of Technology, he is a lecturer, supporting young engineers on their way to the world of IT.
Just as development should be iterative, software design should change when the context and our understanding of the problem evolve. As a software grows to solve more problems, it becomes less supple in its ability to evolve. Tensions arise within the business model of the software that struggles to stay coherent. Eventually it reaches a critical mass and becomes a monolith of spaghetti code. How do we know when it’s time to modularize our software? How do we carry on the decision to split it into several modules or services? How can we handle the progressive differenciation of our business models while avoiding unnecessary coupling? It’s not as easy as a clean axe cut in the middle, finding the right boundaries can be tricky. We would like to introduce the Mitosis Pattern, a dynamic approach used to split a business model into multiple ones that will get shaped and decoupled iteratively. Gain flexibility to choose better when to split into multiple services, and avoid paying the scale cost of microservices or becoming a distributed monolith.
Julien Topcu
I like to craft software with high business value using techniques from Domain-Driven Design, all powered by Xtreme Programming in the Kanban #NoEstimates philosophy. Member of the OWASP foundation, I evangelise on application security techniques in order to avoid being hacked properly.
Josian Chevalier
Software Craftsman at Shodo, I specialize in Domain Driven Design. I strive to improve my approach of software development and my knowledge, as well as raise awareness about software quality among developers.
Computation is increasingly constrained by power. With each advancement in the manufacturing process, a decreasing percentage of the CPU can operate at full capacity, leading to the emergence of the term 'dark silicon'. This trend necessitates techniques that utilize chip area to optimize power efficiency through specialized accelerators. The presentation will outline key concepts that led to the dark silicon such as Moore’s law and breakdown of Dennard scaling, followed by an overview of current and upcoming CPU accelerators. The focus will then shift to vector units and the specifics of vector programming. Attendees will be introduced to registers, a range of vector operations, and methods to develop branchless algorithms such as sorting networks. The session will conclude with an overview of the new Java Vector API and how it was already picked up by projects to do AI inference (Llama 2) and vector search (AstraDB and Cassandra).
Tomasz Kowalczewski
Veteran of many failed paradigms, I worked in the industry long enough to remember when microservices was a new thing. My interests and talks focused on reactive programming, garbage collection, and performance engineering. I worked on large scale deployments in airline and adtech industries. Right now working at VoltDB, a database that originated from a project by Michael Stonebraker and Andy Pavlo. Its in-memory architecture with efficient, shared nothing, thread per core design provides a great testing ground for novel architectural concepts.
Have you heard about Quarkus ? for sure you have, a new super fast, super light framework to develop cloud native and GraalVM compatible apps. But, is that easy to go the Quarkus way ? is it hard to migrate an existing app ? For sure in a hello world demo this will look fantastic ( they all look that way don’t they ? ) but, in a real app, is that nice ? is that easy ? is that fun ? In this session I will show my experience from scratch migrating an app to Quarkus, using different technologies as Hibernate, Prometheus, Rest, … and also how you can check your current app and see how easy is to migrate using a foss app to analyse it. Prepare for a journey of reality, failures, and experiences on the universe of Quarkus , at a ludicrous speed.
Jonathan Vila
Java Champion, Organiser at BarcelonaJUG and cofounder of JBCNConf and DevBcn conferences in Barcelona. Currently working as Developer Advocate in Java for Sonarsource (SonarLint,SonarQube), focused on Clean Code & Security. Former SE at Tetrate, SSE at Red Hat in Keycloak team, SSE at Ocado Technology, SSE at Netcentric. I have worked as a (paid) developer since 30 years ago using Java on Kubernetes for K8s Operator, Rest API, using Quarkus, GraalVM, Apache Camel | Go on Kubernetes for a Service Mesh layer on top of Istio | PHP | VB | Python | Pascal | C | Delphi | Assembler Very interested in simulated reality and psychology
In this presentation, I'll dive into the hands-on creation of a serverless Java app, embracing the monolithic architecture. We'll navigate through the entire process: from development to testing, and even tackling resource provisioning with Infrastructure as (Java) Code (IaJC) - spoiler: no actual servers involved! Along the way, I'll share insights on design patterns and discuss evolving 'best practices'. Your questions are not just welcome, but a top priority - I'll address them live, as we go!
Adam Bien
Developer (Architect), Consultant, Trainer, Podcaster (https://airhacks.fm), AWS Hero and Java (Champion) enthusiast Adam Bien (https://adambien.blog) uses Java since JDK 1.0 and JavaScript since LiveScript and still enjoys writing code. Adam regularly organizes Java / Web / Cloud / Architectures online live workshops https://airhacks.live and monthly Q&A live streaming show: https://airhacks.tv.
We all use computer chips such as processors, memory and sensors in our daily lives. But how are they created? How did the chip creation process evolve and what future changes can we expect? This session explains how computer chips are physically created by some of the most advanced machines on the planet. Did you know that these chips, nowadays, can contain more than one hundred million transistors per square millimeter? Java software is used everywhere, also in the process of chip manufacturing. In my project at ASML we’re working on a relatively new analytics platform which is used to process the data from the machines. The application then visualizes the results in order to find issues or improvement areas. This information is used to change the configuration parameters of the physical machine in order to create more and better chips. I will explain, on a high level, how our applications look like and which Java technologies we use.
Johan Janssen
Johan is working as software architect at ASML. He has been working for various demanding companies where rapidly delivering high-quality software was very important. Johan regularly writes articles for InfoQ and Java magazines, mainly around Java. He presented more than 90 conference sessions in 24 countries at conferences such as JavaOne, GOTO, Devoxx, JavaZone, J-Fall, J-Spring, Jfokus and JavaLand. Johan received the JavaOne Rock Star, Oracle Code One Star and Oracle ACE Pro awards.
Suppose you have embraced Apache Kafka as the core of your data infrastructure. In that case, you have probably integrated event-driven services to communicate with each other through topics, combined with legacy systems through an ecosystem of connectors, and responded more or less in real-time to things happening in the world outside your software. Immutable logs of events form a more robust backbone than the one-database-to-rule-them-all of your profound monolith past. Your stack is more evolvable, responsive, and easier to work with. However, you might face a challenge now that everything is a stream - how do you query things? Although you may name at least one or two ways off the top of your head, it's time you think through how to make the choice. In this talk, we'll explore the solutions currently in use for asking questions about the contents of a topic, including Kafka Streams, the various streaming SQL implementations, your favorite relational database, your favorite data lake, and real-time analytics databases like Apache Pinot. There is no single correct answer to the question, so as responsible builders of systems, we must understand our options and the trade-offs they present to us. You'll leave this talk even more satisfied that you've embraced Kafka as the heart of your system and are ready to deploy the right choice for querying the logs that hold your data.
Viktor Gamov
Viktor Gamov is the Head of Developer Advocacy at StarTree, a pioneering company in real-time analytics with Apache Pinot®. With a rich background in implementing and advocating for distributed systems and cloud-native architectures, Viktor excels in open-source technologies. He is passionate about assisting architects, developers, and operators in crafting systems that are not only low in latency and scalable but also highly available. As a Java Champion and an esteemed speaker, Viktor is known for his insightful presentations at top industry events like JavaOne, Devoxx, Kafka Summit, and QCon. His expertise spans distributed systems, real-time data streaming, JVM, and DevOps. Viktor has co-authored 'Enterprise Web Development' from O'Reilly and 'Apache Kafka® in Action' from Manning. Follow Viktor on X - @gamussa to stay updated with Viktor's latest thoughts on technology, his gym and food adventures, and insights into open-source and developer advocacy.
Gemini is the Large Language Model (LLM) powering Bard, but you can also use its API through Google Cloud and integrate it into your applications. Gemini offers different sizes, from Nano to Ultra, including Pro. Its unique feature is its multimodality: you can give it text, images, or videos! This opens up new use cases for you. In this presentation, we will explore the Gemini model. With our Java hats on, we will learn how to use its API, especially with the LangChain4j library. How to get the most out of Gemini? We will see how to extract unstructured data, how to classify text, how to extend the model's knowledge with the RAG (Retrieval Augmented Generation) approach, and how to use 'function calls' to invoke external services when generating text. Hold on tight! The Gemini capsule is about to take off
Guillaume Laforge
Guillaume Laforge is a Developer Advocate for Google Cloud, focusing on event oriented architecture, API orchestration, and generative AI. He's also a Java Champion, and the co-founder of the Apache Groovy programming language.
Forget about the spine-chilling tales of managing large–scale systems. It doesn’t have to be a daunting task. We’re here to advocate for battle’s proven simplicity with a pinch of fun. We’ll slice through the Gordian knot of complexity, juggle scalability patterns while uncovering their dark sides, and turn time modelling into a time-travel adventure. No sale of silver bullets here; instead, we arm you with practical solutions and actionable strategies based on real-world examples and the dark sides of rapid-scaling problems. Join us to transform your approach to evolving system architecture, leaving you with insights immediately applicable to your work.
Wojtek Ptak
Wojtek works as Head of Product Engineering and Engineering Executive at Revolut. Before, he worked as CTO for several companies, provided consulting, training, and assisted in building various data collecting, analytics, and applied ML/AI solutions, including Big Data implementations, data stream processing systems, and data insight projects. He worked with multiple Forbes 500 brands in the US, UK, and the Netherlands, including The Coca-Cola Company, the American Bankers Association, Macy’s, Bloomingdales, Heineken, Saks 5th Avenue, BP, Boots, Polo Ralph Lauren, Porsche, HSBC, and others.
Andrzej Grzesik
ags likes distributed systems in all shapes and form. Coding since the age of 8, loves simplicity and continuous delivery. While he has written in many languages, he favours the JVM. Since 'most software problems are people problems”, he stirs communities, organizes and speaks at conferences. And he is a Java Champion!
It is a well-known truth that few of us care about the performance of our code, even fewer of us have dealt with performance tests. Among those of us who have an unequal struggle with efficiency, a small handful of us are aware of how many lies, understatements, and false promises lie hidden in them. During the presentation, we will learn anti-patterns in performance testing and some battle-tested practical advice on how not to be fooled by test results. Should we be afraid of 'coordinated omission'? Why statistics is the highest form of lying, aka a quick course in reading test results. Why are 'latency' and 'throughput' not the same? Why are test datasets as important as test scenarios? What questions do microbenchmarks answer? Do performance tests have layers? Why isn't performance testing about numbers? These are just some of the topics I will talk about. If you are not interested in performance testing and avoid this topic like the plague, you will find out why in this presentation. However, if you feel like a 'higher priest of the machine' and you are familiar with performance topics, I will help you design tests with greater awareness and interpret their results.
Jarosław Pałka
For more than 20 years in the IT industry, as a database administrator, programmer, architect, manager and 'onsite disaster engineer'. I took part in small,medium and nonsensically large projects carried out according to the rules 'Waterfall', Agile and in the absence of any methodologies, with the same always effect. Which led me to the conclusion that it doesn't matter what you do as long as you do it in the simplest possible way and use the right tools to do the work for you. Recently I spend too much time exploring JVM's best kept secrets, reading about managed runtime, parsers and interpreters. From time to time you can hear my low-quality jokes about architecture at conferences in Poland. I am also author of a blog on http://geekyprimitives.com/ and full time benchmarking infrastructure engineer at Neo4j.
Michał Jonko
A Software Engineer with over 15 years in the field, mainly (but not only) focused on being a first line of defense in wars against JVM. Passionate about optimizations, finding performance, work automation, and even process identification and decision systems. Unfortunately, sometimes also a demanding grump, 'Agile lover', clean and easy to maintain code votary. Nowadays, I'm an engineer in the benchmarking infrastructure team at Neo4j where unpredictable things can happen.
I’ve worked with microservices for 9 years now, and I’ve migrated systems from monoliths / distributed monoliths to microservices. Companies call me to help them in this process, and I kind of worked my “standard” way of how to do this. In this talk, I’d like to show you step by step what I do when I help companies moving into microservices. This talk is not about how to design microservices per se (I’ve already talked about it a lot, and I give workshops on that) but what exactly I do in the process, and what you should not forget about. So it’s everything apart from architecture itself. I’ll talk about: How (much) to design the initial architecture, how to build an easy to use tailored service template, what you need in pipelines, how to test the system, what security changes are required, how to teach observability, how to introduce product teams and a culture to get the most of microservices (and what happens if you don’t). Of course every company is a bit different and this is not the only way to do it, but if I show you what it usually means for me perhaps you will find something you didn’t take into account in your process, if you are ever in such a situation. And if you are currently working with monolith (distributed or not), this may be really useful.
Jakub Nabrdalik
21 years designing, building commercial systems and leading teams
9 years hands-on experience in microservices, including large monolith-to-microservice migrations. Public and private clouds, K8s, Kafka, and all the usual suspects
12 years teaching: 300+ workshops and talks on Domain Driven Design, Test Driven Development, Behavior Driven Development, eXtreme Programming, Craftsmanship, Reactive Programming, distributed and modular architectures, Spring, Java and IT management
Have you ever worked on a legacy project with lots of source code but no tests? With no build pipelines? With no code analysis and no security checks? Projects like these are still more often the case than we like to think. You may even be a developer stuck in such a project, even though you have tried to raise these issues. Were you told that it is gold-plating or simply too much work to fix? I will share my experiences from such projects, both from the perspective of a tech lead and as a software reviewer (i.e., doing software auditing). But most important: I want to help you with arguments to convince others why these things matter.
Rustam Mehmandarov
Passionate computer scientist. Java Champion and Google Developers Expert for Cloud. Public speaker. Mentor. Community builder.
Threat modeling tends to daunt engineer and non-engineer folk alike. In this talk, I’ll show that the fear is unfounded. I’ll give a crash course on threat modeling, showing that it can be an easy and fun process that is also a nice group exercise. The course will use as an example a real project I led, a help app for refugees from Ukraine (https://www.unitedforukraine.org). As a result of this talk, you’ll have the necessary foundations to threat model any system you’d like. You’ll sleep better at night knowing that you got things covered.
Grzegorz Milka
Grzegorz Milka is a tech lead at Google working on account compromise protection. He’s a passionate software engineer who loves to learn and share all things related to making good and useful software. He’s particularly interested in functional programming, software architecture, and optimizing his Neovim development environment.
Do you want to understand how Java Virtual Threads really work and whether the myths you heard about are true or not? I’ll answer these questions and will teach you when to leverage virtual threads in your applications, how they could optimize performance and resource usage, and potential pitfalls to avoid. I will also share insights based on my hands-on experience implementing support for them in Eclipse GlassFish and Grizzly projects. You’ll learn how virtual threads work, where they excel, and when it’s still better to use good old platform threads. You will understand when and how to use virtual threads in your Java applications to increase their performance with little effort. I’ll debunk a few myths about virtual threads and explain why you shouldn’t be afraid to use them. In the end, we’ll compare virtual threads against reactive programming and try to answer the infamous question: will virtual threads kill reactive programming in Java?
Ondro Mihalyi
Ondro is a software developer and consultant specializing in combining standard and proven tools to solve new and challenging problems. He's been developing in Java for over 10 years. He’s worked for clients like Payara, LottoLand, Uniqa and others. He has co-founded OmniFish, which provides enterprise support for Eclipse GlassFish and expert Jakarta EE services. He’s passionate about helping his clients and the wider Java community with their projects based on Jakarta EE and similar technologies. As an experienced Java developer and instructor, he's helped companies build and educate their development teams and improve their development processes. He's a core member of several opensource projects and Jakarta EE specification projects. He’s a frequent conference speaker, leader of the Czech JUG, and a Java Champion.
The landscape of software development is evolving faster than ever before. Join us as we explore the current state of software and what the future holds in the era of AI. In this talk, we’ll start by reviewing lessons learned from producing the largest tech web series in Israel. Then, we’ll look forward and make a compelling case for the shifting focus towards technical design and architecture. Discover why technical specifications are gaining increasing relevance in 2023, where will AI agents fit in, and how AI is reshaping the software development life-cycle. Gain insights into the transformative potential of AI in streamlining coding tasks, allowing engineers to allocate more time and energy to the crucial aspects of technical design. Learn how to utilize the workflow of Natural Language Development, enabling you and your organization to adapt to the changing dynamics of software engineering.
Jonathan Harel
Jonathan is a digital comedian - touching on everything that involves humor, technology and creativity. He is the cofounder of Fine, a company that helps developers build software with AI agents; and the creator of 'Dark{mode}': a docu-comedy web series that covers developer experience topics, trends, and best practices.
At its best, software engineering is fun, challenging and lucrative; at its worst, it's an exercise in frustration and burnout-inducing schedule crunch. Whatever your situation, there will likely come a time when you'll start to question your career choices; invariably, through some combination of external circumstances, changing preferences and simple boredom, you'll want a change. Sometimes that means seeking a promotion; sometimes it means looking for new opportunities, or even a new line of work. And sometimes that means becoming your own boss. Is freelancing right for you? How does one start a consulting business? What can make or break such a business? A few years back, and following a history of startup and corporate employment, I struck out on my own as a freelance software engineer. I still don't have all the answers, but in this talk I'll do my utmost to help you ask the right questions.
Tomer Gabel
A programming junkie and computer history aficionado, Tomer's been an avid software professional for almost two decades, during which he's built any number of (predominantly back-end) systems, cofounded two major Israeli user groups (Java.IL and Underscore), organized an annual Scala conference (Scalapeño) and is a recurring speaker at software conferences. Plying his trade as a gun-for-hire at Substrate, he secretly still hopes to realize his childhood dream of becoming a lion tamer.
For newcomers with a Java background, Functional Programming can seem counter-intuitive at first. Using immutable values and data structures, pattern matching, handling errors without exceptions, or avoiding dependency injection frameworks, not to mention dealing with abstractions like product/union types or monads - all these can blow your mind. But fear not the unknown, my friend. In this session I’m going to demonstrate to you a couple of common battle-proven techniques from the Scala (and FP) world that can be easily applied to modern Java. Come and see how you can write even better code!
Jacek Kunicki
I'm a passionate software engineer living in the JVM land, where I mostly code and teach Scala and functional programming. I believe that software craftsmanship is technology-agnostic, thus I try not to limit my portfolio to a narrow set of technologies. When sharing my knowledge, I always keep in mind that a working example is worth a thousand words, so you are very likely to see me in action during a live coding session.
“I didn’t study computer science in order to have to talk to people” is one of many jokes popular among developers. The truth is, we can’t isolate ourselves behind computer screens forever. Communication, be it during online meetings, or in person in the office, will be an important part of our work. During this short talk I would like to give you five tips to make it a bit easier. I would like to move your focus away from the problems in this field and shift it to the solutions and tools. For these tools to be most efficient you will have to make them a habit. I hope that by the end of this talk you will feel more comfortable with business meetings. This talk will be for everyone - feel free to join!
Maciej Krzysica
Maciek has nearly 15 years of experience, first as a developer and now as a team leader at j-labs. Still connected to the Java word, he now explores the strange land of team management, people relations and business deciphering. He would like to focus on extracting the most useful and practical parts of the soft skills world and share them with other engineers
Once upon a time, there was a mainstream computer language that ran on almost every computer. Everyone was using it everywhere; it was (basically :-)) dominating the industry. Suddenly, it was over. Well, it is still there but certainly not dominating. We will unravel the rise and fall of BASIC. What was the language itself? What was it like to use GOTO everywhere? What were the strengths and weaknesses of the language and its implementations? We will uncover the role that Microsoft played, and even take a peek at some of Bill Gates' code in assembly. And then we will question why it lost popularity, where BASIC stands today, and whether the same fate could befall Java. Like BASIC itself, this talk is targeted at everyone, from beginners to professionals.
Jarek Ratajski
Jarek Ratajski is a software developer at Digital Asset. He started coding in 1990 on the commodore 64 and still loves it. For most of his professional career, Jarek was developing java applications for banks and insurance companies, however, in the last years, he is mostly coding Haskell, Scala, and Kotlin. At the conferences, he speaks often about functional programming, languages but mostly about things that make him angry at work.
AI is automating rote coding and testing tasks faster than we can reskill. As generators, optimizers, and autonomous agents subsume much of what we consider 'development,' where does this leave us architects and developers? Rather than undermine our skills and value, what if we could use principles from emergent systems to elevate software to new levels - augmenting human and machine abilities beyond what either can achieve independently? This talk will explore an architecture paradigm for crafting resilient, self-optimizing software that learns and adapts perpetually. We'll ground this with reviews of example implementations and working designs that realize many of these goals today. We'll dive into:
Hugh McKee
Hugh McKee is a skilled back-end developer and developer advocate with decades of experience building enterprise applications. Specializing in large-scale, cloud-based systems, Hugh is dedicated to learning new technologies and sharing his knowledge with others. As a developer advocate, he speaks at conferences worldwide and is the author of 'Designing Reactive Systems: The Role Of Actors In Distributed Architecture.' With a passion for teaching and evolving his software engineering skills, Hugh is a valuable contributor to the tech community.
This session unveils the multifaceted horizontal scaling strategies that power Wix's robust infrastructure. From Kafka consumer scaling and dynamic traffic routing for site segments to DynamoDB sharding and MySQL clusters custom routing with ProxySQL, we dissect the mechanisms that ensure scalability and performance at Wix. Attendees will learn about the art of sharding and routing key selection across different systems, and how to apply these strategies to their own infrastructure. We'll share insights into choosing the right scaling strategy for various scenarios, balancing between managed services and custom solutions. Key Takeaways:
Natan Silnitsky
Natan Silnitsky is a backend-infra architect and developer at Wix. He's part of group that provides solutions for Wix's platformization and development needs that accelerate development of microservices and serverless functions at Wix. Before that he was tech lead for a team building event-driven libraries and tools on Kafka. A co-maintainer of Greyhound, an open-source Kafka client, and a Scala enthusiast. Natan is a renowned speaker, blogger, and advocate for clean, functional code, efficient development, and exceptional software design.
React Server Components allow you to write web user interfaces that can be rendered and optionally cached on the server. Sounds familiar? It may be time to dust off the well-proven server-side rendering technologies on the Java side now that the JavaScript world seems to to be catching up. In this session, I will go through the benefits of server-side rendering and show how easy it is to do this with existing technologies in Java. Who knows, maybe I will get my hands dirty and demo some JavaScript as well for comparison.
Ivar Grimstad
Ivar Grimstad is the Jakarta EE Developer Advocate at Eclipse Foundation. He is a Java Champion and JUG Leader based in Sweden. Besides advocating the Jakarta EE technologies, Ivar is contributing to the Jakarta EE specifications as well as being the PMC Lead for Eclipse Enterprise for Java (EE4J). He is also one of the specification leads for Jakarta MVC and represents Eclipse Foundation on the JCP Executive Committee. Ivar is also involved in a wide range of other open-source projects and communities. He is a frequent speaker at International developer conferences.
Do you want to see live Kubernetes hacking? Come to see interactive demos where your newly registered accounts in a k8s application are hijacked. This talk guides you through various security risks of Kubernetes, focusing on Insecure Workload Configuration and Lack of Centralized Policy Enforcement from the OWASP Kubernetes Top 10 list. In live demos, you will find out how to exploit a range of misconfigurations in your k8s clusters, attacking pods and containers via privilege escalation, leading to an ultimate compromise of user accounts in an exemplary web application.
Patrycja Wegrzynowicz
Patrycja is a lead engineer at Form3, working on reliability and performance of UK payments. She is also the founder of Yon Labs, a startup focusing on automated tools for detection and refactoring of security vulnerabilities, performance anti-patterns, or cloud issues and providing consultancy in Java, C++, Go, and cloud technologies. She is a regular speaker at software conferences, including KubeCon, CodeOne, JavaOne, Devoxx, JFokus, and others. She was awarded an Oracle Groundbreaker Ambassador title in 2020 and 2021, Oracle ACE Associate and Pro in 2022 and 2023. She was also named as one of Top 10 Women in Tech in Poland in 2016. Her interests focus on automated software engineering, mainly static and dynamic analysis techniques to support software verification, optimization, and deployment.
This presentation is dedicated for all software engineers who at some point have decided to climb the corporate ladder and become an engineering leader. For many years, you probably only had technical interviews that included coding tasks, difficult technical questions, or architectural design. However, to get a job as an engineering manager, you must prepare for a mysterious stage of the recruitment process known as the ‘behavioural interview’. When I first took part in a behavioural interview for a leadership position in 2018, it was a black box for me. I did not know what to expect or how to prepare for it. Now, six years later, as Engineering Director, I have developed my own strategy to deal with these types of challenges. Moreover, as a hiring manager I am also on the other side, recruiting engineering managers for my department. I hope that learning from my experience will increase your chances of success in landing your dream job as a software engineering leader.
Katarzyna Osuch-Bukowska
I am Director of Engineering with 19 years of experience in IT specializing in building and running Agile development teams in various industries: transportation, finance and banking, sports betting, hospitality, supply chain. Before entering the leadership path, I worked for many years as a software developer. I am a strong advocate of setting the standards for engineering excellence and promoting best practices. Flexible in approach, I successfully combine corporate and start-up experience.
In an ever-evolving world of Java Development, every technology promises improvements. But, there are many aspects of speed going well beyond just application runtime performance. When was the last time the latest 'buzzword technology' actually made your Java Development faster? Have you ever tried to convince anyone that making 'something' faster is a good thing? Join us to explore and learn about finding the balance.
Rafal Foltynski
Following up on almost a decade spent in dozens of projects in Poland, moved to London to join one of the greatest and brightest bunch of chaps known to man :) Interested in everything 'fast and efficient'. Contributed to jackson-core. Brought one of the fastest open-source delivery vehicles for your logs (and other bytes). Ever heard of log4j2-elasticsearch? He's the author of this horror :)
AWS is tech stack-agnostic, period. But it doesn't mean engineers in Amazon didn't do anything to improve Developer eXperience (DX) for JVM programmers around the globe. Let's make the rounds and review all the major QoL improvements & JVM-specific hints you should be aware of (if you deploy your Java/Kotlin/Scala/Groovy/... apps into the cloud). Some of the topics covered: Powertools for AWS Lambda (Java), SnapStart for Lambda (& other cold-start optimizations), runtime hooks (with CRaC) for Lambda, serverless Java with GraalVM, what's in AWS Toolkit & AWS SDKs, Java on Graviton, Q Code Transformation (with OpenRewrite), CodeWhisperer & Java, what's Corretto, Java on serverless containers with App Runner, JVM apps observability on AWS, CDK with Java, integration for popular web frameworks (Spring, Micronaut, Quarkus).
Sebastian Gebski
Principal Solutions Architect at Amazon Web Services. ex-CTO, ex-VP/Eng. He has co-built online platforms since 2001: across all kinds of organizations - starting with startups and ending with international financial groups, on 3 continents. He was designing solutions for development factories up to 300 people and leading engineering organizations up to 70 people. Hyper-active blogger, co-host of CTO Morning Coffee and a serial reader. Fan of deliberate system design, System's Theory and practical applications of DSLs.
As software engineers, we are often confused or biased, or concerned. On one hand, we know there is no cloud; there are just computers somewhere else. On the other, we keep getting hyped about the serverless, whether it be a function, a computing platform, or a database. Then we add cloud-native to the mix, and we get completely mystified. So, let's learn. So, let's learn. In this enlightening journey, we will peel back the layers of serverless computing, unravelling the mysteries that often perplex us. We will unveil the inner workings of serverless platforms, shedding light on the orchestration mechanisms, auto-scaling features, and the nuances of the lifecycle. We won't deal solely with functions but look further into other runtimes and applications, each runtime at a time. Cause it's not only functions we see serverless. We will try to understand what it means for an in-memory cache to be serverless, a file storage, a message streaming platform, a no-sql database, or a data warehouse. This talk aims to bridge the gap between the conceptual allure of serverless computing and the practical realities that software engineers face. Bridge the gap between 'Hey! I don't need to set up any infrastructure' and 'Where did my data go?!'. During the session, we will stop at each platform example and pinpoint what it means to be serverless.
Jakub Marchwicki
Jakub is a software craftsperson with nearly two decades of commercial experience in programming - wearing multiple hats and getting hands dirty in multiple environments. Some languages, some frameworks, blah blah blah - don’t matter. Architect, programmer, manager, technical trainer, tech lead, wannabe entrepreneur, and former JUG leader. There is a fair chance he does non of those right. Jakub divides his time between gaining hands-on project experience and sharing it afterwards with the community at conferences or local Java Users Groups.
Join us for a thought-provoking 15-minute lightning talk where we'll challenge traditional coding norms and explore the future of software development. We'll delve into why Interface-Driven Design (IDD) is becoming crucial in an AI-dominated era, and how focusing on well-defined interfaces over internal code structure can revolutionize our approach to coding. Discover how this paradigm shift can make your code AI-ready for future enhancements and optimizations. Get ready to rethink everything you know about clean code practices! 🚀 #FutureOfCoding #IDD
Tomas Rehak
Tomáš Řehák, CTO @ AGRP.DEV As the CTO at AGRP.DEV, I spearhead the development of CODEXIS, our flagship legal tech platform. My professional journey has been deeply rooted in Java, emphasizing clean, simple code and efficient, replicable local environments. My motto, 'clean code = simple code,' underlines my focus on code clarity and maintainability. I advocate for development environments that anyone can set up and run locally, streamlining the coding process. My background includes impactful roles at Avast, 4Finance, and ING Insurance, where Java's versatility played a crucial role in delivering innovative solutions. At GeeCON 2024, I look forward to sharing practical insights on Java, testing, automation, and DevOps, drawn from my experiences in the tech industry.
The sales tech is well primed to make the best use of the current advances in Large Language models. While the pandemic accelerated the adoption of Software as a Service (SaaS) tools capable of recording, transcribing, and providing offline feedback on sales conversations, the LLM revolution that followed continues to be impactful for unlocking the insights hidden within those conversations at scale. In this talk we go over the learnings from our journey of leveraging text embeddings from state-of-the-art LLMs for sales use-cases involving retrieval and pattern mining. We demonstrate the performance of basic text embeddings and explore methods for their application across various sales scenarios. Additionally, we delve into the advantages of tailoring embeddings to specific use cases and datasets, contrasting results against those of standard embeddings.
Srikar Yekollu
I am an architect with Clari, India. The bulk of my career has focused on applying ML algorithms to various problems across Amazon, Google and Uber. Before Clari, I was the founder and CTO of Wingman focused on helping sales teams capture and understand sales conversations.
Nowadays, it's normal to see cloud-native solutions dealing with a huge amount of information. In this scenario, the NoSQL databases are getting a huge relevant position, but dealing with many NoSQL solutions from many different vendors is very difficult. In terms of dealing with relational databases, there’s no doubt that JPA specification is a well-established API in the Java world, but what if there's a well-defined way, pretty similar to JPA, to work with NoSQL with Java? Jakarta NoSQL specification was created to increase the developer experience between Java and NoSQL databases. This spec allows developers to handle easily with many NoSQL databases. In this talk, we will make a live coding session presenting a solution with Jakarta NoSQL and Jakarta Data. Even more, we're going to mix other Jakarta EE specifications like Jakarta WebSocket.
Maximillian Arruda
Maximillian has been involved with software development since 2003, he is a Software Engineer, Developer Advocate, SouJava JUG leader, Open-source enthusiast, Committer of the Eclipse JNoSQL Project - an implementation for Jakarta NoSQL and Jakarta Data specifications, Jakarta EE Contributor and Ambassador, who enjoys learning and helping developers by organizing, participating, and speaking at tech events and meetup community events. Besides liking tech stuff, Maximillian loves martial arts, especially Shotokan Karate - he is 1st DAN and teaches in the school that his association is part of. He follows the 'family first' philosophy! He highly enjoys playing video games with his sons: Pietro and Giulliano. Of course, he loves standing with his wife: Maira.
Gabriel Silva
Software engineer with more than 3 years of experience in the market with Java technology, creator of the Java Journey initiative, and member of several relevant communities in the Java ecosystem.
Most of us have grown up in the shadow of the 'scout rule' - the rule that says 'leave things better than you found them'. But is it good and applicable in every case? In my talk, I want to show you when this rule doesn't apply. I will show you how to work differently and how this can affect the atmosphere in your team. I will show you 'The Commandos Rule' that will give you a way to get things done.
Bartłomiej Kuczyński
Born, turned on the computer and started programming. BSc in Computer Physics from the Faculty of Physics at the University of Warsaw, but the last 20 years have been spent programming on the JVM. Big fan of new technologies and the use of good old mathematics in modern enterprise IT. Private worshipper of the God Machine, fan of w40k, gamer and father of Gork (or Mork) and World Eater.
A short motivating talk with the Atomic Habits story to encourage audience, by presenting high level 7 cost optimization best practices, to take daily small improvements to reduce cloud cost of their applications.
Bartosz Wieczorek
Last year in the Data and Analytics organization, Bartosz helped to fine-tune several key Big Data jobs which saved ~ $900k cloud costs per year. He also worked closely with Google architects and engineers to find best cost-effective cloud Big Data solutions which resulted in additional simplification of architecture for projects that were migrated from on premise data center to the cloud. Bartosz shared his knowledge and experience at numerous tech conferences for developers and data scientists (JDD, GeeCon, Data Science Summit). Additionally, he was a speaker at the AGH University, internal Google tech talk and Sabre internal and external meet-ups. Bartosz regularly blogs about programming best practices on his blog and his Github projects. He enjoys spending free time with his family in the nature, practicing water sports and cycling.
Java™ 21 is real now. And so are virtual threads. Everyone got excited about them, yet you prefer to keep your Java 8 job forever, and you already have a nice plan to “accidentally” derail the migration to 21 by using virtual threads in a very, very unfortunate way. What a pity… So you decided to come for this talk to look for some inspiration ;-) Okay, please join us to learn how NOT to use virtual threads, and see the potential performance pitfalls of using them the wrong way.
Piotr Przybyl
Notorious engineer at work and after hours, tracing meanders of the art of software engineering. Remote Software Gardener, mostly working in web-oriented Java gardens. Java Champion. Testcontainers Champion. Oracle ACE. Programming usually in Java (since 1.3), Scala and Go, but in other languages too. Fan of agility, seen mostly as choosing the right tools and approaches after asking the right questions. Developer, trainer and conference speaker. In his talks, Piotr covers not only hardcore Java but also software architecture, computer security, and soft-skills.
It’s easy to think that Large Language Models make the search engines of old obsolete—why would you want to present users with a list of possibly relevant results, if you can prepare a tailored-made response, answering the user directly, precisely and confidently? Also quite often incorrectly. How do LLMs of today stack up against the current known approaches, like keyword or semantic search? Can we have the best of both worlds? During this session, we’ll dig into the performance of LLMs, when answering knowledge-based questions. We will also explore some methods of leveraging the benefits of all approaches, to really get what the user asked for.
Zbyszko Papierski
Engineer (sometimes trying to manage people) with 17 years of experience, with more than half of this spent on trying to understand search. Currently running things in search domain in Brainly, while helping Tricity JUG stay afloat. Enjoys learning new languages (without any intention to learn any of them).
Java is for many years one of the most popular programming languages, but it used to have hard times in the Serverless community. Java is known for its high cold start times and high memory footprint, comparing to other programming languages like Node.js and Python. In this talk I'll look at the general best practices and techniques we can use to decrease memory consumption, cold start times for Java Serverless development on AWS including GraalVM (Native Image) and AWS own offering SnapStart based on Firecracker microVM snapshot and restore and CRaC (Coordinated Restore at Checkpoint) project. I'll also provide a lot of benchmarking on Lambda functions trying out various deployment package sizes, memory settings, Java compilation options and HTTP (a)synchronous clients and measure their impact on cold and warm start times.
Vadym Kazulkin
Vadym Kazulkin is Head of Development at ip.labs GmbH, a 100% subsidiary of the FUJIFLM Group, based in Bonn. ip.labs is the world's leading white label e-commerce software imaging company. Vadym has been involved with the Java ecosystem for over twenty years. His focus and interests currently include the design and implementation of highly scalable and available applications, Serverless and AWS Cloud. Vadym is the co-organizer of the Java User Group Bonn meetup and AWS Community Builder in the Serverless category and a frequent speaker at various Meetups and conferences.
OOMKilled? OutOfMemoryError? Can the live set get you killed? A common cause of unnatural death for JVMs is running out of memory, learn you some tools to solve OOMs for the common good. JVM based services need to know:
Nitsan Wakart
A blogger and a coder with a pedantic passion for performance. My work has spanned army intelligence systems, dot.com era startups, financial institutions and innovative product companies. A JVM Engineer by day, main contributor to lock free data structures library JCTools by night.
'XR Demystified: Separating Facts from Fiction in 2024' is a thought-provoking talk aimed at software developers who have witnessed the highs and lows of Extended Reality (XR) but remain skeptical of its progress and potential. With a critical eye, we revisit the XR timeline, dissecting pivotal moments and products. This analysis aims to dispel common misconceptions and highlight how these advancements have shaped the industry. The focus then shifts to the current state of XR, showcasing recent evolution in hardware (Meta Quest 3, Apple VisionPro, Magic Leap 2) and software (AR Foundation, MRTK3, Lightship ARDK) that demonstrate its growing impact across various industries. This talk also simplifies the technicalities of XR development, making it accessible for developers looking to transition into this field. We discuss practical applications, emerging tools, and opportunities for innovation. Concluding, we explore XR's future impact on digital interaction, urging developers to rediscover XR with a clear-eyed view of its potential and challenges.
Rafał Legiędź
Rafał works as a software engineer for Transition Technologies PSC. Being in the industry since 2007 he develops his passion for the software at every possible moment. He believes that being pragmatic in our field is very helpful and proves that by switching technologies he uses whenever there is a need or an opportunity to learn new concepts. Started with .NET back-end solutions, he quickly became a web guy and then he got his head around different kind of mobile technologies and VR/AR. Also a Microsoft MVP in Mixed Reality.
In this practical session, I will demonstrate how Quarkus, the cloud-native Java development framework, and its Langchain4j extension can be used for working with AI models like GPT and others, including image-generating models, opening the door to endless possibilities. I will show how to use Quarkus to:
Jan Martiška
Open source and Java craftsman, working for more than 12 years at Red Hat, nowadays mostly on Quarkus. I love creating frameworks, libraries, tools and APIs that developers will enjoy using. Eclipse MicroProfile committer. Lately I've started fiddling with our AI/Langchain4j story.
Join us in this session to learn how to use generative AI capabilities with Java and LangChain. We will see how LangChain4J integrates with Google Cloud AI API's. You'll learn how they can be used to solve real-world problems. No prior expertise, preparation, or installation is required. Just come with your laptop, a dash of programming experience, and your imagination.
Abdel Sghiouar
Abdel Sghiouar is a senior Cloud Developer Advocate @Google Cloud. A co-host of the Kubernetes Podcast by Google and a CNCF Ambassador. His focused areas are GKE/Kubernetes, Service Mesh, and Serverless. Abdel started his career in data centers and infrastructure in Morocco, where he is originally from, before moving to Google's largest EU data center in Belgium. Then in Sweden, he joined Google Cloud Professional Services and spent five years working with Google Cloud customers on architecting and designing large-scale distributed systems before turning to advocacy and community work
In this talk, I will introduce a range of observability tools that will help you in discerning the real-time states of your systems and efficiently tackling debugging challenges. Throughout the talk, I will provide practical do's and don'ts for applications of those tools. The goal is to equip you not only with theoretical knowledge but also with tangible knowledge to apply and use those instruments. By the end of this session, you'll have a solid foundation in understanding those tools. Join me as we take a stroll into the world of observability.
Michał Niczyporuk
Software engineer with over 15 years of experience in various organisations - both in terms of scale and economic sectors. A generalist who prefers the backend and infrastructure to the frontend, but does not avoid it. Currently software samurai in merXu - the European renewable energy marketplace.
Have you ever encountered a bug in the JDK itself? A bug that affects millions of developers around the globe? A bug that breaks a highly-desirable feature of the Java compiler: REPRODUCIBILITY? Listen to the fascinating, exciting and amusing story of hunting down a JDK bug in the Java compiler during winter of 2023.. I’ll share the journey of brilliant cooperation between Gradle and Oracle engineers, who relentlessly crawled through air ducts to catch a nasty bug 'in the area of impossible' (according to a Java compiler engineer). This is a heart-warming Xmas story that shows how leveraging different productivity tools and the knowledge, skills, collected facts and determination of just a handful of software engineers can result in a better software. Is there a happy end to this story? Were we able to say “Yippee-Ki-Yay …”? Popcorn and drinks are highly recommended.
Przemek Bielicki
Senior Software Engineer working for Gradle - creators of the most popular open source build tool for the JVM. Currently working in the Developer Productivity Engineering Team optimising productivity and happiness of Develocity engineers. Develops software professionally since 2003 - unprofessionally for over 30 years. Worked in mid-sized and large corporations (e.g. Lufthansa, Intel, Amadeus) but prefers smaller companies. Knows how to write software ('Hello, World', at least) in C, C++, C# or JavaScript but feels most comfortable in the JVM world (Java, Groovy, Kotlin). Spent 25% of his life in the south of France but mainly associated with Tricity (mostly Gdynia).
Have you ever worked on complex projects where it seemed like the developers didn't fully understand the project? Do you feel like assumptions made by developers often end up in production instead of domain experts' knowledge? Do you often see that nobody knows the whole truth about a system, but only part of it? In this talk, I'll show you how using EventStorming transformed our domain modeling process, allowing us to explore and get a good understanding of complex problems in hours instead of days. We'll dive into the specifics of this methodology and find out how it can help developers overcome common challenges and achieve better system design. Join me for a discussion that could change how you approach your development process. By the end of our session, you'll have a clear understanding of the benefits of using EventStorming, and you may even be inspired to make it your go-to tool for future projects! 🙂 Intended Audience: This talk is open to all developers, regardless of their experience level. After listening to this talk, you will have a better understanding of how EventStorming overcomes challenges developers may face while exploring complex domains.
Vadzim Prudnikau
Hands-on Architect and IT Trainer with 19 years of experience (6 years in the Norwegian market) who believes that technical skills, self-education, being a good team player, and knowledge sharing are the keys to success. Trained 250+ people in Architecture, EventStorming, and TDD, completed 10+ projects that work in production, led 5 development teams, mentored 20+ developers, interviewed over 100 developers for 20+ positions, and created a Java department. An Expert in Java and has also experience with Kotlin, Groovy, and other programming languages.
Still using -cp? Or even building a single fat JAR while running on modern JDK11+? Yes, we’ve been doing the same until we were forced to migrate to the Java Platform Module System. The switch wasn’t smooth nor easy, but we made it! Stop at our session to let our adventures inspire you and prime you for the inevitable that’s coming! Because –module-path lies beyond your current state of your project! To modularize or not to modularize? That’s the question!
Jaroslav Tulach
Jaroslav is the founder and initial architect of NetBeans, which is not just a well-known IDE, but also the first modular desktop application framework written in Java. Jaroslav devoted the last ten years to the design of interoperability between Java, JavaScript and other dynamic languages. Jaroslav is currently helping the dual syntax (visual & textual) Enso.org language to run faster and better reuse GraalVM polyglot capabilities.
Pavel Marek
Pavel currently works as a software engineer for Enso. His main focus is the compiler, interpreter, tooling, and performance monitoring. Before Enso, he used to maintain FastR, an alternative open-source interpreter of the R programming language based on GraalVM & Truffle, where he tried to make FastR even more compatible with the referential interpreter.
For many of us, writing code quickly becomes the least of our concerns. Let's talk about something that can be much harder: communication. But don't worry, this won't be yet another abstract talk delivered by a couch. Instead, it comes from a developer to developers and touches on subjects directly related to the developer's life: code reviews, git commits, managing your manager, talking to the product and business people, estimates, or knowledge sharing. How to get your PR reviewed without much waiting?
How to review the PR without making enemies?
How to respond to estimate requests without making (unrealistic) commitments?
How to keep necessary people in the loop without creating unnecessary noise?
Let's try to answer all of those questions and more!
Wojciech Pituła
Staff Engineer with Scala background. Generalist. An absolute expert in faking expertise. A claimant to the title of The Laziest Person in Existence. Fighting an uneven battle with code and backlogs for the past 10 years.
The Jakarta Data specification revolutionizes data access for Java developers by providing a powerful API that bridges the gap between diverse database types, from relational to NoSQL. It empowers developers to streamline data access and manipulation while adhering to a domain-centric architecture. Discover how Jakarta Data can simplify the complexities of persistence integrations and enhance your application's data management capabilities.
Otavio Santana
Otavio is an award-winning software engineer and architect passionate about empowering other engineers with open-source best practices to build highly scalable and efficient software. He is a renowned contributor to the Java and open-source ecosystems and has received numerous awards and accolades for his work. Otavio's interests include history, economy, travel, and fluency in multiple languages, all seasoned with a great sense of humor.
Microservices have been around for a while, and the industry discovered myriad ways of failing to implement them. For example, due to suboptimal team compositions, attachment to old monolithic-friendly habits, poor deployment practices, grotesque corporate security policies, etc. In this talk, I will help you learn from others’ mistakes. We’ll recall the most important lessons learned from successful and miserable microservices implementations out there and focus on points that were not covered in similar talks.
Grzegorz Piwowarek
Grzegorz Piwowarek is a Founding Engineer at Quesma, trainer, and blogger at 4comprehension.com. Loves distributed systems, internals, performance, and architecture. There are rumours that he exists only at compile-time...
Project Loom, or virtual threads, promised fast, lightweight user-space threads that are very cheap to block. While this is true, everything in life comes at a price. However, virtual threads allow users to not care about it. It is the job of the underlying libraries that all our applications use. Issues that can still occur with virtual threads, such as pinning, monopolization, or large thread-local objects, still present real-world problems many libraries still need to account for. In this session, we explain the virtual thread model execution and compare it to the event loop/reactive model utilized in Quarkus. We will also dive into individual problems that virtual threads might encounter and demonstrate how you can verify that your code doesn’t run into them. By the end of the talk, you’ll understand these (from the user point of view invisible) issues that often manifest only under high loads.
Martin Stefanko
Principal software engineer at Red Hat, Brno JUG leader, MicroProfile committer, working on Red Hat middleware technologies like Quarkus, SmallRye, Wildfly, JBoss middleware (RESTEasy, Weld, ...), programming and microservices enthusiast.
In the Java world, we have a number of concurrency primitives such as Atomics, Lock, CountDownLatch, Semaphore, etc. But what if we want to have the same features in microservices or in a distributed system? For example, the Lock service that allows only one client (or microservice instance) to exclusively access a shared resource(s); or like the AtomicReference service that guarantees the shared value changes will be visible atomically for all dependent microservices. In this talk, we will discuss, why it is not enough to expose existing concurrency primitives via some kind of REST or RPC API. What additional guarantees those concurrency primitives should have to operate in a distributed environment? What are the possible ways we can implement distributed concurrency primitives and how can they be implemented on top of the Raft protocol?
Andrii Rodionov
Andrii is an associate professor at the National Technical University of Ukraine, reading a cycle of lectures about distributed systems. He currently works in the Hazelcast core team. Interested in microservices, distributed algorithms and data structures
We will provide a brief history of API gateways in Spring Cloud, including Zuul and why we built Spring Cloud Gateway to replace it. Then we will give a short primer on how the gateway routes and filters requests. We will then introduce how Spring Cloud Gateway can work in servlet containers using virtual threads on Java 21. We will compare and contrast this new functionality to the original WebFlux-based Spring Cloud Gateway.
Spencer Gibb
Spencer Gibb is a Software Engineer at Broadcom, where he is the co-founder and lead of the Spring Cloud Core projects. His interests include distributed systems, JVM languages, web services frameworks, message-driven architectures, and making software development simpler. He has industry experience in early e-commerce platforms, government and non-profit organizations, and business intelligence startups. He has extensive Java experience and experience in other languages, such as scala and python. His blog is located at https://gibb.tech.
Different teams have different practices when it comes to code review. As a senior software engineer, working in the industry for over a decade, I have seen and experienced various code review processes. In this talk, I will share the best practices I have learned for conducting an effective code review. These practices will improve your code review process and contribute to your team's productivity, delivery, and quality of features.
Keren Kenzi
Keren is a senior software developer with over a decade of experience in the industry. She holds an M.Sc. in Computer Science and is passionate about React and learning new technologies. Keren volunteers as a program manager at Baot, a community that supports women in R&D in their professional growth. She instructs and inspires people to write blogs in her tech blogging workshops. Keren has experience as a dev community leader and a co-organizer of meetups and events. And in her not-so-spare time, she studies psychology. Her hobbies include drawing, photography, and singing.
Having had the opportunity to work with various organizations and teams on software projects in recent years, I've realized that many teams blindly follow established best practices or technologies without realizing that some of them can actually hinder productivity, causing delays in meeting project deadlines and diminishing developer satisfaction. Often, developers or managers, stressed by impending deadlines, worsen their situation by adopting even more inefficient practices or intentionally accruing technical debt, further complicating their circumstances. In this talk, I'll explain why some popular practices might not be as effective as commonly believed, highlighting the actual problems they solve and the specific situations in which they could be beneficial. These examples draw from my 20+ years of experience and the recognition of my company, Codeborne, as one of the more quick and efficient software development partners. Let's reconsider how teams can work more enjoyably and efficiently, minimizing wasted time. The goal is to illustrate that there are alternative, more effective ways to develop software and to give you ideas to make better choices when initiating a new project or improving your current practices.
Anton Keks
Anton Keks is a software craftsman, co-founder of Codeborne, the only extreme programming shop in the region, a frequent speaker at conferences, and a lecturer in Tallinn Technical University. He is also a strong believer in open-source software and agile development methodologies, author of a popular network tool — Angry IP Scanner, and a regular contributor to other open-source projects. Before founding Codeborne, Anton has led a team of developers of the award-winning internet-bank of Swedbank for 5 years, gradually introducing agile methods. During this time he has also co-founded an Agile Estonia non-profit organization that organizes regular agile conferences in Estonia. During his spare time he plays guitar, rides a motorbike, and travels to remote corners of the world.
You know what's fun? Automating the ever livin' heck out of infrastructure! Slaying that YAML! Nobody wants to painstakingly build something and then spend weeks trying to write the YAML to describe it to the infrastructure. Thankfully, Kubernetes provides composability through abstractions like operators, controllers, and custom resource definitions. These days, it's trivial to extend Kubernetes with a Spring Boot application, turn it into a GraalVM native image that runs in a Docker container, and then deploy that. Join us, and we'll learn how to extend and automate Kubernetes with Spring Boot and Spring Native-powered custom operators and eliminate that ever-so-pesky YAML.
Ties van de Ven
Ties is a software engineer with a passion for concepts, software engineering fundamentals and helping others. He combines these passions by doing public speaking, volunteer work for organisations like Devoxx4kids and codingcoach and working as a Software Quality Expert at Alliander.
Tiffany Jernigan
Tiffany is a technology advocate, content creator, and community enabler in the Cloud Native space. She most recently was a senior developer advocate at VMware. She also formerly worked as a software developer and developer advocate at Amazon, Docker, and Intel. Before that, she graduated from Georgia Tech with a degree in electrical engineering. In her free time, she likes to travel and dabble in photography. You can find her on Twitter @tiffanyfayj.
Have you ever heard phrases like 'it must work 24/7,' 'I want 100% availability,' only to end up with 'in reality, a VM will be more than sufficient'? Or conversely, 'No SLA, my platform is not critical, it just needs to run precisely at 6:54 AM on the first day of the month'? If these situations sound familiar, don't miss out! Whether these Non-Functional Requirements are explicit or not, they are the keystone of any architecture aligned with client needs. Drawing on two fictional examples (any resemblance to reality is purely coincidental, or maybe not), we will explore how to navigate the pitfalls of overengineering and establish a pragmatic approach to identifying the right architecture for the right business need. By the end of this presentation, we'll know how to identify those elusive NFRs that will help us design better architectures while avoiding unnecessary complexity!
Philippe Duval
I am a Senior Cloud Architect at Worldline. I work on payment products, wether on private and public Cloud with more than 5 years experience in Kubernetes. I also teach Java and cloud Transformation at several french universities.
Alexandre Touret
I am a senior software architect with 22 years' experience passionate about technology, cloud and development. Throughout my career,I have designed, built and managed systems from small to large in various business contexts such as insurance, financial services or mobility industries. I then enjoy sharing my knowledge by speaking at conferences, organizing workshops and writing articles.
In this talk, Micronaut committer Álvaro Sánchez-Mariscal, will demonstrate how you can quickly build optimised Microservices with Micronaut & GraalVM Native Image. Attendees will learn how the combination of GraalVM Native Image and Micronaut can lead to efficient, highly performant, and optimised applications that can be perfectly deployed to environments like Kubernetes or serverless platforms. There will be a live coding demo of an application using Micronaut Data and GraalVM.
Álvaro Sánchez-Mariscal Arnaiz
Álvaro is a passionate developer and agile enthusiast with over 22 years of experience. He is now a Principal Member of Technical Staff at Oracle Labs, where he is a Micronaut committer, helping to maintain and evolve the open-source framework. Before that, he was a Staff Engineer at VMWare, where he led the creation of new products to build, package, verify and publish software solutions with confidence in the VMware Marketplace. Previously, he spent some years working in different industries like gambling games (Odobo) and fintech (4Finance). Prior to that, he created his own company, Salenda, in 2005, a software factory and Atlassian Solution Partner headquartered in Madrid, Spain. Adaptavist acquired Salenda in 2019. Previously, he worked at companies like IBM BCS, Sun Microsystems or BEA Systems, where he was recognised as BEA Technical Director, an MVP awards program. He was also one of the initial founders and member of the Board of Directors of javaHispano in 2002, the world's largest Spanish-speaking Java User Group. Álvaro has spoken in 20 different countries at conferences like Devoxx BE/FR/MA, several Voxxed Days, GeeCON, JavaLand, JavaZone, jPrime, Codemotion and Commit Conf, among others. In his spare time, as well as coding and experimenting with new technologies, he likes to spend time with his wife and children, support CD Leganés football team, and play paddle tennis.
What if you had a magic wand that could help you do your everyday chores? With the rise of magical AI systems like ChatGPT is this becoming a reality? Other than creating some basic code, writing tv scripts and generally scaring society a little, what else could this magic be used for? Developers all have similar repetitive responsibilities that realistically after a few times seem like plain sense. That could be something like creating the bare bones of an application, checking PR’s for best coding practices, finding bugs in your code, or checking your dependencies to make sure they are not vulnerable. The potential of AI systems in everyday developer life is huge! In this session, we will talk about the current state of AI, how it is changing our lives and what tools that leverage this magic are available today that can make us more productive. Mastering the dark arts of automation and knowing what AI is capable of can allow us as developers to spend more time doing other things while making our applications more secure, performant, durable, and maintainable. While this magic is not going to replace us any time soon, it sure can make our lives much easier!
Jamie Coleman
Jamie is a Developer Advocate for Sonatype formally IBM, based in the UK. He talks about the importance of security in software, improving developer productivity and raising awareness about energy consumption of technology. Passionate about discovering ways to help reduce developers carbon footprint, he is also a subject matter expert in containerised solutions and build technologies. He fell in love with Java at University and has gone on to talk at many conferences about using Java with microservices and related technologies. He has worked on a wide variety of projects such as modernising IBM CICS mainframe testing infrastructure, creating, and automating the creation of Docker images for IBM’s products and contributing to a DevOps pipeline offering.
Architecture trends have come a long way, from monolithic structures to microservices, and in recent years, the rise of event-driven architecture has been shaking things up in the software world. But let's face it, while that revolution was taking place, the analytical data architectures of many systems have often been left out in the cold, still struggling with some of the same old issues already solved in other places. Well, it's time to change that! Join us in this talk as we explore how we can harness the untapped potential of event-driven architecture to power both realtime and offline analytics. Dive into the nitty-gritty details of what is broken in many data architectures today, and how leveraging domain driven data contracts and metadata-driven processing can help transform data chaos into a symphony of order and insights. We will translate all these concepts into real-world applications and architectural patterns, review the tools and practices we use today at Wix to build analytics based on billions of events daily, and lastly we will see how you can do it as well, leaving you with practical recipes that will allow you to tame the wildest of data beasts.
Josef Goldstein
The data and culture guy. Currently leading the big data platform R&D at Wix. Josef has over a decade of experience building data intensive SaaS applications and growing the awesome teams that make them. He believes that the secret sauce for creating sustainable complex systems is good design practices, effective communication between people, and automating everything. In his day to day he works tirelessly on building the culture necessary to support these values and propagate them to others, one pep-talk at a time.
Our topic is focused on an idea we developed during a hackathon, an idea that provides a graphical visualization for neural networks, deep learning, and machine learning models represented in NNEF, data flow, and relationships between nodes of the AI model. The product is designed to help AI engineers quickly comprehend and debug AI models with which they might not be familiar but the topic will focus mostly on why we need such a product when developing GenAI.
Sergei Kurnevich
Senior Software Engineer at Broadcom. I’m simply curious about how things work.
Sergiu Ilie
Developer with 8+ years of experience with OOP languages, jumping in a new programming adventure every time I see the opportunity. Currently developing modern tools to help developing the mainframe worlds that still runs our financial world. And yes, Java works on z/OS
Many developers who use Spring Framework rely on annotations as a convenient shortcuts while composing certain business logic. Do you need to perform a composite update in SQL database? Bam! Use @Transactional. Do you need to create a new TTL index in MongoDB? Wham! Use @Indexed with proper options. Metrics? No problem, @Timed and other annotations are ready to be used! It's all fun and games until something breaks and we need to debug our code. Let's see what kind of sorcery does Spring use to carve these magical runes.
Paweł Kowalski
Full-stack developer, comfortable in managing both back-end ecosystems based on JVM technologies as well as front-end ones based on Angular, React or vanilla JS. Clean code practitioner with passion to demystify uncommon or complex solutions and assembling gathered experience into lectures. Privately, a husband and a father of two wonderful children, metal music lover and kettlebell hardstyle addict. I also enjoy solving crosswords, guitar playing and co-op games of any kind. Last but not least - connoisseur of memes and lame, ironic jokes.
Companies are trying to reduce their carbon footprint. For many, IT is a relevant factor on that journey, and they are looking at the new field of GreenOps for ideas and answers. Based on his work at Thoughtworks, a global IT consultancy that is also a founding member of the Green Software Foundation, Erik will provide the developer's perspective on GreenOps. Starting with some key concepts and principles, the talk moves to specific techniques, methods, and tools to measure and reduce an organisation's carbon footprint.
Erik Dörnenburg
Erik is a software engineer and passionate technologist. On his extensive journey in the tech industry he has continuously encountered and embraced new technologies, finding ways to realise their potential while bringing along proven engineering practices. As CTO Europe at Thoughtworks he helps clients make the most out of modern technologies, platforms, and practices. Erik is a regular speaker, contributed to a few books, and maintains several open source projects. He holds a degree in Informatics from the University of Dortmund and studied Computer Science and Linguistics at University College Dublin.
Struggling to debug latency, pinpoint bugs, or understand app behavior? This talk equips you with the ultimate Observability toolkit for your JVM-based application! Discover proven techniques to transform your application from opaque to transparent:
Marcin Grzejszczak
Co-author of SmartTesting, author of Hands-On Guide to Spring Cloud Contract: Creating Consumer-Driven Contracts to Leverage Contract Tests and Improve Your Code and co-author of Applied Continuous Delivery Live Lessons. Co-founder of the Warsaw Groovy User Group, Warsaw Cloud Native Meetup and the DiverseIT initiative. Author of 'Mockito Instant' and 'Mockito Cookbook' books. Working on Spring Observability, Spring Cloud Sleuth, Spring Cloud Contract projects at Broadcom.
Streams were introduced in Java 8 in 2014. In 10 years we have only seen some minor changes to it. Until now, because Java 22 introduced Stream Gatherers, which allows for more powerful intermediate operations. But it does not stop there, it also comes with a complete API that allows us developers to create our own intermediate stream operations. And we all now, that the meat of stream operations is in the intermediate operations. Suddenly, your imagination is the only limitation. In this session I will introduce you to the new gatherers, and will deep dive into creating a custom gatherer ourselves, thus learning all the details of this new API.
Ron Veen
Ron is a highly experienced software engineer who has seen it all, from Midrange Systems to Micro Services. Through all of this, he is guided by his passion for software engineering and software architecture. For more than 15 years he has been working on the JVM and the Java ecosystem and has seen all the frameworks and libraries from Apache to ZK. He is an Oracle Certified Java Programmer (OCP) and Sun Certified Business Component Developer (SCBCD/OCPBCD). Ron is an avid fan of alternative JVM languages like Groovy, Scala, Clojure, and his personal favorite Kotlin. At Team Rockstars IT he is a Special Agent and senior developer who frequently speaks at international conferences. He just published on Cloud-native migration with Jakarta EE.
Celebrating over twenty years of the four rules of simple design 2024 marks the twentieth anniversary since the second edition of the seminal book Extreme Programming Explained by Kent Beck was published. This means that the four rules of simple design have been around for a long time. It is possible that they have been around your entire career. Do you know about them? They can be formulated as * Runs all the tests * Reveals intention * No duplicated logic * Small Well, that can’t be too hard to follow. Or is it? Let’s explore these seemingly simple rules and see how they affect your code if properly applied. This will be a live coding session with a lot of refactoring applying the four rules of simple design.
Thomas Sundberg
With more than 25 years in software development, Thomas is an independent consultant based in Stockholm, Sweden. He has a Masters degree in Computer Science from the Royal Institute of Technology (KTH), Sweden’s leading technical university. After graduation, Thomas also taught at KTH. As a consultant, trainer, and developer Thomas has created value for many teams around Europe. For the last fifteen years, Thomas has been an invited conference speaker at numerous conferences around Europe speaking about topics including software craftsmanship, clean code, test automation, and continuous deployment.
Hexagonal architecture. You know it, you like it, you want to use it in your projects, but you’re not sure how to convince the team? Or perhaps your team leader tells you to use it, but you’re not sure why? You saw all the presentations and read all the blogs, but your understanding is still hazy around the edges? To solve all these dilemmas we first need to answer the question ‘why’ we use hexagonal architecture. What it derives from and what problems it helps us solve. Join me on the journey through the Valley of Architecture and we’re sure to find the answers to all of our questions.
Krzysztof Przygudzki
Software Developer @ hyperexponential ex- hazelcast, TouK, team leader @ Allegro Smart
Think finding truffles is tough? Try understanding Truffle in GraalVM! In this lighthearted talk, I'm going to simplify the complex and make sense of what Truffle really does in the GraalVM ecosystem. Continuing the culinary analogy, imagine Truffle as the secret sauce that makes everything in GraalVM tastier – supporting multiple languages and boosting performance, just like how real truffles elevate a dish. We'll slice through the technical jargon and explain what 'language implementation framework' really means. You'll learn how Truffle works, why it's important, and we'll even try to write some trivial Truffle Language – in a fashion of 'words are cheap, show me the code'.
Artur Skowronski
Head of Java/Kotlin Engineering at VirtusLab. W tym roku stuknęła mu dycha w branży. Tę dekadę spędził przy bardzo różnych projektach - takich, które startowały od zera, jak i grubo starszych od niego. Miał przyjemność pracować po różnych stronach barykady - jako Software Engineer, Tech Lead, Architekt czy nawet Technical Product Manager, co pozwala podchodzić do problemów z szeroką perspektywą. W dalszym ciągu uwielbia brudzić sobie ręce - od ponad dwóch lat, co tydzień publikuje autorskie przeglądy wydarzeń w świecie JVM.
Thanks to the plateau of per-chip performance increases and the resulting need to work better with multi-core CPUs, the relative difficulty of mapping user requirements to general-purpose programming languages, the emergence of language-agnostic 'virtual machines' that abstract away the machine, the relative ceiling of functionality we're finding on the current crop of object-oriented languages, and the promise and power of productivity of dynamically-typed or more loosely-typed languages, we're about to experience a renaissance of innovation in programming languages. Come hear why this is, and what practicing programmers need to do in order to ride the forefront--instead of the trailing edge--of this new wave in computer science.
Ted Neward
Ted Neward currently labors on his own behalf, leveraging his speaking, writing, and coding experience to bring a technology-focused and -sharpened mindset to the mortgage industry. During his more code-focused years, he specialized in high-scale enterprise systems, working with clients ranging in size from Fortune 500 corporations to small 10-person shops. He is an authority in Java and .NET technologies, particularly in the areas of Java/.NET integration (both in-process and via integration tools like Web services), programming languages of all forms, back-end enterprise software systems, and virtual machine/execution engine plumbing. He is the author or co-author of several books, including Professional F# 2.0, Effective Enterprise Java, C# In a Nutshell, SSCLI Essentials, Server-Based Java Programming, and a contributor to several technology journals. All told, he has written well over a hundred articles in both print and online form. Ted has also been an "insider" of one form or another with a variety of the technology providers of the world: an IBM Champion of Cloud, a Microsoft F# MVP (having also been an Architect and C# MVP in prior years), an F# Insider, C# Insider, VB Insider, INETA speaker, DevelopMentor instructor, PluralSight course author, and a member of various Java JSRs. He lives in the Pacific Northwest with his wife, two sons, three cats, twelve laptops, seven tablets, nine phones and a rather large utility bill. Visit his blog at http://blogs.tedneward.com.
Join a fascinating journey through the secrets of effective teamwork! During the presentation, we'll explore how to utilize Belbin Team Roles and understand the stages (or maybe a circle) of re-building a team to be effective again. This will help you strengthen your team and play together towards a common goal. Ready for a (small) revolution in your approach to teamwork?
Włodek Krakowski
Engineering Manager at Allegro, fascinated by developing people through a coaching management style and supporting clean code through refactoring. He has appeared many times at various conferences: 33rd Degree (now Devoxx), JDD, Confitura, 4x JBCNConf - Barcelona, Java2Days - Sofia) conducting lectures and workshops on code refactoring combined with the organization of team work. This way he can ensure that outcoming quality of the code is part of the software development process and is the result of effective teamwork.