Summary of Devfest Lille 2024

Benjamin A
Criteo Tech Blog
Published in
5 min read6 days ago
Devfest Lille 24 : Source X.com

I had the privilege of attending the 2024 edition of Devfest in Lille on June 6 and 7. The event spanned two days, hosted 1500 attendees and featured a packed agenda with a series of 3 to 4 concurrent sessions. I have always cherished attending DevFest and the previous editions were truly remarkable. Keeping abreast of the latest trends and advancements is vital, particularly with the prominence of AI, which served as a focal point this year.

Summary

Below is a summary of some of the presentations I attended over the course of these two days.

J’ai une idée pour réduire l’empreinte environnementale du numérique par 4 by Tristan Nitot

Upon reviewing the conference agenda, I immediately reserved a slot for this presentation due to its relevance to me. I particularly enjoyed Tristan Nitot’s presentation during Devfest 2021. This time around, he began by highlighting the severe impacts of climate change through various scenarios and emphasized the need to optimize resources and enhance the sustainability of digital technologies. One key proposal was to double software efficiency every two years, a concept he referred to as erooM’s law in homage to Moore’s Law.

erooM’s law

He then gave some examples of huge optimizations by writing more efficient code and pushed attendees to be proud of what they produce and always look for code optimizations to develop more sustainable applications.

This aligns closely with the objectives of all Criteo teams today.

Structurizr DSL : Au-delà des diagrammes vers l’Architecture-as-Code by Damien Raude-Morvan

Prior to the event, I was unfamiliar with Structurizr, making this presentation an enlightening experience. Damien’s session effectively communicated the value of the approach and its practical application. The interactive nature of the session allowed the audience to shape the content by responding to live questions via their phones.

Damien elaborated on the distinction between modeling and diagrams, emphasizing that diagrams are short-term reflections that quickly become outdated, while models persist over time, evolving significantly and serving as a source of truth.

modelization vs diagrams

The presentation delved into Structurizr DSL (Domain-Specific Language), developed by Simon Brown. Structurizr offers a method to architecturally model systems using text, integrating code with documentation.

For example:

workspace {

model {
user = person "User"
softwareSystem = softwareSystem "Software System" {
webapp = container "Web Application" {
user -> this "Uses"
}
container "Database" {
webapp -> this "Reads from and writes to"
}
}
}

views {
systemContext softwareSystem {
include *
autolayout lr
}
container softwareSystem {
include *
autolayout lr
}
theme default
}

}

This can then be visualized.

Live coding demonstrations were showcased with VSCode integration, emphasizing the importance of making all resources easily accessible to everyone.

Le produit entre la qualité et l’Over-Engineering by Jihène Mejri

First Jihène starting to introduce the subject by defining over-engineering as the pursuit of quality leading to overly complex and sophisticated products that are ultimately less effective and harder to use.

She gave some real life examples with an 8-wheel electric car and unnecessary software classes.

She said that officially quality isn’t defined only by functional requirements but also by non-functional attributes like maintainability, performance and scalability. She doesn’t like this definition because we often find ourselves accepting constraints that we don’t really have, for example managing scalability issues when the product will never scale.

To find the balance, she suggests using agile methodologies like QCD triangle or Dora framework instead.

She insists on the fact that over-engineering is not only about tech but is also about company org. She recommended some extra resources I have previously read and I recommended : Accelerate and The Pragmatic Programmer.

Dompter le chaos de l’information : Construire un Allié IA avec Langchain4J by Loïc Magnette

RAG enables AI to leverage existing models without the need for extensive and costly retraining. This approach involves providing AI with additional documents to enhance its responses. The process commences by converting documents into vectors, which are then stored in a vector database. When a query is initiated, the system transforms the query into a vector and searches for the closest matching vectors in the database.

Loic introduced LangChain4J, a framework comparable to Hibernate but tailored for Large Language Models (LLMs). It offers an abstraction layer to interact with various LLMs, simplifying the integration of AI capabilities into Java applications. He proceeded to discuss Ollama, a tool that can be utilized locally to freely run models, thereby avoiding privacy concerns.

Next, Loic conducted a demonstration of a custom application named ‘Company Genie,’ developed with Quarkus, to illustrate the capabilities of RAG and the ease of extending and querying data. He emphasized that not all models are created equal, highlighting the importance of selecting the appropriate model based on the specific use case. Additionally, he advised against mixing different languages, as the same word in different languages may not be interconnected.

In conclusion, the 4th edition in a two-day format proved to be highly engaging, offering an incredible experience. The event provided me with the chance to explore all the stands and interact with companies regarding their infrastructure and development challenges. Reconnecting with former colleagues was a highlight, enabling discussions on the diverse presentations and topics showcased. Without a doubt, I look forward to participating again next year.

For a glimpse of the event, you can watch the aftermovie here and all the conferences here.

--

--