Introduction

Christophe M:

Devoxx FR in Paris was my very first experience of this kind, despite my 17 years of experience as a developer 😅 . I am very grateful to my company for this opportunity as it showed me how valuable conferences are. In my previous companies, I was constantly hearing it was such a waste of time to attend conferences in general. And unconsciously, I probably had a negative influence 😛

So I went there like someone seeing ocean for the first time: how can it look like ? đŸ€”

Lucas R:

That was my first time at Devoxx. It was even the first time I was attending conferences on software development.

I already watched Devoxx videos on Youtube on multiple topics but I never made up my mind to attend it. QIMA gave me the opportunity to participate into the 2022 edition and I really thank them for that.

I am gonna share my thougths on Devoxx as a developer with 6 years of experience of experience doing frontend and backend stuff is uncountable 😁 đŸ„— 🍅

Spoiler : it is well worth it !

DAY 1

Christophe M:

The first day in the morning was really intense because of course, we need to discover the place, register, go to some stands, etc
 and the first presentation started relatively early (9:30 AM), and was very dense. It looked like they wanted to take advantage of our rested brains ! Thankfully, I had a paper notebook to take some notes, because there were no plugs in my room (some had). I found out later there were plainty of these (paper notebooks) on the stands 😛

Then it was lunch time. Very crowdy place to get your sandwich but it went quite fast actually.

At the end of the day, I was very happy with the topics I had chosen. I advice you to mix tough/serious topics with lighter ones: it prevents to finish the day with a big headhache!


At this point, I was ready to pick a beer at the closest bar, and chat with other devoxx folks ! đŸ» 😉
Talk Review Feeling
RemĂšdes aux oomkill, warm-ups, et lenteurs pour des conteneurs JVM
It was brilliant, but very dense as well. It was mostly about different technique to fine tune a JVM: even if the Heap usage looks totally fine, most important is RSS (Resident Set Size) which is all the memory the JVM uses under the hood for GC, classes, JIT compiler, 
 It was really useful for Java developers.
⭐⭐⭐
Kafka: carte des piĂšges Ă  l’usage des dĂ©veloppeurs et des ops
It was probably interesting for experienced Kafka users, unfortunately I’m not one (yet ? 😋), so I did not get all the tips and tricks. It was also 50% for devs, 50% for purely techops. It was not the most interesting talk for sure in retrospective.
⭐
Ajouter de A Ă  Z une barre de recherche dans son application
The presentation was “refreshful”, unconventional but nicely presented, very concrete use cases, I liked it very much ❀
⭐⭐⭐
Type algébrique de données en Java 17
Short talk (30 min) which was mostly about sealed classes. It was totally unconventional presentation: the presenter was really funny ! And I finally got the point of sealed classes ! 😉
⭐⭐
La sĂ©curitĂ© avec les headers HTTP : Tour d’horizon des attaques et dĂ©fenses possibles
It was more serious because of the topic, but nicely presented though ! Real use cases on how to hack a web site.
⭐⭐

Lucas R :

The first day was intense (but very rewarding) since the talks started earlier than the other days.

It was a pleasure to discover multiple stands of the well known tech companies such as Docker or Elastic Search.

Everything is made to make people feel comfortable. Stands are beautiful, you can ask for a coffee and there are even pastries.

Talks began at 9:30 PM and so I joined my first Devoxx meeting armed with my tablet and its stylus đŸ–Œïž
Talk Review Feeling
Ansible Ultimate Edition
Despite I am not used to Ansible and the techops world in general, the talk was very well presented and the explanations were very clear. Ansible is a tool made for provisioning and configuring automation. One of its greatest strengths is that it is fully extensible which can be mixed with others to get the best synergies 😀 It was at this moment I figured : “These people are not only solid techops or devs, they definitly have sense of pedagogy and talking
 and Ansible seems to be a very powerful tool” 😁đŸ’Ș
⭐⭐⭐
Architecturoplastie hexagonale d’un backend Node.js : OpĂ©ration Ă  code ouvert
Purpose of this one was to conduct a surgery on a Node .js backend full of code smell to get it healthy using a test driven refactoring to reach a hexagonal architecture. I am using a medical lexical field because they were litteraly disguised as doctors. That was funny 👍 It was amazing ! I learned a lot on this kind of architecture (That I was very interested in) and on how to refactor in a secure way.
⭐⭐⭐
Ajouter de A Ă  Z une barre de recherche dans son application
This talk was about to show the power of computer vision along with an the Elasticsearch database and Google Cloud services. Demo was simply impressive. They were able to filter on a list of images using text search terms. This is the future 😁
⭐⭐⭐
Type algébrique de données en Java 17
Special mention to the speaker who had a lot of humour. 😁 Concerning the presentation itself, it was really interesting to see how we can base our software design on mathematical concepts as algebraic data type and its operations. Behind this swearword there are simple mathematical concepts that can be useful while building state management transitions. Used with Java 17 sealed interfaces he showed how to securely handle transitions by letting the compiler and the algebraic concepts behind preventing from entering forbidden state. It was short and well brought.
⭐⭐⭐
R2DBC = R2D2 + JDBC (enfin presque...)
We could think it was a talk on Star Wars or such topics
 It was not 😁 R2DBC is a project based on the Reactive Stream API and in this talk we focused on its Spring Data implementation alongwith JDBC. It can also be used with Spring Data JPA but it does not already behave well with associations so it is not recommanded to go with that solution if you plan to use JPA stuffs. Moreover Spring Data R2DBC is not yet managed by several tools including Liquibase for database migration. It was interesting to see how we can think “reactive” when retrieve data from database. But I think the tool is not yet enough mature to be used in a professionnal project.
⭐⭐

DAY 2

Christophe M:

We were in the starting block for the second day, but it seems that devoxx folks are nice at partying 😉 The second day did not really start before 10’15 AM 😃 So as an advice: come at the Devoxx the day before because it starts early, and you can party network đŸ‘Œ a lot
 don’t worry you can sleep late 😃 But in the end, we took this opportunity to visit the stands, and had direct answer to our philosophical questions, like:

- “We have some performance issues with đŸ€« “ “Yes it requires at least 32 Gb, 4 cpu. But we can provide a free infra for developers and CI environment !”

- “We want to use đŸ€« for API testing” “It is not aimed for that at the moment but we plan it”

- 


And of course, we took many goodies 😛

This day, I didn’t choose the right topic at the end of the day, so my mood wasn’t great, but thankfully there was a great buffet waiting for us, with food, beer, wine ❀ Everybody is there to meet and talk to people from other companies. The networking spirit condensate is HERE ! 🙂 You learn how other companies think, deal with problems, it is very inspiring !
Talk Review Feeling
JOOQ, joy of SQL
My opinion might be a bit biased, because I am a fan of JOOq, but I cannot imagine that you attend this meeting without adopting JOOq right away 😀 The context was so nicely presented, and smoothly goes more and more into details. I want to present this to the rest of the team, but I don’t know how I can do any better
 damned 😋
⭐⭐⭐
D'un hack au datamesh, l'Ă©volution du data engineering chez Leboncoin
Interesting experience of the information system transformation at “leboncoin”. It started with very basic scripts to aggregate data, until a datamesh. There were many many steps in this transformation. It was interesting from that point of view, but very data analyst oriented, so I couldn’t get every point unfortunately. I was just a bit frustrated because I was expecting to know what was datamesh exactly, but actually the presentation was more about the transformation than the result itself.
⭐⭐
Major migrations made easy
Short presentation on a tool that helps to deal with code migration (OpenRewrite). You can either use existing migration, or write it by yourself easily. It is based on AST so this tool can be actually very powerful: it is not a simple regexp replacement, but a semantic replacement. Example: we can define a migration to replace any call to a method “invoke”, with two arguments, with given types.
⭐⭐
What's cooking in Maven?
Presentation of the upcoming features in Maven. Maven wrapper, Maven Daemon, and build parallelization (Reactor). The presentation was nice (with demos) but technically speaking, it really gave the impression that Maven tried to catch up Gradle features but it is already too late. I wasn’t very impressed by the demo itself, but it really comforted me that “Maven” is a legacy tool 😔
⭐⭐
Architecture hexagonale par la pratique avec Spring

(Lab)
I was expecting this lab with impatience ! I didn’t know anything about hexagonal architecture (btw this architecture was trendy at the Devoxx). The lab was ok, but I feel frustrated for several reasons:
  • The lab was separated into several steps which was nice, but each step was not always focusing on the real topic: architecture. I got confused by the business logic of the financial application that was used as an example.
  • The hexagonal architecture is a very simple concept in the end. Business logic is at the center of the application. Technical stuff (like Spring, Hibernate, 
) should be abstract. Ok, fair enough. But it doesn’t deserve spending 3h in a lab unfortunately.
  • I had the feeling after the lab that the approach was completely “bloated”: this approach comes with a lot of overhead. Is it deserving the fact that we would want one day to switch Hibernate to EclipseLink for instance ? Even if ? Each abstraction (interface, methods) must be very carefully studied to sufficiently abstract the technology, without major performance degradation
 For me it is close to impossible. Maybe they are use cases, but the scope should be carefully chosen.
⭐
REX: TDD avec TestContainers
Disappointment: not better than the Getting Started 😔 Don’t know what he thinked about the technology
 But at least that had the advantage to tell myself: why wouldn’t I present something in the end 😉 Yes, there are good and less good presentations. But if you have something you want to present, you can ! Just believe in your topic !

Lucas R :

Since the talks were not starting before 10.15 AM, we started this second day at Devoxx by moving from stands to stands gathering all possible goodies like T-Shirts and stickers hmm
 having exciting and constructive conversations with Devoxx folks and partners. Among them we can list Docker, Elasticsearch, VMWare (the people behind Spring framework) and so many others. đŸ€©

Then after a dozen of coffees conferences started đŸ„ł
Talk Review Feeling
Et si les micro-services n'avaient rien Ă  voir avec la technique ?
It was not about technical aspects of microservices. The main idea was to highlight the importance of human organizations and communications systems in the emergence of systems technical designs. Microservices are not only one answer to technical issues or needs but before all it is a projection of human systems. It reminded me my philosophical lesson at college. I don’t know if it is a good or a bad thing 😁
⭐⭐
Model-Driven Design
The Model Driven Design (MDD) is closely related to Domain Driven Design since it describes a set of methods to model properly the Domain and to have code that reflects the Domain reality. The presentation first described important DDD concepts as the bounded context and the ubiquitous language. Then it explained various methods and workshops used in MDD to bring out the domain and to refine it to have a clean and well defined domain model. It was really interesting but a little dense for people like me that nearly never practised MDD 😁 But definitely I want to study this more !
⭐⭐⭐
Rendu 3D, la grande illusion expliquée
I am always interested in 3D and applied mathematics in computer science (even if I would need a strong math upgrade 😙). It was short but pleasant. The talk made an overview of how 3D environments are built using Vertex, referentials and several rendering concepts.
⭐⭐
What's cooking in Maven?
The guy was really funny but I had the feeling that it didn’t deserve to have a talk for it since it was essentially announcements on new and upcoming features on Maven (that already exist in Gradle)
⭐
Architecture hexagonale par la pratique avec Spring
This was my first Hands-on Lab at Devoxx ! Hexagonal and clean architectures are concepts that I am very very interested in. Keeping the domain and the business logic isolated from the frameworks is a wonderful idea. It is often claimed that its benefit is the ability to change database at minimum cost but let’s be honest it will nearly never happened. But this is not that possibility that makes me attracted to such architectures. To me the most valuable advantages are : - Isolated business logic is easier to test (we focus on business logic and don’t have to face tech issues while writing tests) - Contracts between domain application and Web infrastructure / Persistence API tend to be well defined and clear (It is also easier to mock and we can for example use InMemory mocks for repositories if we want to have fast acceptance tests) - Logic / responsibility is better distributed (no more framework related tweaks in business logic) Oh I forgot to talk about the workshop ! I really appreciated it despite the fact that it could have been more straightforward : we were following some exercices to implements the hexagonal architecture step by step. But I found that we spent more time on coding than really building architecture. But that said it was well explained so I definitely understood their way of building hexagonal architecture. If I was not a huge fan of these architecture approach I would have given a ⭐⭐
⭐⭐⭐
REX: TDD avec TestContainers
https://www.testcontainers.org/quickstart/junit_5_quickstart/ ← A little bit disappointed by this one. He showed a ‘Get started’ like test and said it works well. End
⭐
At the end of the day there was a Devoxx party organized. We didn’t know about it so it was a very pleasant surprise. On top of that beer was unlimited and free ! In other words I don’t remember anything else 
 I am joking. There was some dishes from Nantes. It is a city of north western France where they eat weird things like “andouille” (but I really like it ^^) and they replace water with cider. 😄

We had a very interesting conversation with Sonar Cloud folks on how important and enriching events like Devoxx are. On the technical and human point of view.

It was awesome 🙂

DAY3

Christophe M:

Already the last day: it went so fast in the end ! As on thursday, serious things didn’t start before 10’15AM. Let’s carefully choose the last topics !
Talk Review Feeling
Kafka Streams @ Carrefour
I had the feeling that Big Data was at the heart of the conference. And Big Data often comes with Apache Kafka. Kafka Stream is a layer above Kafka to make it easier to aggregate messages. It looked much more “sexy” than the good old Kafka 😉
⭐⭐
Notre cerveau est "null"!
This talk was about main cognitive biases. This is not about preventing them, but more about being conscious about them, and how to handle them. I love the monkey tale, or how to be “digerated” by legacy code 😉
⭐⭐
Tests Cucumber: légendes et réalité
Experience feedback about Cucumber usage. Seems that tests can be written very quickly when the DSL is properly defined. It is very nice for a proper TDD approach: first we write tests, and then we write the code ! But according to the speaker it is not suitable for unit tests, and integration tests, but more functional tests.
⭐
Le secret des illoominaties
This was a clear and very detailed explanation of the Loom project introduced as an experimental feature in Java 18. I couldn’t expect more on the theoretical presentation, however regarding the implementation it was very RedHat/Quarkus oriented. That was my only regret, but apart from that it was awesome !
⭐⭐
Mob programming
This was an inspiring presentation about the Mob Programming in “Ouest France”, a famous french newspaper. It was a clear retrospective on several years experimenting Mob Programming. Really worth it!
⭐⭐⭐
Ce que les développeurs doivent savoir sur les index
Very technical but awesome presentation about DB indices. I finally understood how it works under the hood in modern DB engines. I saw that like black magic This allows to carefully choose the best type of index. This should be mandatory to every backend developer !
⭐⭐⭐
Nouveau client Java pour Elasticsearch
It was really interesting to understand the motivation for the new Elasticsearch client. At QIMA we are still using the old one, and it was unclear why it is marked as deprecated. It is very inspiring for designing APIs!
⭐⭐⭐

Lucas R :

Friday was the third and last day at Devoxx 2022. As for the second day talks started quite late at 10:15 am. After we shared a coffee traveling from stand to stand the talks began !
Talk Review Feeling
Kafka Streams @ Carrefour : du big data Ă  la vitesse de l'Ă©clair
Kafka Streams seems powerful to manage complex real-time distributed applications and state transformations. That said the tool seems quite heavy and complex so before building an application with it I think we should be sure it is perfectly suited for the needs.
⭐⭐
À la dĂ©couverte des Docker Dev Environments
Docker dev environments are providing an easy way to setup and share multiple working environments between developers of one project. The key concepts are containers (no kidding !), ease of use, isolation (between environments) and sharing. The demo was interesting. They explained how to create a simple docker dev environments with basic dependencies and how to share it with a coworker so he was able to set up a dev environment in a few minutes. However, it seems that to make it work, everybody in the project should stick to the dev environment. So it implies a global organizational decision. Moreover the compatibility with visual studio code is well managed but I wonder how it behaves for people using other IDE’s.
⭐⭐
Tests Cucumber: légendes et réalité
It was short feedback of a concrete use of Cucumber inside a project. I was hyped by this presentation since we are using Cucumber in QIMAone. I find their analysis very relevant. According to what they experienced, Cucumber tests are best suited for testing a well defined domain model. In that case and with a well defined DSL, it can save time by reusing steps. They said it was not suited for integration and unit testing and I tend to agree with that point of view. Writing Cucumber steps comes with a cost and keeping steps business oriented makes them more easy to reuse and make them profitable. To me Cucumber is best suited when having a well defined and isolated domain like in hexagonal architectures.
⭐⭐⭐
Rendez vos interfaces fiables en faisant aimer les tests Ă  votre Ă©quipe !
Cucumber is everywhere ! In this presentation it was even in frontend UI tests ! They explained their testing policy. The main idea behind is that a test should before all verify something that is valuable to the end user. Tests are often too much focused on implementation and technical details. These tests are not always ensuring that the feature works as intended and are likely to break when little implementation details change (not business rules). That’s why they also define UI, user-oriented, robust, long lived and reusable integration tests. These integration tests are built using Cucumber and Cypress. To me Cucumber might be too heavy for UI testing but since their tests are highly focused on features and user experience it could have some advantages to reuse cucumber steps. At some point their UI integration tests were close to be acceptance tests on the frontend side. I really like their philosophy on what is a test and why do every project absolutely needs robust and reliable over time tests. And remember that testing implementation details is bad (most of the time).
⭐⭐⭐
Mob programming, la véritable approche du développement en équipe
I had a lot of misconceptions about mob programming and the fact that it's a waste of time. This talk changed my point of view. They presented the mob programming experience they are experiencing (for some years now) in Ouest France entreprise, in west of France. They shared the things that went well, that went bad and the things to avoid or to ensure before starting a mob programming session. And according to them, mob programming organized and done well brings a lot to a team. It helps to : handle complex problems do some team building share best practices between team members (especially newcomers) Apart from these advantages, they listed a lot of traps and bad practices that can completely wipe out all benefits of that practice. A common trap is to deviate from the mob programming’s goal by going into refactors or unrelated modifications. Mob programming must have a time window and must lead to something that is working. It was cool and refreshing 😀
⭐⭐
Ce que les développeurs doivent savoir sur les index
Every developer know what is an index no ? 
 I thought I knew ! This talk was so well explained and so rewarding ! He explained in depth how an index works (at least the standard and most used indexes’ algorithms). And well I must confess that I did not really know what is behind this concept exactly. The presentation was very clear and with a lot of examples and infographics. And after understanding the mechanisms behind it seems so important to know them !
⭐⭐⭐
400 endpoints d'API et 2000 types : genĂšse et utilisation du nouveau client Java pour Elasticsearch
I am not very comfortable with Elasticsearch since I have nearly not worked with it so far. But it was a nice presentation on the new API and without being familiar with the existing one I felt that it was a big improvment in the way we communicate with Elastic 😀 Unfortunatly I had to leave before the end to take my train but it was definitely worth attending 👍
⭐⭐

CONCLUSION

Christophe M:

At the time of the conference, we are clearly not productive: this is the argument used by so many managers I guess (fortunately not at QIMA!). But it is a great opportunity to “take the head off the handlebars”: stop for a moment and think, get inspired, learn trends, buzz words, good practices and exchange experiences.

Here is the questions I ended up with at the end of the conference:

- Is it better to spend 3 days at the Devoxx to know what should be avoided in mob programming, or to experiment mob programming during months (also because mob programming cost is multiplied by the amount of people attending)

- Is it better to stick with a technology, or switch to a more suited one ?

- How do profile my application to prevent it from being killed ?

- Which DB index should I create ?

- 


I don’t even count all the inspiration I got, getting up to speed with the latest technologies, networking, and so.

It was 100% benefit for me, and I strongly encourage people to attend this kind of event ! 🎆

Lucas R :

To me it is very important to take a step back from what we are doing.

Computer science is evolving so quickly, people are constantly improving and challenging existing methods and tools.

This is what makes the job of software developer so fun, rewarding and attractive.

Devoxx is a fantastic place to help people to share and grow together.

I strongly recommend to attend such an event. You will go back home with a lot of knowledge, some new perspectives, mindsets and topics to dig. Of course you will also bring back good souvenirs. 😁