Tech Talks and Tastings: A Recap of Jfokus 2024

-

In this blog post, I tell you all about my experience at the Jfokus Conference 2024 in Stockholm, where my colleague Jettro and I gave a workshop about question-answering systems with Retrieval Augmented Generation.

Back in October 2023, I wrote my first conference experience blogpost: A Devoxx of Firsts. This felt like a good way for me to look back at the conference and what it brought me. Usually, my gained knowledge and experiences from conferences gradually fade away. Writing it down keeps the memories alive and I can relive them when rereading my own story. So I thought I’d do the same for my visit to Jfokus by writing a recap.

Day 0: Arrival, Vasa and Burgers

The conference started on Monday. But since the workshop we had to give was already at 09:00, Jettro and I decided to travel to Stockholm on Sunday. It was an early wake. We wanted to see the city of Stockholm so we took an early flight (08:30) and landed around 10:30. We couldn’t get into our apartment until 16:00, so I decided to leave my small suitcase in a locker at the central train station. Without having to hassle with my luggage we went on our adventure. We had a nice long walk through the beautiful city center. Eventually, we ended up at the Vasa Museum.

For our workshops, we always pick a relevant data source to work with. Because we were in Stockholm we wanted something relevant for Stockholm. Jettro visited the city in the summer before. At that time he visited the Vasa Museum where the Vasa Warship is displayed. A ship that sank short after it sailed out around 400 years ago. It was preserved very well, so they were able to get it out of the sea about 350 years later and made it a museum piece. Jettro came up with using the history page of the Vasa Warship for our dataset. I agreed because it was a good fit for a question-answering system. However, I did not see the ship with my own eyes like Jettro did. Luckily the people of Jfokus organised a tour at the Vasa Museum for speakers of the conference on our day of arrival, so we joined them there. This made it possible for me to see the ship from a close distance!

 

After the Vasa Museum, it was time to head to our apartment and drop off our bags. We took the advice of a friend and former colleague to go eat at Franky’s Burgers. It turned out to be pretty close to our apartment, so we didn’t have to walk that far. Once there, Jettro and I both ordered the Texas BBQ burger (also on advice). While I was there anyway I made it a double. We definitely made a good choice going there. It tasted so good, I can honestly say that it’s one of the best burgers I ever ate at a restaurant.

After we finished our burger we went back to our apartment and did a last revision of our workshop material to make sure everything was complete and working as it should.

 

Day 1: Workshop, Old Town and Dinner

Monday was the first conference day. A day full of different workshops. This was also the day we had to give our own workshop: Creating a Semantic Search-Based Question-Answering System with LLMs. The start time was 09:00, so we made sure we arrived at the conference center in time (08:15) and had enough time to register, explore the environment, and set up our equipment. We grabbed some sandwiches at the 7/11 for breakfast and went on to the conference. Turned out they had breakfast there as well. Good thing to know for the next few days. The registering and setting up our equipment all went very smoothly. We even got ourselves a nice Jfokus hoodie. Gotta love merchandise.

 

The Workshop

People started dripping in and it became quite packed. Around 33 people joined the workshop, which I think is a large enough group for two trainers. The theoretical parts of the workshop went well. Jettro and I have developed a good synergy presenting together. Unfortunately, we still had some people struggling with setting up the environment for the practical part. We tried to make it as easy as possible to start, but we forgot to mention in the talk description and prerequisites that we used Java 21. This caused some problems with a few.

Eventually, we got all but one (due to laptop restrictions) running so they could start on the exercises. Overall we were satisfied with our performance and the course of the workshop. Judging from the response of the crowd they also thought it was good.

We got many positive reactions and also some solid feedback for next time. And most importantly: we all had fun!

 

Old Town

The workshops that came after ours were not really of our interest, so we decided to do some more exploring of the city. This time we went to Old Town, Stockholm’s oldest district. I really liked the bright colours of the buildings and the architecture. It’s a beautiful city altogether. When having seen the Old Town walking in cold icy wind, we decided it was time to celebrate the success of our workshop. We still had some time to kill before the speaker dinner started, so we found a nice pub. They had some IPAs on draft with good-sounding names and we couldn’t help to taste a few of them. In our awesome Luminis outfit obviously! After tasting a few beers and bites we went to attend the speaker dinner.

The Speaker Dinner

The speaker dinner was nice. It started with a short announcement/speech by someone from Oracle, the sponsor of the dinner. I guess he knew everybody was hungry, so he went over everything very quickly. One thing that stuck with me was that Oracle DB now also supports vector search. Then everybody sat down at the dinner tables and the feast began. One of the attendees from our workshop joined at our table. He was a real fan. Even called it his best workshop ever. Nice compliment! The dinner itself was pretty fancy. The main course was fish. Even though I don’t really like fish, I still tried and with success. It tasted pretty good. The rest of the evening I don’t remember very well because of all the champagne and wine we got. Jettro was smart enough to not consume any alcohol after our pub beers.

Day 2: Tiring Talks

The title of this section might imply the talks were boring, but this was definitely not the case. I consumed one too many alcoholic beverage at the speaker dinner, which made this a tiring day for me. Luckily some interesting talks kept me going throughout the day. This time we ate breakfast at the conference, which was really nice with healthy sandwiches. After that, we went into the main room for the keynotes. Jfokus started as a rave party with flashing lights and music created by Sam Aaron with Sonic Pi, which is a live coding environment to synthesise music. After that, the keynotes started.

 

Keynote 1-2

The first keynote was an introduction to the conference by the organisers. The second one was Java in 2024: Constant Change, Delivered by Georges Saab. Basically a background story about the Java release cycle and how they changed it from big releases spanning over years to smaller releases per 6 months. Nothing new if you’re a little up to date with Java.

 

Keynote 3

After that was The New Super Power in the Developer’s Toolbox keynote by Lize Raes. If you’ve read my Devoxx blog post, you might recognise her name. There she gave, at least for me, the best talk of the conference. Which was about LangChain4j. She’s a good speaker and also this time she put up a good performance. It was all about AI and how it will help us be more productive in our work and daily lives. We don’t have to fear that AI will take over our jobs, we just have to fear that people using AI will replace us. So now is the time to start learning and using it before it’s too late.

When the keynotes ended, it was time to start the rest of the conference. Below is a brief overview of all the presentations I attended on day 2. The titles are links to the YouTube videos.

 

Enhancing LLM Reasoning and Precision Using RAG and ReAct on AWS by Begum Firdousi Abbas

My main topic of interest for the last couple of months has been Retrieval Augmented Generation (RAG). Our own workshop was also about RAG. Luminis is very AWS-oriented, so this talk piqued my interest. Most of the talk felt like an AWS services advertisement. But the ReAct prompting part was new to me. An interesting approach to capturing the reasoning of LLMs, why and how they come to a certain answer. Good food for thought.

 

From Serverful to Serverless Java by Dennis Kieselhorst & Maximilian Schellhorn

In the same room as the previous AWS talk, so we stayed in our seats for this one. Other presentations during this time slot didn’t appeal much to us. There was the LangChain4j talk by Lize Raes (best-rated talk of Jfokus), but we already attended it at Devoxx. So we decided to stick with this one. It was a decent talk, but I personally didn’t learn much. We have some experienced colleagues who blog and share knowledge about this topic. I might have also missed some things due to my tiredness. Luckily there was a well-needed coffee break after this.

 

AI-powered software development from the trenches by Henrik Kniberg

I’m not really fond of the phrase “from the trenches”, because  software development work doesn’t feel like being in the trenches for me. Even though I have already seen a few presentations about AI code assistants on Devoxx, I wanted to see a fresh view on this subject. Henrik did a live demo coding with Cursor, a VS Code fork with a code assistant built in. I sometimes use ChatGPT to help me with my coding problems, but it was nice to see again how a code assistant built in your IDE can really boost productivity. Now onto convincing my employer and clients that I should be able to use this.

 

Technical Neglect by Kevlin Henney

An interesting talk from Kevlin Henney about his view on technical debt. It isn’t necessarily a bad thing if you manage it well. But that last part is where it mostly goes wrong. Watch this if you want to know why ‘neglect’ is sometimes a better term to use than ‘debt’.

 

After the last talk, we had some food and I decided to go to sleep very early, between 20:00 and 21:00. It was a tiresome day for me, so I needed the rest.

 

Day 3: Refreshing Talks and Departure

Unlike the day before, I started this day fresh and fit. We had to leave a bit early to catch our flight back, so we only had the chance to attend three presentations. But they were definitely not the least three!

 

Five things every developer should know about software architecture by Simon Brown

The week before Jfokus I helped my colleague and friend Robbert-Jan facilitate two Accelerate Craftmanship training sessions about architecture. We did an architectural kata and used Simon’s famous C4 model. Very useful and interesting topic to me, so it was an easy choice for me to attend this talk. I was a bit afraid that this was going to be a C4 model commercial, but it turned out to be a solid talk about architecture in general with only a brief mention of C4. Very good start to the day. I would recommend to watch this.

 

How hacking works by Espen Sande-Larsen

For me, this was the surprise of Jfokus. It’s not the kind of talk I usually go to, but it was in the same room (the main room) as the presentation from Simon. We also had some pretty good spots there, so we decided to stay. Luckily we did. It was a fun and interesting talk with a small introduction to hacking and live examples of hacking an application. Espen showed how easy it sometimes is to hack an application, so it’s important to be aware of vulnerabilities in your code. He suggested regularly doing a Capture the Flag (CTF) exercise with your team (sort of a gamified way to pentest) to see if your code is still secure. Espen is a good presenter and has a solid backstory to support his presentation, which made this the most fun and interesting talk of the conference for me. Recommended to watch!

 

Breaking AI: Live coding and hacking applications with Generative AI by Simon Maple

Also in the same room. We were in the hacking mood from the previous talk, so we stayed in our seats again. The title might suggest they hacked applications with Generative AI, but it was actually about exploiting vulnerabilities in the code produced by AI code assistants. It became quite clear that the presenters were from Snyk, but I don’t think they overdid the advertising. It was a nice continuation of the previous presentation where they showed that code produced by code assistants isn’t always the most secure code. So please be aware when using any code assistant that you don’t introduce any vulnerabilities in your code. Tools (like Snyk) can help you to analyse your code to catch vulnerabilities early on.

 

After these presentations, it was time to head out to the airport for our flight back. The conference center was next to the central station, where I picked up 800 gr of Swedish candy in a Pressbyrån to taste at home.

 

Overall Conference Experience

Overall a very nice conference, with lots of perks for speakers. The organisers are a group of nice and helpful people, always there to assist you or just have a nice conversation. The location was perfect, in the city center next to the central station of Stockholm. All the rooms were good and well equipped, sound was good everywhere too. The food served looked luxurious and was really good. Water was available throughout the conference center, but I couldn’t find a place to get soda drinks (at Devoxx they had fridges everywhere). Although it’s a bit Sweden focussed, I would recommend going to this conference if you have the chance, especially as a speaker.

Recommended talks to watch back, in order of my most favourite first:

  1. How hacking works by Espen Sande-Larsen
  2. The New Super Power in the Developer’s Toolbox by Lize Raes
  3. Five things every developer should know about software architecture by Simon Brown

 

Key Takeaways

We need to embrace AI. It will not replace us, but the people not using it will be replaced by people who do. It can greatly improve productivity. Just be aware it’s not perfect (yet?), so always verify what it produces does not introduce nasty bugs or security risks. I will start using it wherever possible if allowed by company policies.

Next to that, I came to the conclusion that I should be more aware of security when writing my code. Seeing someone live coding and easily exploiting the vulnerabilities of that code made me really think. I might start introducing CTFs in teams when possible, which could be a fun way to make everyone aware of security (risks) in their codebase.

All Jfokus 2024 presentations can be watched on YouTube in this playlist. The workshops, however, are not recorded.