---
title: "Conference sessions"
description: "Current catalog of talks, workshops, panels, and mentoring sessions with descriptions, durations, languages, and materials where available."
canonical_url: "https://fmartin.ch/sessions"
last_updated: "2026-09-09"
---

# Conference sessions

This is the current session catalog. Counts are as of 2026-10-09 UTC; events still in progress are counted as scheduled. Historical editions and dated appearances are available in the [event API](https://fmartin.ch/api/v1/events) and each session's HTML details page.

## I Didn't Know You Could Do That With Java Streams!?

Talk · English · 30-90 min · delivered 7 times · 0 scheduled · [Details](https://fmartin.ch/session/i-didnt-know-you-could-do-that-with-java-streams)

Over the years of working with many Java codebases, I have seen the same mistakes made over and over again when using Streams. Most Java developers are familiar with the basics, but many are unaware of advanced features that can make their code easier to read and perform better at the same time. In this talk, I will share the common problems I faced and how I used advanced Stream techniques and Collectors to improve those codebases.

You will learn how to avoid common mistakes that slow applications down and how you can unlock the full potential that Streams have to offer. I will demonstrate powerful yet straightforward ways to write cleaner, more efficient code, based on examples from my real-world experience and the new Stream Gatherers introduced in Java 24. You will see how to transform the way you write Java code, improving both performance and readability.

This talk is aimed at Java developers who have previously used Streams but want to expand their knowledge with more advanced concepts. Join me as I share what I have learned from improving multiple codebases and see how making the right changes can make your Java code better and easier to maintain.

## Why Software Testing Is a Waste of Time

Talk · English · 30-45 min · delivered 4 times · 0 scheduled · [Details](https://fmartin.ch/session/why-software-testing-is-a-waste-of-time)

Testing software takes up a lot of time in the software development process, often as much time as, if not more than, the time required for development itself. Just as development does, testing also requires ongoing maintenance. This (rightfully so) makes a lot of people in different roles, be it managers, developers, or even testers, question whether or not that time and effort is really justified. With more and more companies deploying every 10 minutes or even less, people start to wonder: why invest time in testing when you can rollback issues in a matter of seconds, in some cases even automatically?

Learn more about common pitfalls, time wasters, and what you can do to make your testing strategy more efficient in this talk!

## The Art of Vulnerability Disclosure

Talk · English · 45-60 min · delivered 2 times · 0 scheduled · [Details](https://fmartin.ch/session/the-art-of-vulnerability-disclosure)

Properly disclosing a vulnerability you find in a website, open-source project, or app is not easy, especially the first time. There are many things to pay attention to, and that can go wrong. But if done properly, it can be very rewarding, as most companies are very grateful. Whether you want to learn how to disclose your first vulnerability in the easiest way possible or you want to hear about best practices and suggestions on what to do when things do not go as planned, this talk is for you.

## Testing on Thin Ice: Chipping Away at Test Unpredictability

Talk · English · 45-60 min · delivered 4 times · 1 scheduled · [Details](https://fmartin.ch/session/testing-on-thin-ice-chipping-away-at-test-unpredictability)

Ever tried to catch melting snowflakes? That's the challenge of dealing with flaky tests - those annoying, unpredictable tests that fail randomly and pass when rerun. In this talk, we'll slide down the slippery slope of why flaky tests are more than just a nuisance. They're time-sinks, morale crushers, and silent code quality killers.

We'll skate across real-life scenarios to understand how flaky tests can freeze your development in its tracks, and why sweeping them under the rug is like ignoring a crack in the ice. From delayed releases to lurking bugs, the stakes are high, and the costs are real.

But don't pack your parkas just yet! We're here to share expert strategies and insights on how to identify, analyze, and ultimately melt away these flaky tests. Through our combined experience, we'll provide actionable techniques and tools to ensure snow is the only flakiness you experience, ensuring a smoother and more reliable journey in software development.

## One Small Test for Man, One Giant Leap for Software Quality: Adopting Apollo's Testing Principles

Talk · English · 45-60 min · delivered 3 times · 0 scheduled · [Details](https://fmartin.ch/session/one-small-test-for-man-one-giant-leap-for-software-quality-adopting-apollos-testing-principles)

The Apollo missions did more than take humanity to the moon - they highlighted the essential role of testing in achieving ambitious goals. NASA's report, 'What Made Apollo a Success,' offers a detailed look at the testing strategies crucial to propelling the missions to success. This talk focuses on actionable insights from that report that we can still use today. Find out how you can adopt the approach that landed astronauts on the moon to elevate software quality, making every test a launchpad for unparalleled reliability and performance.

## My code is faster than yours... let me prove it to you!

Talk · English · 45-60 min · delivered 6 times · 0 scheduled · [Details](https://fmartin.ch/session/my-code-is-faster-than-yours-let-me-prove-it-to-you) · [Code](https://github.com/martinfrancois/microbenchmark-java)

You stare at the notification on your screen, your heart sinking with each passing second. It is a pull request from your colleague, Lisa, asking you to review her code. You take a deep breath and click on the link, hoping for a smooth review process. Little did you know, this simple task would soon turn into a daunting challenge.

As you scan through the code, one particular line catches your attention - a regular expression. Immediately, you knew this was a problem waiting to happen. You leave a comment on the pull request, expressing your concerns about the regex. You point out that it is not only slow but also difficult to read and maintain. You suggest Lisa replace it with a more explicit block of code that achieves the same result, albeit at the cost of increased length.

Within minutes, Lisa responded to your comment, refusing to make any changes. She argues her regex is not only shorter but also just as easy to understand. She challenges you, stating she wouldn't change it unless you could prove your proposed solution was faster.

Your panic levels begin to rise. You have never done any performance comparisons before. You desperately search through your bookmarks, hoping to find something that could help you in this predicament. Then it strikes you - you remember that François Martin will give a conference talk showing how to do microbenchmarking in Java using JMH, scheduled to take place in just a few days. It was like a lifeline was thrown to you. With renewed hope, you quickly register for the conference, eager to gain the knowledge you need to save this code review. You sigh with relief, marking the talk's date in your calendar with a red pen and counting down the days until the conference...

## How your browser is snitching on you and how you can take control

Talk · English · 30-45 min · delivered 1 time · 0 scheduled · [Details](https://fmartin.ch/session/how-your-browser-is-snitching-on-you-and-how-you-can-take-control)

With data now being "the new digital currency", knowing what data we share is more important than it was ever before.

The browsers we use every day reveal much more information than we would think when visiting websites. This makes it easy for websites to uniquely identify us as visitors, even without a login. Trying to protect ourselves against this could even make it easier for websites to identify us, which is a big dilemma.

This talk is about what the different browsers reveal to the websites we visit and what we can (or cannot) do about it.

## How writing just one import the wrong way slows down your website

Lightning talk · English · 15 min · delivered 7 times · 0 scheduled · [Details](https://fmartin.ch/session/how-writing-just-one-import-the-wrong-way-slows-down-your-website)

Tree shaking is a feature that is used by modern bundlers to keep bundle size down (and load times fast), but if just one import is written in a non-optimal way, this can result in the whole dependency being included in the bundle. In some cases, this even happens with automatically suggested imports by the IDE. Learn about the correct way of importing from dependencies, tricks you can use to easily determine the impact on bundle size, and why having a lot of dependencies may not be as bad as you think!

## From Bugs to Brilliance: Testing Toolbox in Action

Talk · English · 30-90 min · delivered 7 times · 1 scheduled · [Details](https://fmartin.ch/session/from-bugs-to-brilliance-testing-toolbox-in-action) · [Code](https://github.com/martinfrancois/testing-toolbox)

What if I told you that there is an entire world of lesser-known, underutilized testing tools, libraries, and features waiting to elevate your testing game? You will see live demonstrations of a plethora of these hidden gems, carefully curated to empower you in unit, integration, and end-to-end testing. This includes both tools for Java backends and JavaScript/TypeScript frontends as well as some technology-independent tools.

As you absorb the knowledge and sharpen your skills, you will accumulate an impressive set of tools in your testing toolbox. However, a word of caution: your toolbox may grow heavy with all these new additions. You will leave this talk armed with newfound knowledge, but make sure you can still lift your toolbox by the end of it!

## 82 Bugs I Collected in a Year You Won't Believe Made It to Production

Talk · English · 45-60 min · delivered 13 times · 1 scheduled · [Details](https://fmartin.ch/session/82-bugs-i-collected-in-a-year-you-wont-believe-made-it-to-production)

This past year, I made it my mission to collect every bug I encountered while using everyday apps and websites. From minor glitches to major problems, I ended up with a list of 82 bugs that somehow made it to production. These real-world examples are more than just interesting - they're also embarrassing mistakes that teach important lessons for making software more reliable and improving how we test it.

In this talk, I will show the different types of bugs I found and what they reveal about common mistakes in software development. I will also highlight areas that are often overlooked but are crucial to the quality of your product.

By looking at these bugs together, I'll show you how to avoid them, so these issues don't reach your users. Whether you want to make your code more reliable or reduce the time from ticket creation to fix, I'll share actionable advice you can apply the next day. Join me to learn from the embarrassing mistakes that even popular apps couldn't avoid - and take-home strategies to prevent them in your software!

## My Fixes Became the Lesson: Teaching AI Better Coding Habits

Talk · English · 50 min · not delivered yet · 1 scheduled · [Details](https://fmartin.ch/session/my-fixes-became-the-lesson-teaching-ai-better-coding-habits)

The worst code is not the code that is clearly wrong. It is the code that is almost right.

Coding agents are painfully good at almost right.

They can write code that compiles, looks modern, and seems fine at first glance. Then you look closer: one line uses an anti-pattern. You ask the agent to clean it up, and it replaces that anti-pattern with another one. So you try again, more carefully, with the kind of prompt that should leave no room for misunderstanding.

It avoids the pattern you called out and finds a third way to be almost right.

I know. I did not believe it either.

At that point, I was so frustrated that all I could think was, "I need to make sure I never have to go through this again."

I needed the agent to get better. More skilled, really. Wait. Skill. That is what I needed.

So I made the failure repeatable, wrote down the lesson behind the fix, and tested whether the agent stopped falling for it.

I will walk through that path with real generated code: the bad output, the better version, the skill, and the tests that proved it worked. The examples use Java streams and optionals, but the method works for any language, library, or coding habit your coding agent keeps getting wrong.

You will leave knowing how to turn frustration into a skill: capture the almost-right output, write the version you wanted in the first place, turn the difference into a rule, test the same task with and without the skill, and prove you can turn almost-right into right - and keep it that way.

## From Zero to Maintainer: Contributing to Open Source Projects

Workshop · English · 8h · delivered 1 time · 1 scheduled · [Details](https://fmartin.ch/session/from-zero-to-maintainer-contributing-to-open-source-projects)

This full-day workshop demystifies open-source contribution by guiding participants through every step, from discovering projects and filing their first issues to drafting and submitting pull requests in a safe sandbox. You'll practice the OSS workflow hands-on, including forking, branching, implementing changes, and crafting clear pull requests (PRs). Along the way, you'll also step into the shoes of a maintainer, simulating triage, release tagging, and community-management tasks, so you leave not only confident in contributing code but ready to steward and grow healthy open-source projects.

In this hands-on session, participants will: Explore and evaluate open-source projects, learning how to read CONTRIBUTING guides and identify beginner-friendly issues. Practice the core workflow: forking a repository, creating feature branches, making code or documentation changes, and submitting a pull request. Configure basic CI checks (linting, tests) to ensure quality before merging. Simulate maintainer duties, including triaging issues, applying semantic-version tags, and drafting release notes. Discuss community best practices, including writing clear commit messages, utilizing issue labels effectively, and promoting positive contributor interactions. By the end, everyone will have executed each stage of the contribution lifecycle in a controlled "sandbox" repo and gained a clear path for moving on to real-world projects.

## Stop Wasting Hours on Test Unpredictability and Get Back to Builds You Can Trust

Workshop · English · 8h · not delivered yet · 0 scheduled · [Details](https://fmartin.ch/session/stop-wasting-hours-on-test-unpredictability-and-get-back-to-builds-you-can-trust)

Your test fails. You rerun it. It passes. You rerun it again. It fails somewhere else.

That is not bad luck. That is evidence.

In this full-day hands-on workshop, you will work through real flaky test examples and turn random-looking failures into failures you can reproduce, understand, fix, and prevent. The examples use JavaScript/TypeScript and Playwright, but the learnings apply to other programming languages and testing frameworks as well.

You will find flaky tests with repeated runs, changed execution order, parallel execution, evidence from continuous integration, logs, screenshots, traces, and small experiments. Then you will trigger failures due to timing issues, shared test data, test-order dependencies, resource conflicts, differences in continuous integration, and external systems.

You will inspect the evidence, decide whether the failure is flaky or real, and fix the cause yourself.

You will also use agentic artificial intelligence tools to speed up the hardest parts of flaky-test work: reproducing intermittent failures, running targeted experiments, comparing results across repeated runs, and improving continuous integration checks to catch new flaky tests earlier. You will practice deciding when the tool is helping, when it is guessing, and when a suggested fix only hides the problem.

Join me to stop losing afternoons to tests that fail but pass when you rerun them. You will leave with a practical way to catch flaky tests early, reproduce them reliably, fix the root cause, and trust your pipeline again.

## Was dein Browser über dich verrät - 2025 Edition

Talk · German · 30-45 min · delivered 1 time · 0 scheduled · [Details](https://fmartin.ch/session/was-dein-browser-ueber-dich-verraet-2025-edition)

Unsere Browser, die wir täglich verwenden, geben beim Besuchen von Webseiten viel mehr Informationen preis, als wir denken. Damit wird es Webseiten leicht gemacht, uns als Besucher eindeutig zu identifizieren und das auch ohne Login. Versuchen wir uns zu schützen, könnte das dazu führen, dass wir es dadurch den Webseiten sogar noch leichter machen.

In diesem Vortrag geht es darum aufzuzeigen, was die verschiedenen Browser den Webseiten, die wir besuchen verraten und was wir dagegen tun können (oder auch nicht).

## Using Conferences to Reach the Next Level

Mentoring · English · 1h · delivered 5 times · 0 scheduled · [Details](https://fmartin.ch/session/using-conferences-to-reach-the-next-level)

Conferences can be more than just learning opportunities - they can be a jumping-off point for career growth. Whether you want to become a recognized expert or speaker, transition into developer advocacy, or expand your professional network, this mentoring session will help you leverage conferences to achieve your goals.

Who it is for: Developers, software engineers, and (aspiring) speakers looking to grow their careers through conferences.

Takeaways: Understand how speaking, networking, and strategic participation in conferences can open new career opportunities. Learn practical steps to get accepted as a speaker, build meaningful connections, and make an impact. Discover how to turn conference experiences into long-term career benefits, whether in developer advocacy, consulting, or leadership roles.

## Next Steps for a Developer

Mentoring · English · 1h · delivered 6 times · 0 scheduled · [Details](https://fmartin.ch/session/next-steps-for-a-developer)

Have you ever wondered what's next in your career? Whether you're considering consulting, DevOps, contributing to open source, or leadership, this mentoring session will help you explore the options available and map out a path that aligns with your skills and interests.

Who it is for: Mid-to-senior-level developers looking for new challenges or career growth opportunities.

Takeaways: Discover different career paths beyond traditional development roles, from consulting to DevOps to open source and leadership. Identify the key skills needed for these transitions and how to start developing them. Learn actionable strategies to position yourself for your next career move while continuing to grow technically.

## Ask Me Anything

Mentoring · English · 1h · delivered 2 times · 0 scheduled · [Details](https://fmartin.ch/session/ask-me-anything)

An interactive small-group Ask Me Anything session where conference attendees can ask speakers about their talks, industry trends, career advice, and practical experience.

## Public Speaking

Mentoring · English · 1h · delivered 1 time · 0 scheduled · [Details](https://fmartin.ch/session/public-speaking)

A small-group public-speaking mentoring session for developers who want feedback on abstracts, technical talk structure, stage presence, and conference speaking confidence.

## AI-Assisted Coding Beyond the Vibe: Craft, Economics, and the Human at the Controls

Panel discussion · English · 30-60 min · delivered 1 time · 0 scheduled · [Details](https://fmartin.ch/session/ai-assisted-coding-beyond-the-vibe-craft-economics-and-the-human-at-the-controls)

A GeeCON discussion panel on AI-assisted coding beyond vibe coding, including software craft, economics, and the role of the human at the controls.

## The Integration of Testing and Development

Panel discussion · English · 30-60 min · delivered 1 time · 0 scheduled · [Details](https://fmartin.ch/session/the-integration-of-testing-and-development)

In this panel discussion, I will draw from my extensive experience in both testing and development and share practical insights and strategies on how to achieve closer collaboration between developers and testers.

Discover how integrating testing early in the development process can enhance team satisfaction and lead to superior project outcomes. We will discuss real-world examples of successful integration, such as testers participating in pair programming sessions with developers and developers engaging in exploratory testing.

Join me to share your experiences, challenges and solutions, or to ask questions about anything you want to know. Whether you are a developer, a tester, or someone who wears both hats, this panel discussion will provide valuable perspectives and actionable ideas to improve your team's workflow and deliver better results.

## Mastering Test Automation: Strategies and Innovations

Panel discussion · English · 30-60 min · delivered 1 time · 0 scheduled · [Details](https://fmartin.ch/session/mastering-test-automation-strategies-and-innovations)

This panel discussion will explore the latest trends, strategies, and innovative approaches in the field of test automation. Expert panelists will share insights on how to effectively implement and optimize test automation frameworks, address common challenges, and leverage cutting-edge tools and technologies.

## From Zero to Continuous Delivery with GitLab CI Pipelines

Workshop · English · 8h · delivered 1 time · 0 scheduled · [Details](https://fmartin.ch/session/from-zero-to-continuous-delivery-with-gitlab-ci-pipelines)

This interactive workshop is designed to equip you with the skills to set up and automate a GitLab CI pipeline from scratch. Suitable for both beginners and those with some experience, this session will focus on implementing continuous deployment for applications combining backend technologies (Java or Python) and frontend frameworks (React or Angular with TypeScript). Key topics include branch management, job dependencies, artifact handling, parallel execution, and environment variables. You will also learn to enforce best practices in software development such as static code analysis, secret scanning, and automated version control. By the end of the workshop, you will have a functional, fully automated CI/CD pipeline in your repository, with a clear understanding of how to extend and optimize it.

Whether you are a beginner or have some experience, we will set up GitLab CI from scratch in a repository without CI step by step using an example. Depending on the previous knowledge of the participants, this can be an application with a backend in Java or Python and a frontend using React or Angular with TypeScript. The knowledge conveyed in this workshop can be applied to any technology, though. The focus is on showing best practices so that every person can understand every part of it and leave no questions unanswered.

Apart from basic concepts like branch management, stages, jobs and dependencies between jobs, artifacts, parallelization, and environment variables, the following aspects will be automated: Build, test and deployment Enforcing good development practices (for example static code analysis, code formatting, secret scanning, style guides and commit guidelines) Release process including automated version bumps using semantic versioning and changelog generation Update of dependencies Ideally, the workshop will be interactive, where the focus will be tailored to the needs and interests of the participants.

## Sicherheit in Open Source

Talk · German · 30-45 min · delivered 1 time · 0 scheduled · [Details](https://fmartin.ch/session/sicherheit-in-open-source)

Auf der einen Seite gibt es zum Beispiel Android und Linux, die ihren Source Code öffentlich stellen und auf der anderen Seite gibt es Firmen, die um jeden Preis versuchen zu verhindern, dass ihr Source Code an die Öffentlichkeit gelangt. Alleine im letzten Jahr gelang es nicht einmal grossen Unternehmen wie Microsoft, Samsung, Nvidia und Twitch zu verhindern, dass ihr Source Code von Hackern veröffentlicht wurde. Für viele klingt das nach einem Alptraum, doch was für Konsequenzen hat das wirklich?

In diesem Talk geht es darum aufzuzeigen ob und warum Open Source sicherer ist und was es für Sicherheitsrisiken oder auch Vorteile sowohl bei der Verwendung, als auch bei der Bereitstellung von Open Source gibt.

## 1 Codebase, 2 Mobile Platforms: How to Test iOS and Android by Just Writing Tests Once

Talk · English · 30-45 min · delivered 1 time · 0 scheduled · [Details](https://fmartin.ch/session/1-codebase-2-mobile-platforms-how-to-test-ios-and-android-by-just-writing-tests-once)

Developing consistent mobile apps on iOS and Android is difficult enough, but writing automated end to end tests so they run on both platforms without writing them twice is even harder. The limited selectors on mobile make it very difficult to only use one testing code base for both platforms. By using accessibilityIds with translation keys in the same way as in the app, we use the fastest and least brittle selector on mobile possible, being resistant to tests breaking in case of text changes, allowing to also check the app in all languages without any additional effort.

Using a hybrid framework like React Native or NativeScript with WebdriverIO, François will show how to use utility methods to cleverly encapsulate all of the platform differences as much as possible, so writing tests is efficient, readable and maintainable.

Key Takeaways: Learn how to apply approaches from developing multi-platform apps with just one codebase (as used in NativeScript, React Native and Flutter) to end-to-end test automation Get to know how to easily write tests in a way you can have them run on multiple platforms (even at the same time!) by just writing tests once Find out which selectors to use for testing multi-platform apps with the least effort possible Learn about testing accessibility and internationalization without any additional effort Increase maintainability and readability of your automated end-to-end tests

## Presenting PreferencesFX and WorkbenchFX during the opening keynote

Talk · English · 15 min · delivered 1 time · 0 scheduled · [Details](https://fmartin.ch/session/presenting-preferencesfx-and-workbenchfx-during-the-opening-keynote)

## Historical editions

- [Was dein Browser über dich verrät - 2024 Edition](https://fmartin.ch/session/was-dein-browser-ueber-dich-verraet-2024-edition)
- [Was dein Browser über dich verrät - 2023 Edition](https://fmartin.ch/session/was-dein-browser-ueber-dich-verraet-2023-edition)
- [Was dein Browser über dich verrät](https://fmartin.ch/session/was-dein-browser-ueber-dich-verraet)

## Sitemap

See the [Markdown sitemap](https://fmartin.ch/sitemap.md) for every page, or [sitemap.xml](https://fmartin.ch/sitemap.xml) for the XML index.
