To Be Announced
To Be Announced
To Be Announced
To Be Announced
The best time to talk with speakers and attendees
To Be Announced
To Be Announced
To Be Announced
To Be Announced
The best time to talk with speakers and attendees
To Be Announced
To Be Announced
To Be Announced
To Be Announced
To Be Announced
To Be Announced
To Be Announced
To Be Announced
The best time to take coffee or juice
To Be Announced
To Be Announced
To Be Announced
To Be Announced
The best time to talk with speakers and attendees
To Be Announced
To Be Announced
To Be Announced
To Be Announced
The best time to talk with speakers and attendees
To Be Announced
To Be Announced
To Be Announced
To Be Announced
The best time to take coffee or juice
To Be Announced
To Be Announced
To Be Announced
To Be Announced
The best time to take coffee or juice
To Be Announced
To Be Announced
To Be Announced
To Be Announced
Party time!
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.
Party time!
L1_1
L1_2
L1_3
L2_1
L2_2
L2_3
L3_1
L3_2
L3_3
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.
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.
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 engineers 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 be use as an example a real project I led, a help app for refugees from Ukraine (https://www.unitedforukraine.org). I’ll also share some lessons from my work at Google’s Account Compromise Protection. 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