Three conferences in four days: JCON, Devoxx France and Devoxx Greece

Two weeks ago I had an extremely busy week: speaking at three conferences in three different countries in four days — JCON (Cologne, Germany), Devoxx France (Paris) and Devoxx Greece (Athens). We had the opportunity to give our talk “Learning modern Java the playful way” three times! It was well worth it, as I got to see so many people and our talk was well received everywhere.

JCON Europe

On Monday, I took the train to Cologne.

Social media post by Marit van Dijk with the text "On my way to JCON". The post contains a picture of a green suitcase with a luggage label containing the IntelliJ IDEA icon and the text "Luggage tagged. Code secured. JetBrains IDEs", and a black North Face backpack containing a red label with the text "Unlocking productivity", a tag of the IntelliJ IDEA logo, and a tag with Duke, the Java mascot.
On my way to JCON

Java Luminaries Summit

In the afternoon, there was a Java Luminaries Summit @ JCON Europe, where folks active in the Java community discuss topics relevant to the language and ecosystem. This includes Java Champions, JUG leaders, speakers and other active members from the community, like Sharat Chander, Ana-Maria MihalceanuAndres Almiray, Brian Vermeer, Cay Horstmann, Kevin Wittek, Kevin Dubois and many more. Unfortunately, I wasn’t able to attend the whole summit, as I had some work to do first.

After the summit, there was a pizza session, which was a great opportunity to socialize with other speakers, like Tim te Beek and Rick Ossendrijver, and community members. Also, I got to see my colleague Marcin Mycek and introduce him to some people.

JCON conference day 1

On Tuesday morning, we first prepared our session. Even though we have done this talk before, we always update it to the latest Java version and make small tweaks to continuously improve it.

For lunch, I met with Annelore Egger, François Martin and two of his colleagues.

Social Media post by François Martin about lunch at JCON, including a picture with Annelore Egger, François Martin, Marit van Dijk and Tamar Gogebashvili at a lunch table.
Lunch at JCON

Before the conference, we also had the opportunity to sign up for interviews with Baruch Sodogursky which were livestreamed on YouTube.

During his interview, Piotr Przybył talked about our talk:

Baruch and I had a lovely conversation about reading code in the age of AI:

This is a topic dear to my heart, as I have been talking about Reading Code for a while — and I still think it’s important no matter who has “written” the code.

In the afternoon it was time for our first talk of the week.

Piotr Przybył and Marit van Dijk simultaneously putting on their labcoat.
Synchronous putting-on-labcoat (photo by Dimitris Doutsiopoulos)
Piotr Przybył and Marit van Dijk simultaneously putting a pen in the front pocket of their labcoat.
Synchronous putting-pen-in-pocket (photo by Dimitris Doutsiopoulos)

Giving this talk is a lot of fun. It was very nice to have people come up to us afterwards to tell us how much they liked it. (Special thanks to JavaCro organiser Branko Mihaljević for all your kind words!)

Fortunately, I also had some time to catch up with more people, like Sandra Parsick, Sandra Ahlgrimm, and several others.

JCON speaker dinner

In the evening, it was time for the speaker dinner.

Marit van Dijk making a heart at photographer Dimitris Doutsiopoulos
When you see Dimitris (photo by Dimitris Doutsiopoulos)

Earlier during the day, I had run into my friend Rien Korstanje, who I hadn’t seen in a while. We know each other from when I used to contribute to cucumber-jvm, as he is one of the core maintainers. Turns out is now also a maintainer for JUnit, so we had some time to catch up during dinner with Marc Philipp and Christian Stein (thanks for laughing at all my silly jokes!).

Unfortunately there was not enough time to properly catch up with everyone.

Social media post by Catherine Edelveis with the text "Caught Marit van Dijk for 2 minutes" containing a picture of Catherine and Marit.
Seeing Catherine (too) briefly at the JCON speaker dinner

Devoxx France

On Wednesday, it was time to travel to Paris. We took the train and through sheer luck ended up with seats next to each other, even though we had booked through our respective employers. This gave us time to reflect on how the talk went at JCON and prepare for our session at Devoxx France in the afternoon.

After surviving the Paris metro, the first person we saw at Devoxx France was Estelle Landry, which was a very happy reunion as I hadn’t seen her since Devoxx Morocco.

Estelle helped us get some lunch, pointed us to the speaker room and got us settled in so we were ready for our session. We also ran into Daniel Garnier-Moiroux in the speaker room.

Our talk was again in the afternoon, and the audience was amazing! This was quite possibly the most engaged audience we have had for this talk, and also the best version of the talk we have done so far.

Social media post by Piotr Przybył with the text: "Thank you for being such a vivid and welcoming audience, Devoxx France. And now, with Marit van Dijk: FROMAGE !". The post contains a picture of Marit van Dijk and Piotr Przybył, both wearing labcoats, on stage at Devoxx France with the audience in the background.
Taking a selfie at Devoxx France: Fromage!

It seems we were not the only ones who thought so, because we also received the highest rating for our talk so far: 4.92/5. In addion, we received some very nice feedback like “You make an awesome team” and “Very funny”.

Talk ratings from the Devoxx Mobile app for Learning modern Java the playful way. With 235 hearts, 24 ratings and 5 comments, the average rating is 4,92/5.
A 4.92/5 rating at Devoxx France

Unfortunately, the video is not available yet, but it should be added to the Devoxx France YouTube channel soon. And photos will be added to the Devoxx France Flickr albums.

In the evening, it was again time for the speaker dinner, where I had the opportunity to catch up with people like José Paumard, Zineb Bendhiba, and several others… We didn’t stay too late, as we had an early start to travel to Athens the next day.

Devoxx Greece

We met up early in the morning to take the train to the airport and fly to Athens. Upon arrival, we took a taxi to the venue to figure out the logistics for our talk the next day.

In the evening, there was a speaker reception where we got to meet some of the other speakers, including Viktor Gamov, Alina Yurenko, Alexander Chatzizacharias, Holly Cummins and Patrick Baumgartner. An added bonus for me was the opportunity to catch up with my colleague Michelle Frost, who I don’t get to see that often.

The next morning we met up at the venue for our talk. It was once again time to put on a labcoat 😉

Black and white photo of Marit van Dijk putting on her labcoat over a Java Champion polo.
Putting on the labcoat at Devoxx Greece (photo by Dimitris Doutsiopoulos)

We were a little rushed, as the talk slots were slightly shorter. But it seems that our talk was again well received; we received nice ratings (4,78/5) and lovely feedback. Special thanks to the person who came up to talk to me in Dutch and the folks who came up to us when we were taking pictures to tell us that ours was their favorite session!

We did a short interview for Devoxx Greece and recorded a short video ourselves with the help of Alina Yurenko (thanks!).

Social media post by Alina Yurenko with the text: "Working a double shift as a personal media team for some speakers!!!🙄😄" tagging Marit van Dijk, Piotr Przybył and Devoxx Greece. The post contains a selfie of Alina Yurenko. Marit van Dijk and Piotr Przybył are standing in the background in front of a Devoxx Greece banner; both are wearing a white labcoat.
Alina Yurenko as our personal media team
Marit van Dijk and Piotr Przybył in front of a Devoxx Greece banner; both are wearing a white labcoat.
At Devoxx Greece (photo by Dimitris Doutsiopoulos)

In the afternoon, I had some time to catch up with people, had to take a meeting (is it even remote work if you don’t work from various weird places like conferences, trains, airports and hotel lobbies?) and then it was time to head home.

A great week

Overall, I had a great week. It was wonderful to see so many friends and meet new people. Many thanks to the conference organisers, volunteers and attendees at JCON, Devoxx France and Devoxx Greece and of course my amazing cospeaker Piotr Przybył.

Links

Voxxed Days Amsterdam 2026: An absolute blast!

Just over two weeks ago, I was at Voxxed Days Amsterdam. This was the second edition of the conference, and this year it was two days instead of one!

Day 1: Wednesday, April 1

Opening the day

As a member of the Program Committee, I got to open day 1 together with Michel Schudel. During the opening we introduced the speakers, the program committee, and the community reviewers. This year we had around 650 proposals, and some of us (including myself) reviewed each and every one of them! We also remind people to use the app to rate the talks, as that helps both speakers and organisers to know how talks are received. We use this information to improve our talks and the program!

dD_1103

Like last year, we had rotating keynotes; which meant that the keynote speakers would do their keynote twice (once in each room) rather than have an overflow room where people watch the keynotes on a screen. One of the keynotes on day 1 was Baruch Sadogursky‘s Never Trust a Monkey! Can We Trust AI-Generated Code? Baruch’s takes are always interesting, so I’d recommend checking it out.

Speaking with Piotr Przybył about modern Java

Right after the opening, it was time for Piotr Przybył and I to take the stage. We present our talk Learning modern Java the playful way, which we updated for Java 26. During this talk we show you how to update Java code from Java 8-11 to modern Java, using some of our favorite new Java language features, including Records, Stream Gatherers, Structured Concurrency, and for the Java 26 version we also added Lazy Constants. We do so using a demo application, and of course some silly jokes!

We aim for the session to be educational and entertaining. Fortunately, someone who attended our session stopped by to tell us that was exactly what they thought of our session, just as we were taking pictures for a social media post.

Foojay podcast

Frank Delporte was back again this year to interview speakers for the Friends of OpenJDK (Foojay.io) podcast. We discussed some topics dear to my heart: Java and reading code.

dD_2327

You can catch all of the interviews below:

Other talks

During the day I also managed to catch a few other sessions:

10 Things I Hate About Java by Adele Carpenter

Adele is an amazing speaker, and this talk was no exception. I’d been wanting to see this talk ever since I first heard about it! In this talk, Adele goes over some of the decisions that were made during the design of the language, and how those resulted in some of the features that Java has (or doesn’t have). The talk was well-researched and the delivery was amazing. The title of the talk refers to the movie title “10 things I hate about you”. Adele ended the talk with a poem about Java, similar to the one Julia Stiles recites during the movie, and it was brilliant!

Building AI Agents with Spring & MCP by James Ward and Josh Long

It is always fun to see what Josh and James are up to with Spring and AI. Even if you’ve seen them before, they are always entertaining. And in this session they also briefly mentioned Mellum by JetBrains.

What Sorcery is This? How software uses Dark Patterns to manipulate users by Rachel Appel

Another talk I’d been wanting to see for a while. Even though Rachel is my colleague, we don’t usually go to the same conferences, as we are in different ecosystems. Rachel showed how easy it is to manipulate users through software design, with some absolutely appalling examples of dark patterns. This talk is a good reminder of the responsibility we have as developers.

Language Games by Eli Holderness

This talk combines philosophy, language and communication in a way I cannot reproduce; you’ll just have to watch it yourself! Due to technical difficulties, Eli’s slides were not always shown properly. They managed to work around that quite well by describing the image that should have been displayed. It was a master class in communication.

Despite being able to catch some talks, there were also many I missed. For example, my other colleague Anton Arhipov was speaking at the same time as Rachel. And, as much as I would like to, unfortunately I still haven’t managed to clone myself so I can attend multiple sessions at the same time… 😔

dD_2122

Also, there is more to do on a conference day than attending talks; I also had regular work to do in between, like writing the Featured Content for Java Annotated Monthly that was about to be published.

Day 2: Thursday, April 2

Opening the day

On day 2, I opened the conference together with Ko Turk. Again we introduced the speakers, program committee and community reviewers, and I got to announce Iulia Feroli 🤩 as one of the keynote speakers. Her keynote Building my own (accurate!) Spotify Wrapped was a good way to start the day.

In fact, her keynote inspired Devoxx founder Stephan Janssen to add a Devoxx wrapped to the Devoxx Mobile companion app.

Other talks

On the second day, I didn’t manage to catch so many talks, as I also had other things to do. But the ones I did see were again very good!

How I built my own Intelligent Robot Arm from Scratch by Iulia Feroli

In addition to her keynote, Iulia gave a talk about her physical AI adventures, bringing real hardware on stage. This was a very inspiring session; I am always amazed with how creative some people are in ways that are different from myself.

Iulia is definitely someone to watch! You can follow her YouTube channel Back to Engineering if you want to learn more.

5.5 prompt injection techniques in 15 minutes by Brian Vermeer

A last minute addition to the program (we are lucky to have so many great speakers in the Netherlands!), Brian talks about some much needed security awareness in the age of AI.

Hallway track

And of course, some of the best parts of a conference happen in the hallway. It was great to catch up with friends and meet new people across both days. Among other things, I had a great conversation with Ronald Dehuysser about what working as a Developer Advocate looks like (spoiler: it’s more than speaking at conferences!). One of the things I like about this job is speaking to our users, getting their feedback and seeing how we can help them better. Ronald happened to have some relevant feedback that we discussed.

dD_4188
dD_0790

Thanks!

Many thanks to everyone who helped make this such a great event: the speakers for their great sessions, volunteers for helping out, sponsors for making this possible and of course all the attendees! 

All recordings are available in the playlist on YouTube

Photos by Dimitris Doutsiopoulos 🫶 are available for day 1 and day 2.

All photos in this post (except for screenshots) by Dimitris Doutsiopoulos.

dD_3010

Voxxed Days Zürich 2026: Another great event!

Almost three weeks ago, I had the pleasure of speaking at Voxxed Days Zürich. This was my third time at this conference, and also my third Swiss Voxxed Days this year (which will be relevant later!).

Speaker dinner

The speaker dinner the evening before the conference is always a good time to catch up with friends and meet other speakers. Good food and drinks are a bonus.  

Because the restaurant was a little loud (maybe because it was filled with speakers…), some of us ended up outside.

Photographer Dimitris Doutsiopoulos took advantage of this to take some beautiful pictures, like this one of Paco van Beckhoven and me, which my colleague Jason Torres pointed out looks like a still from a movie. (It does, doesn’t it?)

Welcome

The conference day started with a welcome by Federico Yankelevich and Patrick Baumgartner.

Patrick created a beautiful animation for this year’s edition. And I have to say I am rather partial to these colors. They even got the steps of the cinema to match!

During the session they called out the Voxxed Days Switzerland Champions. Apparently I was one of six speakers who spoke at all three Swiss Voxxed Days conferences: Voxxed Days Ticino, Voxxed Days CERN and Voxxed Days Zürich. As I am a sucker for vanity metrics, I really appreciated this callout. 😂

Speaking with Andres Almiray about Maven

At Voxxed Days Zürich this year, I had the pleasure to do a new(ish) talk with Andres Almiray: “Getting more out of Maven”. This was only the second time we did this talk (the first time was at JavaLand). Unfortunately we had some trouble connecting my macbook to the screen, which threw us off a little…

During the talk we discussed several tips for using Maven in IntelliJ IDEA. We showed using the Maven wrapper to increase reproducibility of the build, and the enforcer plugin to see where your build breaks. We explained Maven lifecycle and goals, as well as how inheritance works, and more. And of course, we showed some useful IntelliJ IDEA features for working with Maven and dependency management, the dependency analyzer to find conflicts in dependencies, inspections to show you when dependencies have known vulnerabilities and finally the Vulnerable API inspection which can show you whether you are actually using the vulnerable API of a known vulnerability. 

And of course, our session also included some custom memes that we created for this talk. If you want to see all the memes, you can find them in this repo.

Despite the initial technical trouble, overall our session went well. We got some positive feedback, and I had a nice conversation later with some of the attendees about the topic of our talk.

Other talks

During the day I managed to catch the following talks:

Agentic AI Patterns by Kevin Dubois and Mario Fusco

This was a great talk to stay up to date with everything AI. Kevin and Marco did also have some technical trouble, when there was some interference with audio from another room, which was quickly fixes by the conference.

Are We Ready For The Next Cyber Security Crisis Like Log4Shell? by Soroosh Khodami

Soroosh showed us how easy it can be to get compromised and different ways to prevent this.

Supercharge your JVM performance with Project Leyden and Spring Boot by Moritz Halbritter

Moritz showed us how Project Leyden can help you speed up your Spring Boot applications. Mandatory watching for anyone using Java and Spring Boot!

Hallway track

And I also managed to take advantage of the hallway track, again to catch up with people. 

Thanks!

Many thanks to Federico Yankelevich, Patrick Baumgartner and team for organizing another great event! I hope to be back again in the future.

You can find the Voxxed Days Zürich photo album here and the playlist here.

Credit

All photos on this page by Dimitris Doutsiopoulos. 🫶

Vibe coding an IntelliJ IDEA progress bar plugin for fun

In June, I presented the talk Learning modern Java the playful way with Piotr Przybył at Devoxx Poland 2025. For this presentation, I thought it would be funny to have a custom progress bar running in IntelliJ IDEA during our demos. Since we adapted our presentation to the Polish audience a little, I figured a Polish flag and #PolishSmile would be appropriate.

Creating an IntelliJ IDEA plugin

As I had never implemented an IntelliJ IDEA plugin before, I had no idea how hard it would be. When I asked my colleague, Anton Arhipov, he suggested using Junie to vibe code it. And given that this was just a fun idea for a plugin intended to be used only once, it was the perfect candidate for vibe coding: We don’t care that much about the code quality, since we won’t be maintaining it. All we need is for the plugin to work.

We started a new project using the Plugin template on GitHub. While Junie may or may not be able to do the configuration for such a project, there is a deterministic template available; why not use that? 

When you open the project, IntelliJ IDEA will show a popup Suggested plugin Plugin DevKit available. Clicking the button Configure plugins will open Settings | Plugins with this plugin selected and the option to Install it. 

Using Junie for vibe coding

Then we started with a prompt asking Junie to implement the plugin similar to the Nyan Progress Bar plugin. The prompt we used was as follows:

“Please implement a progress bar plugin similar to the nyancat progress bar. Instead of Nyancat I want it to display a Polish flag on the progress bar instead of the rainbow and a neutral smile emoji instead of the nyan cat. PLease suggest a detailed implementation plan and implement the plugin.” 

Junie correctly identified that no implementation was available and set about creating one. Before doing so, it first scanned the project and looked at the README and plugin.xml, correctly identifying that “the project is based on an IntelliJ platform plugin template”.

The plugin template project includes multiple Gradle goals, including runIDE; which allows you to run your plugin on an instance of the IDE so that you can try it out. This is perfect for our vibecoded project, since all we care about is whether the plugin does what we want. 

When Junie is done, it will say so in the Junie tool window and give an overview of files that were changed. The links to the files are clickable, if you want to look at the diff for these files.

First results

The first implementation of the progress was a step in the right direction but not quite what we wanted. Instead of a continuous Polish flag, it showed only small sections of white and red. Also, while the code referenced an icon, no icon was available, so we had to download a Polish smile emoji ourselves and add it to the project in the right location. We also had to manually resize this image to fit the progress bar, which unfortunately made it slightly pixelated… 

One of the things I like about Junie is that it can to build your project, and will try to fix any issues if the project doesn’t build successfully. It might not try to do so every time (AI is non-deterministic after all), so if it doesn’t you might want to add something to your `.junie/guidelines.md` along the lines of “DO make sure the project builds successfully.

Also, Junie might stop if it cannot resolve issues in several tries. This is usually a hint to either break up the task into smaller pieces and/or provide more detailed information.

In our example, we tried prompting Junie to make the Polish flag on the progress bar continuous, but with no luck. We used the following follow up prompt: 

“i want the brogress bar to be continuous and smooth and it should move 5 times slower”.

(Note that even though the prompt has typos, Junie doesn’t seem to mind.)

Providing a code example for better results

Unfortunately, this prompt did not have the desired outcome. Instead, Anton had the idea to take part of the Nyan Progress Bar plugin implementation and provide that code to Junie as an example to work with.  We did so and used the following prompt: 

“analyze the code in NyanCatProgressBar.txt (it is in Java) and create PolishFlagBProgressBar in Kotlin by following the same logic but with the polish flag colors”

This turned out to be a great idea; the plugin showed a continuous Polish flag now. This goes to show that providing Junie with examples of what you want will lead to better results.

Unfortunately, the smiley still jumped up and down on the progress bar, which is not what I wanted. But I figured it was good enough for a plugin I would only use for fun anyway. It wasn’t until after the conference that I realised that the smiley jumped up and down because that is what the Nyan Cat does in the Nyan Progress Bar. It took me five minutes to prompt Junie to fix this.

The next challenge was to build the plugin in a way that I could install it in IntelliJ IDEA from disk (as I had no plans to publish the plugin). A plugin project can be built using the task buildPlugin. Unfortunately this didn’t work for our project. It took several tries to get Junie to fix it, but I have to say that I was impressed that Junie fixed my Gradle problem.

Installing the plugin

Once the project was built successfully, I could install it. To install a plugin from disk, open Settings (⌘,  on macOS) / Ctrl+Alt+S on Windows/Linux) and go to Plugins. On the Plugins page, next to Marketplace and Installed, click the icon to Manage Repositories, Configure Proxy or Install Plugin from Disk. From the menu, select Install Plugin from Disk, and select the .jar file for the built plugin from your file system.

Uninstalling the plugin

When it came time to uninstall the plugin, I found that I had trouble doing so. Fortunately my colleagues were able to provide a workaround. To manually uninstall the plugin, delete the plugin from the plugins main directory, which you can find in Help | Diagnostic Tools | Special Files And Folders.

Results

Remember, this plugin is not meant to be published to the marketplace. However, if you’re interested in the code, you can find it here.

Overall, it was fun vibe code something silly with Junie and I am happy with the result. Also, it turns out, I could actually reuse the plugin when speaking in Poland again.

public static void main 🎶

On June 23, 2023 Hanno Embregts and I performed a lightning talk / pop music quiz called “public static void main 🎶 “. This was based on a Tweet that said “I realized that you can sing “public static void main” like “Everybody dance now” and I can’t stop doing it”. Hanno found 15(!!) songs that would also work, and we created a pop music quiz.

On June 23, 2023 Hanno Embregts and I performed a lightning talk / pop music quiz called “public static void main 🎶 “.

Hanno and I met at Joy of Coding 2022, where he gave his talk “What “Stairway to Heaven” Can Teach Us About Software Development“. In this talk, he plays parts of the song on stage with his travel guitar, and then explains how the lyrics are about software development.

How it started

A few weeks later, I saw a tweet that said “I realized that you can sing “public static void main” like “Everybody dance now” and I can’t stop doing it”. (And, I’ve been doing just that ever since.) Someone responded to my retweet by pointing out that this also works for Vamos a la playa.

I love it when a plan comes together

So I pitched the idea to Hanno of doing a “pop music quiz” with different songs where we would replace the lyrics with “public static void main” and we could have the audience guess what the original song was. A few months later, Hanno contacted me to say he had found at least 15(!!) songs where this would work. Apparently, he had gone through the Top 2000 looking for songs he thought might work. So we got together to discuss this idea, write an abstract and figure out where to submit it too. We submitted to several conferences that offered lightning talks slots and … got accepted to Joy of Coding 2023! Coincidentally, this is also where I got started speaking, so I was very excited to return.

Time constraints

Unfortunately, we had to cut some songs due to the 5-minute limit, so we selected the 6 we thought would work best. We selected a quiz tool, created the questions, and some videos to go with them using IntelliJ IDEA‘s live templates.
The Joy of Coding organizers were extremely helpful in allowing us to take the last slot in the lightning talk line-up, letting us use our own laptop to run the quiz, and talking to the venue to get Hanno an audio monitor at the last minute.

Joy of Coding 2023

On the day of the conference, we had a lot of fun playing and singing along.

And to our surprise, we ended up with a tie for first place! Fortunately, we had some back-up songs we could use to settle this tie in a kind of “sudden death” match between the two top contestants.

We also got some positive feedback from the crowd, as well as an invitation to perform again elsewhere.

Thanks

Many thanks to original tweeters for the idea (I’ll forgive you for also getting the song stuck in my head), Hanno Embregts for the awesome collaboration, Yosuf Haydary for pictures and videos of the event and Joy of Coding for having us!

How I got started with public speaking

As a public speaker, one of the questions that comes up occasionally is “How did you get into public speaking?”. In my case another speaker and conference organizer convinced me to submit a lightning talk to their conference, which got accepted. it was both scary and exciting, but fun enough to keep doing it!

As a public speaker, one of the questions that comes up occasionally is “How did you get into public speaking?”. Everybody has their own personal story; this is mine.

Attending conferences

In my 20+ years in IT, I’d never had a job where it was normal for me to go to conferences. This changed when I joined bol.com, an online retail platform, in 2017. At bol.com, going to  conferences was very common. As it turns out, I really loved going to conferences.

Some of the things I particularly enjoy are hearing about new technologies I might not yet be aware of, or new and different perspectives on technologies I already know. Also, I’m interested in hearing stories about challenges people face in other companies and industries, and how they solve their problems (either with or without specific tools). My favorite conferences are the ones where I come back with a bunch of ideas of new things to try. In addition, I very much enjoyed meeting people and discussing our thoughts on software development in the so-called “hallway track”; the conversations that happen in the hallway in between talks. While talks can often be watched online after a conference, meeting new people and having conversations with them only happens in person.

Meeting other speakers

To expose myself to more ideas, I created a Twitter account and started following speakers I liked and people I met at conferences. One of those people was Peter Hilton, whose talk I saw speak at CodeMotion Amsterdam 2017 and later met at Joy of Coding in 2017.

Peter was the one who convinced me to submit a lightning talk to Joy of Coding in 2018. He told me that as it was only 5 minutes, if I really didn’t like it, at least it would be over quickly. Of course, what he didn’t tell me is that it could be worse: I could end up liking it and wanting to do it again! Also, it wasn’t until I was accepted to do a 5-minute lightning talk that people told me that short lightning talks are actually harder than regular, longer talks. If you only have 5 minutes to get your point across, you have to be really clear about what that point is!

Picking a topic for my first talk

For my very first talk, I chose a topic I was very enthusiastic about and actively using at the time: Cucumber & BDD. I had started using Cucumber the year before and even started making open source contributions to the Cucumber documentation as well as cucumber-jvm (the Java implementation of Cucumber). My team at the time was using Cucumber to describe the intended behavior of our applications, and these automated tests helped safeguard this behavior by making sure we didn’t break it when making changes and adding new features. Being an active user and contributor, I had way more to say about this topic than I could fit into 5 minutes, so I had to bring it down to several core points I wanted to make. 

Practice makes perfect

Since it was imperative that I keep it under 5 minutes (I was told that the microphone would be cut after 5 minutes; no pressure!), I practiced my talk. A lot. The way I did this was by setting a 5-minute timer on my phone, and practicing my talk in the mirror. Every time I went over the 5 minutes, I would think about what went wrong. Often, it would be a tangent I went on that would take too long, so I would try to cut that and try again. Eventually I managed to whittle it down to 5 minutes and focus on the core idea(s) I wanted to get across.

Conference day!

On the day of the conference, I was extremely nervous but also excited. It was pretty exciting to see my name on a speaker badge!

Joy of Coding 2018 conference badge with my name and the text "I'm a speaker - ask me anaything!"
First speaker badge with my name on it!

There were several people doing lightning talks and the organizers had been kind enough to let me go on first, so I didn’t have to continue to get more nervous while waiting for my turn. Standing on stage for the first time was weird; it can be hard to know if the audience likes your talk if they just sit there quietly.

Fortunately I managed to get my story out within the 5-minute limit, and then I got to sit and watch the rest of the lightning talks. I’ll admit I didn’t really process a lot of them as I was feeling like a deflated balloon after my talk; or at least that’s how I describe the feeling of coming down off the adrenaline after a talk. To be honest, I still feel that way after talks these days, despite having way more of them now. It is not as bad as the first time, but I still get nervous before each talk and still need a bit of time to recover after. And yet, I still continue to do it!

Upsides of public speaking

This is how I got into public speaking. It started with a lightning talk on a topic I was enthusiastic about, and based on personal experience. It’s lead me to speak at many other conferences, share my knowledge and experience, meet many more amazing people and learn from them. And speaking is now part of my job as a Developer Advocate at JetBrains!

Cukenfest 2018 — It’s all about the conversations

This article was first published on Medium.

In April of 2018, I attended Cukenfest; a BDD and Agile conference organised by the people at Cucumber. As a Cucumber user and open source contributor, this was a great way to meet some people I’d previously only chatted with on Slack, as well as hear some great talks by amazing people.

Preconference Dinner

The evening before the conference, we got together at a local pub with both conference speakers and Cucumber contributors. Here I finally got to meet people I’d been collaborating with in person! It was great getting to know them better, and discussing our experiences with Cucumber and BDD.

We also bonded over other topics, like a shared love of Kotlin , or dealing with a similar challenge of moving more towards a Software Engineering role from a tester role.

The highlight of the evening, other than meeting so many great people, might have been the discussion we had about Cucumber expressions, which were already available in the Ruby and JavaScript implementations, and have since been added to Cucumber-JVM.

Lots of smart people, with lots of interesting ideas and experiences to share.

Day one

The first day of the conference had a great lineup of talks by amazing speakers, including Dan NorthLiz KeoghGáspár NagyNat Price and Aslak Hellesøy (the creator of Cucumber). Speakers were introduced by Seb Rose, who could very well have a career as a standup comedian (you know, if this IT thing doesn’t work out).

If you’d like to read more about their talks, I highly recommend the blog by Katja: https://www.katjasays.com/cukenfest-2018-london-recap/ which also includes her sketch notes. Or watch the videos.

Speed meet

After the first round of talks, there was an opportunity for a speed meet; inspired by the European Testing Conference. The format of the speed meet was to have people draw a mind map about themselves as input to 3 minute conversations they would have with other attendants. Rows of chairs are set up facing each other and after every three minutes, people shift places so they end up talking to someone else. This is a great way to get conference attendees to talk to each other. Some people might find it a bit intimidating, but it does seem to foster more communication. The only downside for me is that it can get very loud!

Hallway track

At some point, I ran into Victoria Wiggins in the hallway. She had just done an amazing talk on neurodiversity and this provided the chance to tell her how how inspiring it was. It really showed a great self acceptance! While this led me to miss some of the scheduled talks, we had the opportunity to discuss (neuro)diversity in the workplace.

Personally, I really appreciate the hallway track at conferences, as it gives you the opportunity to meet people, and get different perspectives on things. This really reinforces the learning, as well as foster a community.

Day two

The second day of the conference was an open space, or `unconference`. This day was particularly geared towards interaction between participants.

Matt Wynne introduced us to the rules of the game:

  1. The law of 2 feet; if you’re not learning from or contributing to a session, you can walk off in search of a different session.

2. The other rules are:

  • Whoever comes is the right people
  • Whatever happens is the only thing that could’ve
  • When it starts is the right time
  • When it’s over, it’s over

This helps make sure everyone in a sessions remains interested and engaged.

Documentation

Some of us had our own sessions planned; we’d been working on improving the Cucumber documentation and wanted to see what was needed to get them live. It ended up being Matt Wynne, Sam Wright (a.k.a. Plaindocs) and myself working on the last bits and pieces and getting them live!

Later that day we had a demo session, and gathered some great feedback from participants. We’ll be slowly improving them, based on actual user feedback. But for now, we’re very happy to have them live after working on them for many months!

After conference

At the end of the day, we got to enjoy the lovely weather at the rooftop bar. We continued discussions about Cucumber, BDD, Software Engineering, working in tech, being women in tech, and so much more.

Later, a few of us went out to dinner and conversations continued, sharing ideas and experiences and getting to know wonderful people. It’s all about the conversations…

Open Source Day

The next day, we had an Open Source Day, where we got together to discuss upcoming changes to various implementations of Cucumber, as well as how to continue improving the documentation. I got to meet some more Cucumber contributors, which was loads of fun. We even managed to get a few things done!

Take-aways from European Testing Conference 2018 — Do try this at home!

This article was first published on Medium.

This week I was lucky enough to attend European Testing Conference in Amsterdam. To get an impression of the conference, you can visit their website, read up on the #EuroTestConf hashtag on Twitter, or check any of the links at the end of this post.

In this blogpost, I’d like to share some of the take-aways from this conference. Do try this at home!

  1. “Painless Visual Testing” — Gojko Adzic

During the first keynote, Gojko Adzic likened visual testing to traveling with children: “always more painful and expensive than expected”.

Tools can help you collect data, but cannot determine whether the result looks “good”. We will often have to visually inspect the UI. Existing tests break when we makes changes to the UI.

To deal with this, Gojko introduced the idea of visual approval testing and gave a demo of a tool built for that purpose: https://github.com/AppraiseQA/appraise

It would be fun to play with this tool, or at least this idea, to see how this could help make visual testing easier.

An earlier version of this talk can be found here.

2. How Would You Test a Text Field? — Maaret Pyhäjärvi

Maaret used the interview question “ How Would You Test a Text Field?” to generate ideas on how to test a text field, and illustrate how the types of answers people give indicate their level of test experience and mindset.

Some resources mentioned in the talk:

3. Writing Better BDD Scenarios — Seb Rose and Gáspár Nagy

During the workshop, Seb mentioned Example Mapping as described by Matt Wyne

4. Generating Test Scenarios” — Llewellyn Falco

Llewellyn showed us how to quickly increase test coverage by generating test cases. This is also something I’d love to play with!

Of course, he had to first show us his infamous sparrow deck:

Also, the BugMagnet tool was mentioned:

Having just recently heard of BugMagnet, I definitely plan to use this at work!

For more on approval testing: http://approvaltests.com/

5. Automating repetitive communication tasks with a Bot” — Pooja Shah

Pooja Shaj showed us chatbot Alice. You can find the repository on GitHub: https://github.com/moengage/alice

6. Interactive sessions

The conference made a point of being interactive; a lot of the insights came from great keynotes and workshops, as well as fellow attendees.

The interactive parts of the conference included a speed meet (talk to different people for 5 minutes each), lean coffee (facilitated discussion) and open space (free format to present, discuss or ask for help).

More on Lean Coffee: http://leancoffee.org/

One of the questions raised in our group was “How to motivate developers to test?”. Apart from the obvious “managing programmers is like herding cats”, one of the ideas mentioned was to have a bug bash.

Wrap up

The conference ended with a retrospective.

As you can see, we had a lot of fun, learned a lot and went home with new ideas to try out!

Read more:

If you want to read more about the conference, check out the following (especially the sketch notes by @marianneduijst and @KatjaBudnikov):

Conferences as a change toolMaaret Pyhäjärvi

European Testing Conference 2018 – Coming HomeLisi Hocke

ETC 2018, it was simply awesomeAmit Wertheimer

ETC 2018, did I say it was awesome?Amit Wertheimer

European Testing Conference 2018Markus Tacker

What I learned on first day of European Testing Conference 2018 – Karlo Smid

Arena lifeSeb Rose

Jackpot!Seb Rose

European Testing Conference 2018 #EuroTestConfKatja Budnikov

Collection of Sketchnotes of #EuroTestConfMarianne Duijst